groups: - name: Nextcloud Configuration description: Configure Nextcloud - name: Advanced Pod Configuration description: Configure Advanced Pod Options for Nextcloud - name: Network Configuration description: Configure Network for Nextcloud - name: Storage Configuration description: Configure Storage for Nextcloud - name: Resources Configuration description: Configure Resources for Nextcloud portals: web_portal: protocols: - "$kubernetes-resource_configmap_portal_protocol" host: - "$kubernetes-resource_configmap_portal_host" ports: - "$kubernetes-resource_configmap_portal_port" path: "$kubernetes-resource_configmap_portal_path" questions: - variable: ncConfig label: "" group: Nextcloud Configuration schema: type: dict attrs: - variable: adminUser label: Admin User description: The Nextcloud admin user. schema: type: string default: "" required: true - variable: adminPassword label: Admin Password description: The Nextcloud admin password. schema: type: string default: "" private: true required: true - variable: host label: Host description: | Nextcloud host to create application URLs
Examples:
cloud.domain.com:30001
cloud.domain.com (if you use port 443 externally)
192.168.1.100:9001 (replace ip and port with your own)
schema: type: string $ref: - "definitions/nodeIP" - variable: dataDir label: "Nextcloud data directory" description: "Configures the data directory where Nextcloud stores all files from the users. The path refers to the path inside the container" schema: type: path default: "/var/www/html/data" required: true - variable: commands label: Commands description: Commands to run in the Nextcloud container schema: type: list items: - variable: command label: Command schema: type: string required: true enum: - value: ffmpeg description: ffmpeg - value: smbclient description: smbclient - variable: maxUploadLimit label: Max Upload Size (Giga Bytes) description: | Applies the timeout to the following settings:
- client_max_body_size in nginx
- post_max_size and upload_max_filesize in php
schema: type: int default: 3 min: 1 required: true - variable: maxExecutionTime label: Max Execution Time (Seconds) description: Configures the max execution time of php schema: type: int default: 30 min: 30 required: true - variable: phpMemoryLimit label: PHP Memory Limit (Mega Bytes) description: Configures the memory limit of php schema: type: int default: 512 min: 128 max: 4096 required: true - variable: opCacheMemoryConsumption label: Opcache Memory Consumption (Mega Bytes) description: Configures the memory consumption of the opcache schema: type: int min: 128 max: 1024 default: 128 required: true - variable: cron label: Cron description: Configures the cron job for Nextcloud schema: type: dict attrs: - variable: enabled label: Enabled schema: type: boolean default: true required: true - variable: schedule label: Schedule schema: type: string show_if: [["enabled", "=", true]] default: "*/15 * * * *" required: true - variable: additionalEnvs 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: podOptions label: "" group: Advanced Pod Configuration schema: type: dict attrs: - variable: dnsConfig label: Advanced DNS Configuration schema: type: dict attrs: - variable: options label: DNS Options schema: type: list items: - variable: optionsEntry label: DNS Option Entry schema: type: dict attrs: - variable: name label: Option Name schema: type: string required: true - variable: value label: Option Value schema: type: string required: true - variable: ncNetwork label: "" group: Network Configuration schema: type: dict attrs: - variable: webPort label: Web Port description: The port for the Nextcloud Web UI. schema: type: int default: 9001 min: 9000 max: 65535 required: true - variable: certificateID label: Certificate description: The certificate to use for Nextcloud schema: type: int "null": true $ref: - "definitions/certificate" - variable: nginx label: Nginx Configuration schema: type: dict show_if: [["certificateID", "!=", null]] attrs: - variable: proxyTimeouts label: Proxy timeouts (Seconds) description: | Applies the timeout to the following settings:
- proxy_connect_timeout
- proxy_send_timeout
- proxy_read_timeout
schema: type: int min: 30 default: 60 required: true - variable: useDifferentAccessPort label: Use different port for URL rewrites description: | If enabled, the URL rewrite will use [Access Port] defined below instead of the [Node Port].
Note that Nextcloud will still listen on the [Node Port]. (Default 9001) schema: type: boolean default: false - variable: externalAccessPort label: External Access Port schema: type: int show_if: [["useDifferentAccessPort", "=", true]] min: 443 max: 65535 default: 443 required: true - variable: ncStorage label: "" group: Storage Configuration schema: type: dict attrs: # Dummy variable so we can skip "fixing" migration on new installations - variable: migrationFixed label: "" schema: type: boolean default: true hidden: true - variable: isDataInTheSameVolume label: "Pre v2 Storage Structure (See the tooltip for more information)" description: | Do NOT check this, if this is a new installation.
If this is checked, means that this is an installation coming from a previous version (v1.x.x).
In order to have backwards compatibility, the older storage structure was kept for this installation.
If you want to utilize the new storage structure, move 'data' in a separate directory or dataset. Change the 'Nextcloud UserData' configuration below to point to the new location and then uncheck this checkbox.

You will NOT likely want to change that if your setup uses ixVolume as storage. 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.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: ixVolume enum: - value: hostPath description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - variable: ixVolumeConfig label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: datasetName 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: aclEntries label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] - variable: hostPathConfig label: Host Path Configuration schema: type: dict show_if: [["type", "=", "hostPath"]] attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["aclEnable", "=", 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.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: ixVolume enum: - value: hostPath description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - variable: ixVolumeConfig label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: datasetName 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: aclEntries label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] - variable: hostPathConfig label: Host Path Configuration schema: type: dict show_if: [["type", "=", "hostPath"]] attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["aclEnable", "=", false]] required: true - variable: pgData 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.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: ixVolume enum: - value: hostPath description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - variable: ixVolumeConfig label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict # Nothing to show for the user hidden: true show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean # Postgres does a CHMOD at startup # Which fails with ACL hidden: true default: false - variable: datasetName label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true immutable: true hidden: true default: "pgData" - variable: aclEntries label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] - variable: hostPathConfig label: Host Path Configuration schema: type: dict show_if: [["type", "=", "hostPath"]] attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean # Postgres does a CHMOD at startup # Which fails with ACL hidden: true default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["aclEnable", "=", false]] required: true - variable: pgBackup label: Nextcloud Postgres Backup Storage description: The path to store Nextcloud Postgres Backup. schema: type: dict attrs: - variable: type label: Type description: | ixVolume: Is dataset created automatically by the system.
Host Path: Is a path that already exists on the system. schema: type: string required: true default: ixVolume enum: - value: hostPath description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - variable: ixVolumeConfig label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict # Nothing to show for the user hidden: true show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean # Postgres does a CHMOD at startup # Which fails with ACL hidden: true default: false - variable: datasetName label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true immutable: true hidden: true default: "pgBackup" - variable: aclEntries label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] - variable: hostPathConfig label: Host Path Configuration schema: type: dict show_if: [["type", "=", "hostPath"]] attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean # Postgres does a CHMOD at startup # Which fails with ACL hidden: true default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["aclEnable", "=", false]] required: true - variable: additionalStorages 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.
Host Path: Is a path that already exists on the system.
SMB Share: Is a SMB share that is mounted to a persistent volume claim. schema: type: string required: true default: "ixVolume" enum: - value: "hostPath" description: Host Path (Path that already exists on the system) - value: "ixVolume" description: ixVolume (Dataset created automatically by the system) - value: "smb-pv-pvc" description: SMB Share (Mounts a persistent volume claim to a SMB share) - variable: readOnly label: Read Only description: Mount the volume as read only. schema: type: boolean default: false - variable: mountPath label: Mount Path description: The path inside the container to mount the storage. schema: type: path required: true - variable: hostPathConfig label: Host Path Configuration schema: type: dict show_if: [["type", "=", "hostPath"]] attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: acl label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] $ref: - "normalize/acl" - variable: hostPath label: Host Path description: The host path to use for storage. schema: type: hostpath show_if: [["aclEnable", "=", false]] required: true - variable: ixVolumeConfig label: ixVolume Configuration description: The configuration for the ixVolume dataset. schema: type: dict show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" attrs: - variable: aclEnable label: Enable ACL description: Enable ACL for the dataset. schema: type: boolean default: false - variable: datasetName label: Dataset Name description: The name of the dataset to use for storage. schema: type: string required: true immutable: true default: "storage_entry" - variable: aclEntries label: ACL Configuration schema: type: dict show_if: [["aclEnable", "=", true]] attrs: [] - variable: smbConfig label: SMB Share Configuration description: The configuration for the SMB Share. schema: type: dict show_if: [["type", "=", "smb-pv-pvc"]] attrs: - variable: server label: Server description: The server for the SMB share. schema: type: string required: true - variable: share label: Share description: The share name for the SMB share. schema: type: string required: true - variable: domain label: Domain (Optional) description: The domain for the SMB share. schema: type: string - variable: username label: Username description: The username for the SMB share. schema: type: string required: true - variable: password label: Password description: The password for the SMB share. schema: type: string required: true private: true - variable: size label: Size (in Gi) description: The size of the volume quota. schema: type: int required: true min: 1 default: 1 - variable: resources group: Resources Configuration label: "" schema: type: dict attrs: - variable: limits label: Limits schema: type: dict attrs: - variable: cpu label: CPU description: CPU limit for WG-Easy. schema: type: string max_length: 6 valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' valid_chars_error: | Valid CPU limit formats are
- Plain Integer - eg. 1
- Float - eg. 0.5
- Milicpu - eg. 500m default: "4000m" required: true - variable: memory label: Memory description: Memory limit for WG-Easy. schema: type: string max_length: 12 valid_chars: "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$" valid_chars_error: | Valid Memory limit formats are
- Suffixed with E/P/T/G/M/K - eg. 1G
- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
- Plain Integer in bytes - eg. 1024
- Exponent - eg. 134e6 default: "8Gi" required: true