TrueNAS Apps Market

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

Download TrueNAS
TrueNAS UI and Apps screens

Nextcloud

Nextcloud
Get Started with Apps!
App Version: 31.0.4 (Changelog)
Keywords: nextcloud, storage, sync, http, web, php
Train: Stable
Home Page: https://nextcloud.com/
Nextcloud Details
Added: 2024-08-07
Last Updated: 2025-04-23

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

Run as Context
  • Nextcloud runs as root user.
    Group: 0 / root
    User: 0 / root
  • Postgres runs as non-root user.
    Group: 999 / postgres
    User: 999 / postgres
  • Redis runs as a non-root user and root group.
    Group: 0 / root
    User: 1001 / redis
  • Nginx runs as root user.
    Group: 0 / root
    User: 0 / root
  • Imaginary runs as non-root user.
    Group: 568 / imaginary
    User: 568 / imaginary

Screenshots
Screenshot 1 Screenshot 2 Screenshot 3

Security Capabilities
  • Nextcloud and Nginx are able to chown files.
  • Nextcloud and Nginx are able to bypass permission checks for it's sub-processes.
  • Nextcloud and Nginx are able to bypass permission checks.
  • Nextcloud and Nginx are able to set group ID for it's sub-processes.
  • Nextcloud and Nginx are able to set user ID for it's sub-processes.
  • Nextcloud and Nginx are able to bind to privileged ports.
  • Nextcloud and Nginx are able to use raw sockets.
  • Imaginary is able to set nice level for it's sub-processes.

App Metadata (Raw File)
{
    "1.6.20": {
        "healthy": true,
        "supported": true,
        "healthy_error": null,
        "location": "/__w/apps/apps/trains/stable/nextcloud/1.6.20",
        "last_update": "2025-04-23 17:40:39",
        "required_features": [],
        "human_version": "31.0.4_1.6.20",
        "version": "1.6.20",
        "app_metadata": {
            "app_version": "31.0.4",
            "capabilities": [
                {
                    "description": "Nextcloud and Nginx are able to chown files.",
                    "name": "CHOWN"
                },
                {
                    "description": "Nextcloud and Nginx are able to bypass permission checks for it's sub-processes.",
                    "name": "FOWNER"
                },
                {
                    "description": "Nextcloud and Nginx are able to bypass permission checks.",
                    "name": "DAC_OVERRIDE"
                },
                {
                    "description": "Nextcloud and Nginx are able to set group ID for it's sub-processes.",
                    "name": "SETGID"
                },
                {
                    "description": "Nextcloud and Nginx are able to set user ID for it's sub-processes.",
                    "name": "SETUID"
                },
                {
                    "description": "Nextcloud and Nginx are able to bind to privileged ports.",
                    "name": "NET_BIND_SERVICE"
                },
                {
                    "description": "Nextcloud and Nginx are able to use raw sockets.",
                    "name": "NET_RAW"
                },
                {
                    "description": "Imaginary is able to set nice level for it's sub-processes.",
                    "name": "SYS_NICE"
                }
            ],
            "categories": [
                "productivity"
            ],
            "changelog_url": "https://nextcloud.com/changelog/",
            "date_added": "2024-08-07",
            "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": [],
            "icon": "https://media.sys.truenas.net/apps/nextcloud/icons/icon.svg",
            "keywords": [
                "nextcloud",
                "storage",
                "sync",
                "http",
                "web",
                "php"
            ],
            "lib_version": "2.1.16",
            "lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
            "maintainers": [
                {
                    "email": "dev@ixsystems.com",
                    "name": "truenas",
                    "url": "https://www.truenas.com/"
                }
            ],
            "name": "nextcloud",
            "run_as_context": [
                {
                    "description": "Nextcloud runs as root user.",
                    "gid": 0,
                    "group_name": "root",
                    "uid": 0,
                    "user_name": "root"
                },
                {
                    "description": "Postgres runs as non-root user.",
                    "gid": 999,
                    "group_name": "postgres",
                    "uid": 999,
                    "user_name": "postgres"
                },
                {
                    "description": "Redis runs as a non-root user and root group.",
                    "gid": 0,
                    "group_name": "root",
                    "uid": 1001,
                    "user_name": "redis"
                },
                {
                    "description": "Nginx runs as root user.",
                    "gid": 0,
                    "group_name": "root",
                    "uid": 0,
                    "user_name": "root"
                },
                {
                    "description": "Imaginary runs as non-root user.",
                    "gid": 568,
                    "group_name": "imaginary",
                    "uid": 568,
                    "user_name": "imaginary"
                }
            ],
            "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://github.com/nextcloud/docker",
                "https://github.com/nextcloud/helm"
            ],
            "title": "Nextcloud",
            "train": "stable",
            "version": "1.6.20"
        },
        "schema": {
            "groups": [
                {
                    "name": "Nextcloud Configuration",
                    "description": "Configure 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": "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_13_image",
                                    "required": true,
                                    "enum": [
                                        {
                                            "value": "postgres_13_image",
                                            "description": "Postgres 13"
                                        },
                                        {
                                            "value": "postgres_17_image",
                                            "description": "Postgres 17"
                                        }
                                    ]
                                }
                            },
                            {
                                "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": "apt_packages",
                                "label": "APT Packages",
                                "description": "The APT packages to install.</br>\nFor additional packages, please open an issue on GitHub.</br>\nSources and documentation links can help expedite the process.\n",
                                "schema": {
                                    "type": "list",
                                    "default": [],
                                    "items": [
                                        {
                                            "variable": "package",
                                            "label": "Package",
                                            "schema": {
                                                "type": "string",
                                                "required": true,
                                                "enum": [
                                                    {
                                                        "value": "ffmpeg",
                                                        "description": "ffmpeg"
                                                    },
                                                    {
                                                        "value": "smbclient",
                                                        "description": "smbclient"
                                                    },
                                                    {
                                                        "value": "ocrmypdf",
                                                        "description": "ocrmypdf"
                                                    },
                                                    {
                                                        "value": "libreoffice",
                                                        "description": "libreoffice"
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "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.</br>\nOnly takes effect if ocrmypdf is selected above.\n",
                                "schema": {
                                    "type": "list",
                                    "default": [],
                                    "items": [
                                        {
                                            "variable": "language",
                                            "label": "Language",
                                            "schema": {
                                                "type": "string",
                                                "min_length": 3,
                                                "max_length": 7,
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "imaginary",
                                "label": "Imaginary",
                                "description": "Imaginary can help improve performance for generating image previews.</br>\nPlease see https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#previews for more information.</br>\n",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable Imaginary",
                                            "schema": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "host",
                                "label": "Host",
                                "description": "Nextcloud host to create application URLs</br>\nExamples: </br>\ncloud.domain.com:30001</br>\ncloud.domain.com (if you use port 443 externally)</br>\n192.168.1.100:9001 (replace ip and port with your own)</br></br>\nThis will be appended to the trusted domains list, but changing that will not remove it from the list.</br>\n",
                                "schema": {
                                    "type": "string",
                                    "default": ""
                                }
                            },
                            {
                                "variable": "data_dir_path",
                                "label": "Data Directory Path",
                                "description": "Configures the data directory where Nextcloud stores all files from the users.\nThe path refers to the path inside the container</br>\nIt is recommended to keep the default value. (/var/www/html/data)\n",
                                "schema": {
                                    "type": "string",
                                    "default": "/var/www/html/data",
                                    "required": true
                                }
                            },
                            {
                                "variable": "redis_password",
                                "label": "Redis Password",
                                "description": "The password for Redis.",
                                "schema": {
                                    "type": "string",
                                    "default": "",
                                    "required": true,
                                    "private": true
                                }
                            },
                            {
                                "variable": "db_user",
                                "label": "Database User",
                                "description": "The user for the database.",
                                "schema": {
                                    "type": "string",
                                    "default": "nextcloud",
                                    "required": true,
                                    "private": true,
                                    "hidden": true
                                }
                            },
                            {
                                "variable": "db_password",
                                "label": "Database Password",
                                "description": "The password for the database.",
                                "schema": {
                                    "type": "string",
                                    "default": "",
                                    "required": true,
                                    "private": true
                                }
                            },
                            {
                                "variable": "php_upload_limit",
                                "label": "PHP Upload Limit (in GB)",
                                "description": "Applies the timeout to the following settings:</br>\n- client_max_body_size in nginx</br>\n- post_max_size and upload_max_filesize in php</br>\n",
                                "schema": {
                                    "type": "int",
                                    "min": 1,
                                    "default": 3,
                                    "required": true
                                }
                            },
                            {
                                "variable": "max_execution_time",
                                "label": "Max Execution Time (in seconds)",
                                "description": "The max execution time for Nextcloud.",
                                "schema": {
                                    "type": "int",
                                    "min": 30,
                                    "default": 30,
                                    "required": true
                                }
                            },
                            {
                                "variable": "php_memory_limit",
                                "label": "PHP Memory Limit (in MB)",
                                "description": "The PHP memory limit.",
                                "schema": {
                                    "type": "int",
                                    "min": 128,
                                    "max": 4096,
                                    "default": 512,
                                    "required": true
                                }
                            },
                            {
                                "variable": "op_cache_memory_consumption",
                                "label": "Op Cache Memory Consumption (in MB)",
                                "description": "The Op Cache memory consumption.",
                                "schema": {
                                    "type": "int",
                                    "min": 128,
                                    "max": 1024,
                                    "default": 128,
                                    "required": true
                                }
                            },
                            {
                                "variable": "cron",
                                "label": "Cron",
                                "description": "The cron schedule.",
                                "schema": {
                                    "type": "dict",
                                    "attrs": [
                                        {
                                            "variable": "enabled",
                                            "label": "Enabled",
                                            "description": "Enable cron.",
                                            "schema": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        },
                                        {
                                            "variable": "schedule",
                                            "label": "Schedule",
                                            "description": "The cron schedule.",
                                            "schema": {
                                                "type": "string",
                                                "show_if": [
                                                    [
                                                        "enabled",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "default": "*/5 * * * *",
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "additional_envs",
                                "label": "Additional Environment Variables",
                                "description": "Configure additional environment variables for Nextcloud.",
                                "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",
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "variable": "network",
                    "label": "",
                    "group": "Network Configuration",
                    "schema": {
                        "type": "dict",
                        "attrs": [
                            {
                                "variable": "web_port",
                                "label": "WebUI Port",
                                "description": "The port for Nextcloud WebUI",
                                "schema": {
                                    "type": "int",
                                    "default": 30027,
                                    "required": true,
                                    "$ref": [
                                        "definitions/port"
                                    ]
                                }
                            },
                            {
                                "variable": "dns_opts",
                                "label": "DNS Options",
                                "description": "DNS options for the container.</br>\nFormat: key:value</br>\nExample: attempts:3\n",
                                "schema": {
                                    "type": "list",
                                    "default": [],
                                    "items": [
                                        {
                                            "variable": "option",
                                            "label": "Option",
                                            "schema": {
                                                "type": "string",
                                                "required": true
                                            }
                                        }
                                    ]
                                }
                            },
                            {
                                "variable": "certificate_id",
                                "label": "Certificate ID",
                                "description": "The certificate ID to use for Nextcloud.",
                                "schema": {
                                    "type": "int",
                                    "null": true,
                                    "$ref": [
                                        "definitions/certificate"
                                    ]
                                }
                            },
                            {
                                "variable": "nginx",
                                "label": "Nginx Configuration",
                                "description": "The configuration for the Nginx.",
                                "schema": {
                                    "type": "dict",
                                    "show_if": [
                                        [
                                            "certificate_id",
                                            "!=",
                                            null
                                        ]
                                    ],
                                    "attrs": [
                                        {
                                            "variable": "proxy_timeout",
                                            "label": "Proxy Timeout",
                                            "description": "Applies the timeout to the following settings:</br>\n- proxy_connect_timeout</br>\n- proxy_send_timeout</br>\n- proxy_read_timeout</br>\n",
                                            "schema": {
                                                "type": "int",
                                                "min": 30,
                                                "default": 60,
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "use_different_port",
                                            "label": "Use different port for URL rewrites",
                                            "description": "If enabled, the URL rewrite will use [Access Port] defined below instead of the [Node Port].</br>\nNote that Nextcloud will still listen on the [Node Port]. (Default 9001)\n",
                                            "schema": {
                                                "type": "boolean",
                                                "default": false
                                            }
                                        },
                                        {
                                            "variable": "external_port",
                                            "label": "External Port",
                                            "description": "The external port for Nginx.",
                                            "schema": {
                                                "type": "int",
                                                "default": 443,
                                                "min": 443,
                                                "max": 65535,
                                                "show_if": [
                                                    [
                                                        "use_different_port",
                                                        "=",
                                                        true
                                                    ]
                                                ],
                                                "required": true
                                            }
                                        },
                                        {
                                            "variable": "custom_confs",
                                            "label": "Custom Nginx Configurations",
                                            "description": "List of custom Nginx configurations.",
                                            "schema": {
                                                "type": "list",
                                                "default": [],
                                                "items": [
                                                    {
                                                        "variable": "conf",
                                                        "label": "Configuration",
                                                        "schema": {
                                                            "type": "hostpath",
                                                            "required": true
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "variable": "storage",
                    "label": "",
                    "group": "Storage Configuration",
                    "schema": {
                        "type": "dict",
                        "attrs": [
                            {
                                "variable": "is_data_in_the_same_volume",
                                "label": "DEPRECATED: Old Storage Structure (See the tooltip for more information)",
                                "description": "Do NOT check this, if this is a new installation.</br>\nIf this is checked, means that this is an installation coming from a previous version (where a different storage structure was used).</br>\nIn order to have backwards compatibility, the older storage structure was kept for this installation.<br/>\nIf you want to utilize the new storage structure, move 'data' in a separate directory or dataset.\nChange the 'Nextcloud User Data' configuration below to point to the new location and then uncheck this checkbox.\n<br/><br/>\nYou will NOT likely want to change that if your setup uses ixVolume as storage.\n<br/>\nSee https://github.com/truenas/apps/issues/931 for more information on how to migrate.\n",
                                "schema": {
                                    "type": "boolean",
                                    "default": false
                                }
                            },
                            {
                                "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,
                                                            "immutable": 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.",
                                "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,
                                                            "immutable": 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,
                                                            "immutable": 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",
                                "description": "Additional storage for Nextcloud.",
                                "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.\n",
                                                        "schema": {
                                                            "type": "string",
                                                            "required": true,
                                                            "default": "ix_volume",
                                                            "immutable": true,
                                                            "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)"
                                                                }
                                                            ]
                                                        }
                                                    },
                                                    {
                                                        "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,
                                                                        "immutable": 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": "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": "cron",
                                                                    "description": "cron"
                                                                },
                                                                {
                                                                    "value": "nginx",
                                                                    "description": "nginx"
                                                                },
                                                                {
                                                                    "value": "postgres",
                                                                    "description": "postgres"
                                                                },
                                                                {
                                                                    "value": "redis",
                                                                    "description": "redis"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                ]
                                            }
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                },
                {
                    "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": "31.0.4",
            "capabilities": [
                {
                    "description": "Nextcloud and Nginx are able to chown files.",
                    "name": "CHOWN"
                },
                {
                    "description": "Nextcloud and Nginx are able to bypass permission checks for it's sub-processes.",
                    "name": "FOWNER"
                },
                {
                    "description": "Nextcloud and Nginx are able to bypass permission checks.",
                    "name": "DAC_OVERRIDE"
                },
                {
                    "description": "Nextcloud and Nginx are able to set group ID for it's sub-processes.",
                    "name": "SETGID"
                },
                {
                    "description": "Nextcloud and Nginx are able to set user ID for it's sub-processes.",
                    "name": "SETUID"
                },
                {
                    "description": "Nextcloud and Nginx are able to bind to privileged ports.",
                    "name": "NET_BIND_SERVICE"
                },
                {
                    "description": "Nextcloud and Nginx are able to use raw sockets.",
                    "name": "NET_RAW"
                },
                {
                    "description": "Imaginary is able to set nice level for it's sub-processes.",
                    "name": "SYS_NICE"
                }
            ],
            "categories": [
                "productivity"
            ],
            "changelog_url": "https://nextcloud.com/changelog/",
            "date_added": "2024-08-07",
            "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": [],
            "icon": "https://media.sys.truenas.net/apps/nextcloud/icons/icon.svg",
            "keywords": [
                "nextcloud",
                "storage",
                "sync",
                "http",
                "web",
                "php"
            ],
            "lib_version": "2.1.16",
            "lib_version_hash": "dac15686f882b9ce65b8549a3d5c0ed7bafe2df7a9028880d1a99b0ff4af1eff",
            "maintainers": [
                {
                    "email": "dev@ixsystems.com",
                    "name": "truenas",
                    "url": "https://www.truenas.com/"
                }
            ],
            "name": "nextcloud",
            "run_as_context": [
                {
                    "description": "Nextcloud runs as root user.",
                    "gid": 0,
                    "group_name": "root",
                    "uid": 0,
                    "user_name": "root"
                },
                {
                    "description": "Postgres runs as non-root user.",
                    "gid": 999,
                    "group_name": "postgres",
                    "uid": 999,
                    "user_name": "postgres"
                },
                {
                    "description": "Redis runs as a non-root user and root group.",
                    "gid": 0,
                    "group_name": "root",
                    "uid": 1001,
                    "user_name": "redis"
                },
                {
                    "description": "Nginx runs as root user.",
                    "gid": 0,
                    "group_name": "root",
                    "uid": 0,
                    "user_name": "root"
                },
                {
                    "description": "Imaginary runs as non-root user.",
                    "gid": 568,
                    "group_name": "imaginary",
                    "uid": 568,
                    "user_name": "imaginary"
                }
            ],
            "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://github.com/nextcloud/docker",
                "https://github.com/nextcloud/helm"
            ],
            "title": "Nextcloud",
            "train": "stable",
            "version": "1.6.20"
        }
    }
}


Resources

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