TrueNAS
Products
Support & Resources
Solutions
Company
Sign In

TrueNAS Apps Market

Expand your system's capabilities quickly and easily by adding third-party software.

Download TrueNAS
TrueNAS UI and Apps screens

Nextcloud (Community)

Nextcloud
Get Started with Apps!
App Version: 34.0.2-fpm-7bb8cfc6 (Changelog)
Keywords: nextcloud, storage, sync, http, web, php
Train: Community
Home Page: https://nextcloud.com/
Nextcloud Details
Added: 2025-03-05
Last Updated: 2026-08-13

A file sharing server that puts the control and security of your own data back into your hands.

Run as Context
  • Container [cron] can run as any non-root user and group.
    Group: 568 / Host group is [apps]
    User: 568 / Host user is [apps]
  • Container [harp] runs as root user and group.
    Group: 0 / Host group is [root]
    User: 0 / Host user is [root]
  • Container [imaginary] can run as any non-root user and group.
    Group: 568 / Host group is [apps]
    User: 568 / Host user is [apps]
  • Container [nextcloud] can run as any non-root user and group.
    Group: 568 / Host group is [apps]
    User: 568 / Host user is [apps]
  • Container [nginx] can run as any non-root user and group.
    Group: 568 / Host group is [apps]
    User: 568 / Host user is [apps]
  • Container [notify-push] can run as any non-root user and group.
    Group: 568 / Host group is [apps]
    User: 568 / Host user is [apps]
  • Container [postgres] runs as non-root user and group.
    Group: 999 / Host group is [docker]
    User: 999 / Host user is [netdata]
  • Container [redis] can run as any non-root user and group.
    Group: 568 / Host group is [apps]
    User: 568 / Host user is [apps]

Screenshots
Screenshot 1 Screenshot 2 Screenshot 3

Host Mounts
  • /var/run/docker.sock : Required for HaRP (AppAPI) to manage Docker containers when enabled.

Security Capabilities
  • Harp is able to bypass read/execute permission checks

App Metadata (Raw File)
{
    "1.0.3": {
        "healthy": true,
        "supported": true,
        "healthy_error": null,
        "location": "/__w/apps/apps/trains/community/nextcloud/1.0.3",
        "last_update": "2026-08-13 14:11:43",
        "required_features": [],
        "human_version": "34.0.2-fpm-7bb8cfc6_1.0.3",
        "version": "1.0.3",
        "app_metadata": {
            "app_version": "34.0.2-fpm-7bb8cfc6",
            "capabilities": [
                {
                    "description": "Harp is able to bypass read/execute permission checks",
                    "name": "DAC_READ_SEARCH"
                }
            ],
            "categories": [
                "productivity"
            ],
            "changelog_url": "https://nextcloud.com/changelog/",
            "date_added": "2025-03-05",
            "description": "A file sharing server that puts the control and security of your own data back into your hands.",
            "home": "https://nextcloud.com/",
            "host_mounts": [
                {
                    "description": "Required for HaRP (AppAPI) to manage Docker containers when enabled.",
                    "host_path": "/var/run/docker.sock"
                }
            ],
            "icon": "https://media.sys.truenas.net/apps/nextcloud/icons/icon.svg",
            "keywords": [
                "nextcloud",
                "storage",
                "sync",
                "http",
                "web",
                "php"
            ],
            "lib_version": "2.3.8",
            "lib_version_hash": "cd75c897a1e8fef54b5bd00d0d8849f240bc50db2ef650eccc0ee74f3b2b2dc1",
            "maintainers": [
                {
                    "email": "dev@truenas.com",
                    "name": "truenas",
                    "url": "https://www.truenas.com/"
                }
            ],
            "name": "nextcloud",
            "run_as_context": [
                {
                    "description": "Container [cron] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [harp] runs as root user and group.",
                    "gid": 0,
                    "group_name": "Host group is [root]",
                    "uid": 0,
                    "user_name": "Host user is [root]"
                },
                {
                    "description": "Container [imaginary] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [nextcloud] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [nginx] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [notify-push] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [postgres] runs as non-root user and group.",
                    "gid": 999,
                    "group_name": "Host group is [docker]",
                    "uid": 999,
                    "user_name": "Host user is [netdata]"
                },
                {
                    "description": "Container [redis] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                }
            ],
            "screenshots": [
                "https://media.sys.truenas.net/apps/nextcloud/screenshots/screenshot1.png",
                "https://media.sys.truenas.net/apps/nextcloud/screenshots/screenshot2.png",
                "https://media.sys.truenas.net/apps/nextcloud/screenshots/screenshot3.png"
            ],
            "sources": [
                "https://apps.truenas.com/catalog/nextcloud_community/",
                "https://apps.truenas.com/catalog/nextcloud_test/",
                "https://github.com/nextcloud/docker",
                "https://github.com/truenas/containers/tree/master/apps/nextcloud-fpm",
                "https://github.com/truenas/containers/tree/master/apps/nextcloud-notify-push",
                "https://hub.docker.com/r/ixsystems/nextcloud-fpm",
                "https://hub.docker.com/r/ixsystems/nextcloud-notify-push"
            ],
            "title": "Nextcloud",
            "train": "community",
            "version": "1.0.3"
        },
        "schema": {
            "groups": [
                {
                    "name": "Nextcloud Configuration",
                    "description": "Configure Nextcloud"
                },
                {
                    "name": "User and Group Configuration",
                    "description": "Configure User and Group for Nextcloud"
                },
                {
                    "name": "Network Configuration",
                    "description": "Configure Network for Nextcloud"
                },
                {
                    "name": "Storage Configuration",
                    "description": "Configure Storage for Nextcloud"
                },
                {
                    "name": "Labels Configuration",
                    "description": "Configure Labels for Nextcloud"
                },
                {
                    "name": "Resources Configuration",
                    "description": "Configure Resources for Nextcloud"
                }
            ],
            "questions": [
                {
                    "variable": "TZ",
                    "group": "Nextcloud Configuration",
                    "label": "Timezone",
                    "schema": {
                        "type": "string",
                        "default": "Etc/UTC",
                        "required": true,
                        "$ref": [
                            "definitions/timezone"
                        ]
                    }
                },
                {
                    "variable": "nextcloud",
                    "label": "",
                    "group": "Nextcloud Configuration",
                    "schema": {
                        "type": "dict",
                        "attrs": [
                            {
                                "variable": "postgres_image_selector",
                                "label": "Postgres Image (CAUTION)",
                                "description": "If you are changing this after the postgres directory has been initialized,</br>\nSTOP! and make sure you have a backup of your data.</br>\nChanging this will trigger an one way database upgrade.</br>\nYou can only select newer versions of postgres.</br>\nSelecting an older version will refuse to start.</br>\nIf something goes wrong, you will have to restore from backup.\n",
                                "schema": {
                                    "type": "string",
                                    "default": "postgres_18_image",
                                    "required": true,
                                    "enum": [
                                        {
                                            "value": "postgres_17_image",
                                            "description": "Postgres 17"
                                        },
                                        {
                                            "value": "postgres_18_image",
                                            "description": "Postgres 18"
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "admin_user",
                                "label": "Admin User",
                                "description": "The admin user for Nextcloud.",
                                "schema": {
                                    "type": "string",
                                    "default": "",
                                    "required": true
                                }
                            },
                            {
                                "variable": "admin_password",
                                "label": "Admin Password",
                                "description": "The admin password for Nextcloud.",
                                "schema": {
                                    "type": "string",
                                    "default": "",
                                    "required": true,
                                    "private": true
                                }
                            },
                            {
                                "variable": "redis_password",
                                "label": "Redis Password",
                                "schema": {
                                    "type": "string",
                                    "default": "",
                                    "required": true,
                                    "private": true
                                }
                            },
                            {
                                "variable": "db_password",
                                "label": "Database Password",
                                "schema": {
                                    "type": "string",
                                    "default": "",
                                    "required": true,
                                    "private": true
                                }
                            },
                            {
                                "variable": "build",
                                "label": "Build",
                                "description": "Build-time configuration for Nextcloud.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "tesseract_languages",
                                            "label": "Tesseract Language Codes",
                                            "description": "The tesseract languages to install for OCRmypdf.</br>\nSee a list of language codes here https://tesseract-ocr.github.io/tessdoc/Data-Files-in-different-versions.html.</br>\nTyping a wrong language code will block the container from starting.\n",
                                            "schema": {
                                                "type": "list",
                                                "default": [],
                                                "items": [
                                                    {
                                                        "variable": "language",
                                                        "label": "Language",
                                                        "schema": {
                                                            "type": "string",
                                                            "min_length": 3,
                                                            "max_length": 7,
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "performance",
                                "label": "Performance",
                                "description": "Performance settings for Nextcloud.\n",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "run_optimize",
                                            "label": "Run Optimize",
                                            "description": "Runs some optimizations for Nextcloud.</br>\nSee https://github.com/truenas/containers/blob/master/apps/nextcloud-fpm/configure-scripts/occ-optimize.sh\n",
                                            "schema": {
                                                "type": "boolean",
                                                "default": true
                                            }
                                        },
                                        {
                                            "variable": "max_chunksize_mb",
                                            "label": "Max Chunksize (MB)",
                                            "description": "The maximum chunk size to use for chunked uploads.",
                                            "schema": {
                                                "type": "int",
                                                "default": 10,
                                                "min": 1,
                                                "max": 1024,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "php_upload_limit_gb",
                                            "label": "PHP Upload Limit (GB)",
                                            "description": "The maximum size of an uploaded file.",
                                            "schema": {
                                                "type": "int",
                                                "default": 3,
                                                "min": 1,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "php_memory_limit_mb",
                                            "label": "PHP Memory Limit (MB)",
                                            "description": "The maximum amount of memory a script may consume.",
                                            "schema": {
                                                "type": "int",
                                                "default": 512,
                                                "min": 128,
                                                "max": 4096,
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "general",
                                "label": "General",
                                "description": "General settings for Nextcloud.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "maintenance_window_start",
                                            "label": "Maintenance Window Start",
                                            "description": "The start of the maintenance window.</br>\nSee https://docs.nextcloud.com/server/28/admin_manual/configuration_server/background_jobs_configuration.html#maintenance-window-start\n",
                                            "schema": {
                                                "type": "int",
                                                "default": 100,
                                                "min": 0,
                                                "max": 100,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "default_phone_region",
                                            "label": "Default Phone Region",
                                            "description": "The default phone region.",
                                            "schema": {
                                                "type": "string",
                                                "default": "US",
                                                "min_length": 2,
                                                "max_length": 2,
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "previews",
                                "label": "Previews",
                                "description": "Previews settings for Nextcloud.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable previews.",
                                            "schema": {
                                                "type": "boolean",
                                                "default": true
                                            }
                                        },
                                        {
                                            "variable": "imaginary",
                                            "label": "Imaginary",
                                            "description": "Enable Imaginary.</br>\nEnabling or Disabling this will trigger actions on each startup to ensure\nthe configuration is either present or absent.</br>\nActions like, update configuration, add/remove nextcloud app.\n",
                                            "schema": {
                                                "type": "dict",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "attrs": [
                                                    {
                                                        "variable": "enabled",
                                                        "label": "Enabled",
                                                        "description": "Enable Imaginary.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": true
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "max_x",
                                            "label": "Max X",
                                            "description": "The maximum width of the preview.",
                                            "schema": {
                                                "type": "int",
                                                "default": 2048,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "max_y",
                                            "label": "Max Y",
                                            "description": "The maximum height of the preview.",
                                            "schema": {
                                                "type": "int",
                                                "default": 2048,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "max_memory_mb",
                                            "label": "Max Memory (MB)",
                                            "description": "The maximum memory to use for the preview.",
                                            "schema": {
                                                "type": "int",
                                                "default": 1024,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "max_filesize_image_mb",
                                            "label": "Max Filesize Image (MB)",
                                            "description": "The maximum size of an image to use for the preview.",
                                            "schema": {
                                                "type": "int",
                                                "default": 50,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "jpeg_quality",
                                            "label": "JPEG Quality",
                                            "description": "The JPEG quality to use for the preview.",
                                            "schema": {
                                                "type": "int",
                                                "default": 60,
                                                "min": 1,
                                                "max": 100,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "square_sizes",
                                            "label": "Square Sizes",
                                            "description": "The square sizes to use for the preview.",
                                            "schema": {
                                                "type": "list",
                                                "default": [
                                                    32,
                                                    256
                                                ],
                                                "items": [
                                                    {
                                                        "variable": "size",
                                                        "label": "Size",
                                                        "schema": {
                                                            "type": "int",
                                                            "min": 1,
                                                            "max": 1024,
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "width_sizes",
                                            "label": "Width Sizes",
                                            "description": "The width sizes to use for the preview.",
                                            "schema": {
                                                "type": "list",
                                                "default": [
                                                    256,
                                                    384
                                                ],
                                                "items": [
                                                    {
                                                        "variable": "size",
                                                        "label": "Size",
                                                        "schema": {
                                                            "type": "int",
                                                            "min": 1,
                                                            "max": 1024,
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "height_sizes",
                                            "label": "Height Sizes",
                                            "description": "The height sizes to use for the preview.",
                                            "schema": {
                                                "type": "list",
                                                "default": [
                                                    256
                                                ],
                                                "items": [
                                                    {
                                                        "variable": "size",
                                                        "label": "Size",
                                                        "schema": {
                                                            "type": "int",
                                                            "min": 1,
                                                            "max": 1024,
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "providers",
                                            "label": "Providers",
                                            "description": "The providers to use for the preview.</br>\n",
                                            "schema": {
                                                "type": "list",
                                                "default": [
                                                    "BMP",
                                                    "GIF",
                                                    "JPEG",
                                                    "Krita",
                                                    "MarkDown",
                                                    "MP3",
                                                    "OpenDocument",
                                                    "PNG",
                                                    "TXT",
                                                    "XBitmap"
                                                ],
                                                "items": [
                                                    {
                                                        "variable": "provider",
                                                        "label": "Provider",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "enum": [
                                                                {
                                                                    "value": "BMP",
                                                                    "description": "BMP"
                                                                },
                                                                {
                                                                    "value": "GIF",
                                                                    "description": "GIF"
                                                                },
                                                                {
                                                                    "value": "JPEG",
                                                                    "description": "JPEG"
                                                                },
                                                                {
                                                                    "value": "Krita",
                                                                    "description": "Krita"
                                                                },
                                                                {
                                                                    "value": "MarkDown",
                                                                    "description": "MarkDown"
                                                                },
                                                                {
                                                                    "value": "MP3",
                                                                    "description": "MP3"
                                                                },
                                                                {
                                                                    "value": "OpenDocument",
                                                                    "description": "OpenDocument"
                                                                },
                                                                {
                                                                    "value": "PNG",
                                                                    "description": "PNG"
                                                                },
                                                                {
                                                                    "value": "TXT",
                                                                    "description": "TXT"
                                                                },
                                                                {
                                                                    "value": "XBitmap",
                                                                    "description": "XBitmap"
                                                                },
                                                                {
                                                                    "value": "Font",
                                                                    "description": "Font"
                                                                },
                                                                {
                                                                    "value": "HEIC",
                                                                    "description": "HEIC"
                                                                },
                                                                {
                                                                    "value": "Illustrator",
                                                                    "description": "Illustrator"
                                                                },
                                                                {
                                                                    "value": "Movie",
                                                                    "description": "Movie"
                                                                },
                                                                {
                                                                    "value": "MSOffice2003",
                                                                    "description": "MSOffice2003"
                                                                },
                                                                {
                                                                    "value": "MSOffice2007",
                                                                    "description": "MSOffice2007"
                                                                },
                                                                {
                                                                    "value": "MSOfficeDoc",
                                                                    "description": "MSOfficeDoc"
                                                                },
                                                                {
                                                                    "value": "PDF",
                                                                    "description": "PDF"
                                                                },
                                                                {
                                                                    "value": "Photoshop",
                                                                    "description": "Photoshop"
                                                                },
                                                                {
                                                                    "value": "Postscript",
                                                                    "description": "Postscript"
                                                                },
                                                                {
                                                                    "value": "StarOffice",
                                                                    "description": "StarOffice"
                                                                },
                                                                {
                                                                    "value": "SVG",
                                                                    "description": "SVG"
                                                                },
                                                                {
                                                                    "value": "TIFF",
                                                                    "description": "TIFF"
                                                                },
                                                                {
                                                                    "value": "EMF",
                                                                    "description": "EMF"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "expirations",
                                "label": "Expirations",
                                "description": "Expirations settings for Nextcloud.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "activity_expire_days",
                                            "label": "Activity Expire Days",
                                            "description": "The number of days to keep activity logs.",
                                            "schema": {
                                                "type": "int",
                                                "default": 365,
                                                "min": 1,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "trash_retention",
                                            "label": "Trash Retention",
                                            "description": "See https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/trashbin_configuration.html#deleted-items-trash-bin\n",
                                            "schema": {
                                                "type": "string",
                                                "default": "auto",
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "versions_retention",
                                            "label": "Versions Retention",
                                            "description": "See https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html\n",
                                            "schema": {
                                                "type": "string",
                                                "default": "auto",
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "cron",
                                "label": "Cron",
                                "description": "Cron settings for Nextcloud.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "tasks",
                                            "label": "Tasks",
                                            "description": "Only add here additional (custom) cron tasks.</br>\nThe Nextcloud's default cron task is already scheduled.</br>\n",
                                            "schema": {
                                                "type": "list",
                                                "default": [],
                                                "items": [
                                                    {
                                                        "variable": "task",
                                                        "label": "Task",
                                                        "schema": {
                                                            "type": "dict",
                                                            "attrs": [
                                                                {
                                                                    "variable": "schedule",
                                                                    "label": "Schedule",
                                                                    "description": "The cron schedule.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "default": "*/15 * * * *",
                                                                        "required": true
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "command",
                                                                    "label": "Command",
                                                                    "description": "The command to run.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true,
                                                                        "private": true
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "notify_push",
                                "label": "Notify Push",
                                "description": "Notify Push settings for Nextcloud.</br>\nEnabling or Disabling this will trigger actions on each startup to ensure\nthe configuration is either present or absent.</br>\nActions like, update configuration, add/remove nextcloud app.\n",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable Notify Push container",
                                            "schema": {
                                                "type": "boolean",
                                                "default": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "harp",
                                "label": "HaRP (AppAPI)",
                                "description": "HaRP (HAProxy Reverse Proxy) enables Nextcloud AppAPI for External Apps (ExApps).</br>\nEnabling or Disabling this will trigger actions on each startup to ensure\nthe configuration is either present or absent.</br>\nRequires Docker socket access (/var/run/docker.sock).</br>\nSee https://github.com/nextcloud/HaRP for more information.\n",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable HaRP for Nextcloud AppAPI",
                                            "schema": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        },
                                        {
                                            "variable": "shared_key",
                                            "label": "Shared Key",
                                            "description": "Secret key shared between HaRP and Nextcloud AppAPI.</br>\nSet the same value in Nextcloud Admin > AppAPI > Deploy Daemons.\n",
                                            "schema": {
                                                "type": "string",
                                                "private": true,
                                                "required": true,
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "compute_device",
                                            "label": "Compute Device",
                                            "description": "GPU device to expose to the daemon",
                                            "schema": {
                                                "type": "string",
                                                "default": "cpu",
                                                "required": true,
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "enum": [
                                                    {
                                                        "value": "cpu",
                                                        "description": "CPU"
                                                    },
                                                    {
                                                        "value": "cuda",
                                                        "description": "CUDA compatible GPU"
                                                    },
                                                    {
                                                        "value": "rocm",
                                                        "description": "ROCm compatible GPU"
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "collabora",
                                "label": "Collabora",
                                "description": "Collabora settings for Nextcloud.</br>\nEnabling or Disabling this will trigger actions on each startup to ensure\nthe configuration is either present or absent.</br>\nActions like, update configuration, add/remove nextcloud app.\n",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable Collabora",
                                            "schema": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        },
                                        {
                                            "variable": "url",
                                            "label": "URL",
                                            "description": "The URL to use for Collabora.</br>\nhttps://collabora.example.com\n",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "internal_url",
                                            "label": "Internal URL",
                                            "description": "The internal URL to use for Collabora.</br>\nThis URL needs to be accessible from the Nextcloud container.</br>\nBut not required to be accessible from the outside (ie clients).</br>\n",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "default": "http://host.docker.internal:9980",
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "allowlist",
                                            "label": "Allowlist",
                                            "description": "The allowlist to use for Collabora.</br>\nExample: 0.0.0.0/0\n",
                                            "schema": {
                                                "type": "list",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "default": [
                                                    "0.0.0.0/0"
                                                ],
                                                "items": [
                                                    {
                                                        "variable": "allow",
                                                        "label": "Allow",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "onlyoffice",
                                "label": "Onlyoffice",
                                "description": "Onlyoffice settings for Nextcloud.</br>\nEnabling or Disabling this will trigger actions on each startup to ensure\nthe configuration is either present or absent.</br>\nActions like, update configuration, add/remove nextcloud app.\n",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable Onlyoffice",
                                            "schema": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        },
                                        {
                                            "variable": "url",
                                            "label": "URL",
                                            "description": "The URL to use for Onlyoffice.</br>\nhttps://onlyoffice.example.com\n",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "jwt_secret",
                                            "label": "JWT Secret",
                                            "description": "The JWT secret to use for Onlyoffice.</br>\nExample: random_string_of_characters\n",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "required": true,
                                                "private": true
                                            }
                                        },
                                        {
                                            "variable": "jwt_header",
                                            "label": "JWT Header",
                                            "description": "The JWT header to use for Onlyoffice.</br>\nExample: Authorization\n",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "default": "Authorization",
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "clamav",
                                "label": "Clamav",
                                "description": "Clamav settings for Nextcloud.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable Clamav",
                                            "schema": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        },
                                        {
                                            "variable": "host",
                                            "label": "Host",
                                            "description": "The host to use for Clamav.</br>\nDo NOT include the protocol or the port.</br>\nExamples: </br>\n  - clamav.example.com\n  - 192.168.1.100 (replace ip and port with your own)\n",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "port",
                                            "label": "Port",
                                            "description": "The port to use for Clamav.</br>\nExample: 3310\n",
                                            "schema": {
                                                "type": "int",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "default": 3310,
                                                "min": 1,
                                                "max": 65535,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "file_max_size",
                                            "label": "File Max Size",
                                            "description": "The maximum size of a file to scan.</br>\nExample: -1 (unlimited)\n",
                                            "schema": {
                                                "type": "int",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "default": -1,
                                                "min": -1,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "infected_action",
                                            "label": "Infected Action",
                                            "description": "The action to take when a file is infected.</br>\nExample: only_log\n",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "default": "only_log",
                                                "required": true,
                                                "enum": [
                                                    {
                                                        "value": "only_log",
                                                        "description": "Only log"
                                                    },
                                                    {
                                                        "value": "delete",
                                                        "description": "Delete"
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "urls",
                                "label": "URLs",
                                "description": "URLs settings for Nextcloud.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "protocol",
                                            "label": "Protocol",
                                            "description": "The protocol you use to access Nextcloud.</br>\nFor example if you use a reverse proxy, you most likely want to use https.</br>\nIf you setup a certificate on the network section, https will be used automatically.\n",
                                            "schema": {
                                                "type": "string",
                                                "default": "http",
                                                "required": true,
                                                "enum": [
                                                    {
                                                        "value": "http",
                                                        "description": "HTTP"
                                                    },
                                                    {
                                                        "value": "https",
                                                        "description": "HTTPS"
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "host",
                                            "label": "Host",
                                            "description": "The host you use to access Nextcloud.</br>\nDo NOT include the protocol or the port.</br>\nExamples:</br>\n- cloud.domain.com</br>\n- 192.168.1.100 (replace ip and port with your own)\n",
                                            "schema": {
                                                "type": "string",
                                                "default": "",
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "external_port",
                                            "label": "External Port",
                                            "description": "The external port you use to access Nextcloud.</br>\nIf you use a reverse proxy, you most likely want to use 443.</br>\nLeave it at `0` if you are not using anything else in-front of Nextcloud.</br>\nExample: 443\n",
                                            "schema": {
                                                "type": "int",
                                                "null": true,
                                                "min": 1,
                                                "max": 65535
                                            }
                                        },
                                        {
                                            "variable": "trusted_domains",
                                            "label": "Trusted Domains",
                                            "description": "Additional trusted domains to use for Nextcloud.</br>\nAutomatically added:\n- The `host` you set above\n- Hosts of Collabora and/or Onlyoffice\n",
                                            "schema": {
                                                "type": "list",
                                                "default": [],
                                                "items": [
                                                    {
                                                        "variable": "domain",
                                                        "label": "Domain",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "trusted_proxies",
                                            "label": "Trusted Proxies",
                                            "description": "Trusted proxies to use for Nextcloud.",
                                            "schema": {
                                                "type": "list",
                                                "default": [
                                                    "10.0.0.0/8",
                                                    "172.16.0.0/12",
                                                    "192.168.0.0/16"
                                                ],
                                                "items": [
                                                    {
                                                        "variable": "proxy",
                                                        "label": "Proxy",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "additional_envs",
                                "label": "Additional Environment Variables",
                                "schema": {
                                    "type": "list",
                                    "default": [],
                                    "items": [
                                        {
                                            "variable": "env",
                                            "label": "Environment Variable",
                                            "schema": {
                                                "type": "dict",
                                                "attrs": [
                                                    {
                                                        "variable": "name",
                                                        "label": "Name",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true
                                                        }
                                                    },
                                                    {
                                                        "variable": "value",
                                                        "label": "Value",
                                                        "schema": {
                                                            "type": "string"
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "variable": "run_as",
                    "label": "",
                    "group": "User and Group Configuration",
                    "schema": {
                        "type": "dict",
                        "attrs": [
                            {
                                "variable": "user",
                                "label": "User ID",
                                "description": "The user id that Nextcloud files will be owned by.",
                                "schema": {
                                    "type": "int",
                                    "min": 568,
                                    "default": 568,
                                    "required": true
                                }
                            },
                            {
                                "variable": "group",
                                "label": "Group ID",
                                "description": "The group id that Nextcloud files will be owned by.",
                                "schema": {
                                    "type": "int",
                                    "min": 568,
                                    "default": 568,
                                    "required": true
                                }
                            }
                        ]
                    }
                },
                {
                    "variable": "network",
                    "label": "",
                    "group": "Network Configuration",
                    "schema": {
                        "type": "dict",
                        "attrs": [
                            {
                                "variable": "web_port",
                                "label": "WebUI Port",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "bind_mode",
                                            "label": "Port Bind Mode",
                                            "description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
                                            "schema": {
                                                "type": "string",
                                                "default": "published",
                                                "enum": [
                                                    {
                                                        "value": "published",
                                                        "description": "Publish port on the host for external access"
                                                    },
                                                    {
                                                        "value": "exposed",
                                                        "description": "Expose port for inter-container communication"
                                                    },
                                                    {
                                                        "value": "",
                                                        "description": "None"
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "port_number",
                                            "label": "Port Number",
                                            "schema": {
                                                "type": "int",
                                                "default": 30125,
                                                "min": 1,
                                                "max": 65535,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "host_ips",
                                            "label": "Host IPs",
                                            "description": "IPs on the host to bind this port",
                                            "schema": {
                                                "type": "list",
                                                "show_if": [
                                                    [
                                                        "bind_mode",
                                                        "=",
                                                        "published"
                                                    ]
                                                ],
                                                "default": [],
                                                "items": [
                                                    {
                                                        "variable": "host_ip",
                                                        "label": "Host IP",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "$ref": [
                                                                "definitions/node_bind_ip"
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "certificate_id",
                                "label": "Certificate ID",
                                "description": "The certificate ID to use for Nextcloud.",
                                "schema": {
                                    "type": "int",
                                    "null": true,
                                    "$ref": [
                                        "definitions/certificate"
                                    ]
                                }
                            },
                            {
                                "variable": "networks",
                                "label": "Networks",
                                "description": "The docker networks to join",
                                "schema": {
                                    "type": "list",
                                    "default": [],
                                    "items": [
                                        {
                                            "variable": "network",
                                            "label": "Network",
                                            "schema": {
                                                "type": "dict",
                                                "attrs": [
                                                    {
                                                        "variable": "name",
                                                        "label": "Name",
                                                        "description": "The name of the network to join.</br>\nThe network must already exist.\n",
                                                        "schema": {
                                                            "type": "string",
                                                            "default": "",
                                                            "required": true
                                                        }
                                                    },
                                                    {
                                                        "variable": "containers",
                                                        "label": "Containers",
                                                        "description": "The containers to add to this network.",
                                                        "schema": {
                                                            "type": "list",
                                                            "items": [
                                                                {
                                                                    "variable": "container",
                                                                    "label": "Container",
                                                                    "schema": {
                                                                        "type": "dict",
                                                                        "attrs": [
                                                                            {
                                                                                "variable": "name",
                                                                                "label": "Container Name",
                                                                                "schema": {
                                                                                    "type": "string",
                                                                                    "required": true,
                                                                                    "enum": [
                                                                                        {
                                                                                            "value": "nextcloud",
                                                                                            "description": "nextcloud"
                                                                                        },
                                                                                        {
                                                                                            "value": "imaginary",
                                                                                            "description": "imaginary"
                                                                                        },
                                                                                        {
                                                                                            "value": "notify-push",
                                                                                            "description": "notify-push"
                                                                                        },
                                                                                        {
                                                                                            "value": "cron",
                                                                                            "description": "cron"
                                                                                        },
                                                                                        {
                                                                                            "value": "nginx",
                                                                                            "description": "nginx"
                                                                                        },
                                                                                        {
                                                                                            "value": "postgres",
                                                                                            "description": "postgres"
                                                                                        },
                                                                                        {
                                                                                            "value": "redis",
                                                                                            "description": "redis"
                                                                                        },
                                                                                        {
                                                                                            "value": "harp",
                                                                                            "description": "harp"
                                                                                        }
                                                                                    ]
                                                                                }
                                                                            },
                                                                            {
                                                                                "variable": "config",
                                                                                "label": "Container Network Configuration",
                                                                                "schema": {
                                                                                    "type": "dict",
                                                                                    "attrs": [
                                                                                        {
                                                                                            "variable": "aliases",
                                                                                            "label": "Aliases (Optional)",
                                                                                            "description": "The network aliases to use for this container on this network.",
                                                                                            "schema": {
                                                                                                "type": "list",
                                                                                                "default": [],
                                                                                                "items": [
                                                                                                    {
                                                                                                        "variable": "alias",
                                                                                                        "label": "Alias",
                                                                                                        "schema": {
                                                                                                            "type": "string"
                                                                                                        }
                                                                                                    }
                                                                                                ]
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "variable": "interface_name",
                                                                                            "label": "Interface Name (Optional)",
                                                                                            "description": "The network interface name to use for this network",
                                                                                            "schema": {
                                                                                                "type": "string"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "variable": "mac_address",
                                                                                            "label": "MAC Address (Optional)",
                                                                                            "description": "The MAC address to use for this network interface.",
                                                                                            "schema": {
                                                                                                "type": "string"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "variable": "ipv4_address",
                                                                                            "label": "IPv4 Address (Optional)",
                                                                                            "description": "The IPv4 address to use for this network interface.",
                                                                                            "schema": {
                                                                                                "type": "string"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "variable": "ipv6_address",
                                                                                            "label": "IPv6 Address (Optional)",
                                                                                            "description": "The IPv6 address to use for this network interface.",
                                                                                            "schema": {
                                                                                                "type": "string"
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "variable": "gw_priority",
                                                                                            "label": "Gateway Priority (Optional)",
                                                                                            "description": "Indicates the priority of the gateway for this network interface.",
                                                                                            "schema": {
                                                                                                "type": "int",
                                                                                                "null": true
                                                                                            }
                                                                                        },
                                                                                        {
                                                                                            "variable": "priority",
                                                                                            "label": "Priority (Optional)",
                                                                                            "description": "Indicates in which order Compose connects the service's containers to its networks.",
                                                                                            "schema": {
                                                                                                "type": "int",
                                                                                                "null": true
                                                                                            }
                                                                                        }
                                                                                    ]
                                                                                }
                                                                            }
                                                                        ]
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "variable": "storage",
                    "label": "",
                    "group": "Storage Configuration",
                    "schema": {
                        "type": "dict",
                        "attrs": [
                            {
                                "variable": "html",
                                "label": "Nextcloud AppData Storage (HTML, Custom Themes, Apps, etc.)",
                                "description": "The path to store Nextcloud HTML and AppData.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "type",
                                            "label": "Type",
                                            "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
                                            "schema": {
                                                "type": "string",
                                                "required": true,
                                                "default": "ix_volume",
                                                "enum": [
                                                    {
                                                        "value": "host_path",
                                                        "description": "Host Path (Path that already exists on the system)"
                                                    },
                                                    {
                                                        "value": "ix_volume",
                                                        "description": "ixVolume (Dataset created automatically by the system)"
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "ix_volume_config",
                                            "label": "ixVolume Configuration",
                                            "description": "The configuration for the ixVolume dataset.",
                                            "schema": {
                                                "type": "dict",
                                                "show_if": [
                                                    [
                                                        "type",
                                                        "=",
                                                        "ix_volume"
                                                    ]
                                                ],
                                                "$ref": [
                                                    "normalize/ix_volume"
                                                ],
                                                "attrs": [
                                                    {
                                                        "variable": "acl_enable",
                                                        "label": "Enable ACL",
                                                        "description": "Enable ACL for the storage.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false
                                                        }
                                                    },
                                                    {
                                                        "variable": "dataset_name",
                                                        "label": "Dataset Name",
                                                        "description": "The name of the dataset to use for storage.",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "hidden": true,
                                                            "default": "html"
                                                        }
                                                    },
                                                    {
                                                        "variable": "acl_entries",
                                                        "label": "ACL Configuration",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    true
                                                                ]
                                                            ],
                                                            "attrs": []
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "host_path_config",
                                            "label": "Host Path Configuration",
                                            "schema": {
                                                "type": "dict",
                                                "show_if": [
                                                    [
                                                        "type",
                                                        "=",
                                                        "host_path"
                                                    ]
                                                ],
                                                "attrs": [
                                                    {
                                                        "variable": "acl_enable",
                                                        "label": "Enable ACL",
                                                        "description": "Enable ACL for the storage.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false
                                                        }
                                                    },
                                                    {
                                                        "variable": "acl",
                                                        "label": "ACL Configuration",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    true
                                                                ]
                                                            ],
                                                            "attrs": [],
                                                            "$ref": [
                                                                "normalize/acl"
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "variable": "path",
                                                        "label": "Host Path",
                                                        "description": "The host path to use for storage.",
                                                        "schema": {
                                                            "type": "hostpath",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    false
                                                                ]
                                                            ],
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "data",
                                "label": "Nextcloud User Data Storage",
                                "description": "The path to store Nextcloud User Data (Mounted at /nc-data).",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "type",
                                            "label": "Type",
                                            "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
                                            "schema": {
                                                "type": "string",
                                                "required": true,
                                                "default": "ix_volume",
                                                "enum": [
                                                    {
                                                        "value": "host_path",
                                                        "description": "Host Path (Path that already exists on the system)"
                                                    },
                                                    {
                                                        "value": "ix_volume",
                                                        "description": "ixVolume (Dataset created automatically by the system)"
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "ix_volume_config",
                                            "label": "ixVolume Configuration",
                                            "description": "The configuration for the ixVolume dataset.",
                                            "schema": {
                                                "type": "dict",
                                                "show_if": [
                                                    [
                                                        "type",
                                                        "=",
                                                        "ix_volume"
                                                    ]
                                                ],
                                                "$ref": [
                                                    "normalize/ix_volume"
                                                ],
                                                "attrs": [
                                                    {
                                                        "variable": "acl_enable",
                                                        "label": "Enable ACL",
                                                        "description": "Enable ACL for the storage.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false
                                                        }
                                                    },
                                                    {
                                                        "variable": "dataset_name",
                                                        "label": "Dataset Name",
                                                        "description": "The name of the dataset to use for storage.",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "hidden": true,
                                                            "default": "data"
                                                        }
                                                    },
                                                    {
                                                        "variable": "acl_entries",
                                                        "label": "ACL Configuration",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    true
                                                                ]
                                                            ],
                                                            "attrs": []
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "host_path_config",
                                            "label": "Host Path Configuration",
                                            "schema": {
                                                "type": "dict",
                                                "show_if": [
                                                    [
                                                        "type",
                                                        "=",
                                                        "host_path"
                                                    ]
                                                ],
                                                "attrs": [
                                                    {
                                                        "variable": "acl_enable",
                                                        "label": "Enable ACL",
                                                        "description": "Enable ACL for the storage.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false
                                                        }
                                                    },
                                                    {
                                                        "variable": "acl",
                                                        "label": "ACL Configuration",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    true
                                                                ]
                                                            ],
                                                            "attrs": [],
                                                            "$ref": [
                                                                "normalize/acl"
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "variable": "path",
                                                        "label": "Host Path",
                                                        "description": "The host path to use for storage.",
                                                        "schema": {
                                                            "type": "hostpath",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    false
                                                                ]
                                                            ],
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "postgres_data",
                                "label": "Nextcloud Postgres Data Storage",
                                "description": "The path to store Nextcloud Postgres Data.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "type",
                                            "label": "Type",
                                            "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.\n",
                                            "schema": {
                                                "type": "string",
                                                "required": true,
                                                "default": "ix_volume",
                                                "enum": [
                                                    {
                                                        "value": "host_path",
                                                        "description": "Host Path (Path that already exists on the system)"
                                                    },
                                                    {
                                                        "value": "ix_volume",
                                                        "description": "ixVolume (Dataset created automatically by the system)"
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "ix_volume_config",
                                            "label": "ixVolume Configuration",
                                            "description": "The configuration for the ixVolume dataset.",
                                            "schema": {
                                                "type": "dict",
                                                "show_if": [
                                                    [
                                                        "type",
                                                        "=",
                                                        "ix_volume"
                                                    ]
                                                ],
                                                "$ref": [
                                                    "normalize/ix_volume"
                                                ],
                                                "attrs": [
                                                    {
                                                        "variable": "acl_enable",
                                                        "label": "Enable ACL",
                                                        "description": "Enable ACL for the storage.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false
                                                        }
                                                    },
                                                    {
                                                        "variable": "dataset_name",
                                                        "label": "Dataset Name",
                                                        "description": "The name of the dataset to use for storage.",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "hidden": true,
                                                            "default": "postgres_data"
                                                        }
                                                    },
                                                    {
                                                        "variable": "acl_entries",
                                                        "label": "ACL Configuration",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    true
                                                                ]
                                                            ],
                                                            "attrs": []
                                                        }
                                                    }
                                                ]
                                            }
                                        },
                                        {
                                            "variable": "host_path_config",
                                            "label": "Host Path Configuration",
                                            "schema": {
                                                "type": "dict",
                                                "show_if": [
                                                    [
                                                        "type",
                                                        "=",
                                                        "host_path"
                                                    ]
                                                ],
                                                "attrs": [
                                                    {
                                                        "variable": "acl_enable",
                                                        "label": "Enable ACL",
                                                        "description": "Enable ACL for the storage.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false
                                                        }
                                                    },
                                                    {
                                                        "variable": "acl",
                                                        "label": "ACL Configuration",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    true
                                                                ]
                                                            ],
                                                            "attrs": [],
                                                            "$ref": [
                                                                "normalize/acl"
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "variable": "path",
                                                        "label": "Host Path",
                                                        "description": "The host path to use for storage.",
                                                        "schema": {
                                                            "type": "hostpath",
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    false
                                                                ]
                                                            ],
                                                            "required": true
                                                        }
                                                    },
                                                    {
                                                        "variable": "auto_permissions",
                                                        "label": "Automatic Permissions",
                                                        "description": "Automatically set permissions for the host path.\nEnabling this, will check the top level directory,</br>\nIf it finds incorrect permissions, it will `chown` the\nhost path to the user and group required for the\npostgres container.\n",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false,
                                                            "show_if": [
                                                                [
                                                                    "acl_enable",
                                                                    "=",
                                                                    false
                                                                ]
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "additional_storage",
                                "label": "Additional Storage",
                                "schema": {
                                    "type": "list",
                                    "default": [],
                                    "items": [
                                        {
                                            "variable": "storageEntry",
                                            "label": "Storage Entry",
                                            "schema": {
                                                "type": "dict",
                                                "attrs": [
                                                    {
                                                        "variable": "type",
                                                        "label": "Type",
                                                        "description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.</br>\nNFS Share: Is a NFS share that is mounted to as a volume.\n",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "default": "ix_volume",
                                                            "enum": [
                                                                {
                                                                    "value": "host_path",
                                                                    "description": "Host Path (Path that already exists on the system)"
                                                                },
                                                                {
                                                                    "value": "ix_volume",
                                                                    "description": "ixVolume (Dataset created automatically by the system)"
                                                                },
                                                                {
                                                                    "value": "cifs",
                                                                    "description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
                                                                },
                                                                {
                                                                    "value": "nfs",
                                                                    "description": "NFS Share (Mounts a volume to a NFS share)"
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "variable": "read_only",
                                                        "label": "Read Only",
                                                        "description": "Mount the volume as read only.",
                                                        "schema": {
                                                            "type": "boolean",
                                                            "default": false
                                                        }
                                                    },
                                                    {
                                                        "variable": "mount_path",
                                                        "label": "Mount Path",
                                                        "description": "The path inside the container to mount the storage.",
                                                        "schema": {
                                                            "type": "path",
                                                            "required": true
                                                        }
                                                    },
                                                    {
                                                        "variable": "host_path_config",
                                                        "label": "Host Path Configuration",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "type",
                                                                    "=",
                                                                    "host_path"
                                                                ]
                                                            ],
                                                            "attrs": [
                                                                {
                                                                    "variable": "acl_enable",
                                                                    "label": "Enable ACL",
                                                                    "description": "Enable ACL for the storage.",
                                                                    "schema": {
                                                                        "type": "boolean",
                                                                        "default": false
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "acl",
                                                                    "label": "ACL Configuration",
                                                                    "schema": {
                                                                        "type": "dict",
                                                                        "show_if": [
                                                                            [
                                                                                "acl_enable",
                                                                                "=",
                                                                                true
                                                                            ]
                                                                        ],
                                                                        "attrs": [],
                                                                        "$ref": [
                                                                            "normalize/acl"
                                                                        ]
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "path",
                                                                    "label": "Host Path",
                                                                    "description": "The host path to use for storage.",
                                                                    "schema": {
                                                                        "type": "hostpath",
                                                                        "show_if": [
                                                                            [
                                                                                "acl_enable",
                                                                                "=",
                                                                                false
                                                                            ]
                                                                        ],
                                                                        "required": true
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "variable": "ix_volume_config",
                                                        "label": "ixVolume Configuration",
                                                        "description": "The configuration for the ixVolume dataset.",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "type",
                                                                    "=",
                                                                    "ix_volume"
                                                                ]
                                                            ],
                                                            "$ref": [
                                                                "normalize/ix_volume"
                                                            ],
                                                            "attrs": [
                                                                {
                                                                    "variable": "acl_enable",
                                                                    "label": "Enable ACL",
                                                                    "description": "Enable ACL for the storage.",
                                                                    "schema": {
                                                                        "type": "boolean",
                                                                        "default": false
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "dataset_name",
                                                                    "label": "Dataset Name",
                                                                    "description": "The name of the dataset to use for storage.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true,
                                                                        "default": "storage_entry"
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "acl_entries",
                                                                    "label": "ACL Configuration",
                                                                    "schema": {
                                                                        "type": "dict",
                                                                        "show_if": [
                                                                            [
                                                                                "acl_enable",
                                                                                "=",
                                                                                true
                                                                            ]
                                                                        ],
                                                                        "attrs": [],
                                                                        "$ref": [
                                                                            "normalize/acl"
                                                                        ]
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "variable": "cifs_config",
                                                        "label": "SMB Configuration",
                                                        "description": "The configuration for the SMB dataset.",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "type",
                                                                    "=",
                                                                    "cifs"
                                                                ]
                                                            ],
                                                            "attrs": [
                                                                {
                                                                    "variable": "server",
                                                                    "label": "Server",
                                                                    "description": "The server to mount the SMB share.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "path",
                                                                    "label": "Path",
                                                                    "description": "The path to mount the SMB share.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "username",
                                                                    "label": "Username",
                                                                    "description": "The username to use for the SMB share.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "password",
                                                                    "label": "Password",
                                                                    "description": "The password to use for the SMB share.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true,
                                                                        "private": true
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "domain",
                                                                    "label": "Domain",
                                                                    "description": "The domain to use for the SMB share.",
                                                                    "schema": {
                                                                        "type": "string"
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "variable": "nfs_config",
                                                        "label": "NFS Configuration",
                                                        "description": "The configuration for the NFS dataset.",
                                                        "schema": {
                                                            "type": "dict",
                                                            "show_if": [
                                                                [
                                                                    "type",
                                                                    "=",
                                                                    "nfs"
                                                                ]
                                                            ],
                                                            "attrs": [
                                                                {
                                                                    "variable": "server",
                                                                    "label": "Server",
                                                                    "description": "The server to mount the NFS share.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true
                                                                    }
                                                                },
                                                                {
                                                                    "variable": "path",
                                                                    "label": "Path",
                                                                    "description": "The path to mount the NFS share.",
                                                                    "schema": {
                                                                        "type": "string",
                                                                        "required": true
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "variable": "labels",
                    "label": "",
                    "group": "Labels Configuration",
                    "schema": {
                        "type": "list",
                        "default": [],
                        "items": [
                            {
                                "variable": "label",
                                "label": "Label",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "key",
                                            "label": "Key",
                                            "schema": {
                                                "type": "string",
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "value",
                                            "label": "Value",
                                            "schema": {
                                                "type": "string",
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "containers",
                                            "label": "Containers",
                                            "description": "Containers where the label should be applied",
                                            "schema": {
                                                "type": "list",
                                                "items": [
                                                    {
                                                        "variable": "container",
                                                        "label": "Container",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "enum": [
                                                                {
                                                                    "value": "nextcloud",
                                                                    "description": "nextcloud"
                                                                },
                                                                {
                                                                    "value": "imaginary",
                                                                    "description": "imaginary"
                                                                },
                                                                {
                                                                    "value": "notify-push",
                                                                    "description": "notify-push"
                                                                },
                                                                {
                                                                    "value": "cron",
                                                                    "description": "cron"
                                                                },
                                                                {
                                                                    "value": "nginx",
                                                                    "description": "nginx"
                                                                },
                                                                {
                                                                    "value": "postgres",
                                                                    "description": "postgres"
                                                                },
                                                                {
                                                                    "value": "redis",
                                                                    "description": "redis"
                                                                },
                                                                {
                                                                    "value": "harp",
                                                                    "description": "harp"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "variable": "resources",
                    "label": "",
                    "group": "Resources Configuration",
                    "schema": {
                        "type": "dict",
                        "attrs": [
                            {
                                "variable": "limits",
                                "label": "Limits",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "cpus",
                                            "label": "CPUs",
                                            "description": "CPUs limit for Nextcloud.",
                                            "schema": {
                                                "type": "int",
                                                "default": 2,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "memory",
                                            "label": "Memory (in MB)",
                                            "description": "Memory limit for Nextcloud.",
                                            "schema": {
                                                "type": "int",
                                                "default": 4096,
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "gpus",
                                "group": "Resources Configuration",
                                "label": "GPU Configuration",
                                "schema": {
                                    "type": "dict",
                                    "$ref": [
                                        "definitions/gpu_configuration"
                                    ],
                                    "attrs": []
                                }
                            }
                        ]
                    }
                }
            ]
        },
        "readme": "<h1>Nextcloud</h1> <p><a href=\"https://nextcloud.com/\">Nextcloud</a> is a file sharing server that puts the control and security of your own data back into your hands.</p>",
        "changelog": null,
        "chart_metadata": {
            "app_version": "34.0.2-fpm-7bb8cfc6",
            "capabilities": [
                {
                    "description": "Harp is able to bypass read/execute permission checks",
                    "name": "DAC_READ_SEARCH"
                }
            ],
            "categories": [
                "productivity"
            ],
            "changelog_url": "https://nextcloud.com/changelog/",
            "date_added": "2025-03-05",
            "description": "A file sharing server that puts the control and security of your own data back into your hands.",
            "home": "https://nextcloud.com/",
            "host_mounts": [
                {
                    "description": "Required for HaRP (AppAPI) to manage Docker containers when enabled.",
                    "host_path": "/var/run/docker.sock"
                }
            ],
            "icon": "https://media.sys.truenas.net/apps/nextcloud/icons/icon.svg",
            "keywords": [
                "nextcloud",
                "storage",
                "sync",
                "http",
                "web",
                "php"
            ],
            "lib_version": "2.3.8",
            "lib_version_hash": "cd75c897a1e8fef54b5bd00d0d8849f240bc50db2ef650eccc0ee74f3b2b2dc1",
            "maintainers": [
                {
                    "email": "dev@truenas.com",
                    "name": "truenas",
                    "url": "https://www.truenas.com/"
                }
            ],
            "name": "nextcloud",
            "run_as_context": [
                {
                    "description": "Container [cron] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [harp] runs as root user and group.",
                    "gid": 0,
                    "group_name": "Host group is [root]",
                    "uid": 0,
                    "user_name": "Host user is [root]"
                },
                {
                    "description": "Container [imaginary] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [nextcloud] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [nginx] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [notify-push] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                },
                {
                    "description": "Container [postgres] runs as non-root user and group.",
                    "gid": 999,
                    "group_name": "Host group is [docker]",
                    "uid": 999,
                    "user_name": "Host user is [netdata]"
                },
                {
                    "description": "Container [redis] can run as any non-root user and group.",
                    "gid": 568,
                    "group_name": "Host group is [apps]",
                    "uid": 568,
                    "user_name": "Host user is [apps]"
                }
            ],
            "screenshots": [
                "https://media.sys.truenas.net/apps/nextcloud/screenshots/screenshot1.png",
                "https://media.sys.truenas.net/apps/nextcloud/screenshots/screenshot2.png",
                "https://media.sys.truenas.net/apps/nextcloud/screenshots/screenshot3.png"
            ],
            "sources": [
                "https://apps.truenas.com/catalog/nextcloud_community/",
                "https://apps.truenas.com/catalog/nextcloud_test/",
                "https://github.com/nextcloud/docker",
                "https://github.com/truenas/containers/tree/master/apps/nextcloud-fpm",
                "https://github.com/truenas/containers/tree/master/apps/nextcloud-notify-push",
                "https://hub.docker.com/r/ixsystems/nextcloud-fpm",
                "https://hub.docker.com/r/ixsystems/nextcloud-notify-push"
            ],
            "title": "Nextcloud",
            "train": "community",
            "version": "1.0.3"
        }
    }
}


Resources

Support, maintenance, and documentation for applications within the Community catalog is handled by the TrueNAS community. The TrueNAS Applications Market hosts but does not validate or maintain any linked resources associated with this app.

There currently aren’t any resources available for this application!

Please help the TrueNAS community add resources here or discuss this application in the TrueNAS Community forum.