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