Skip to content

Mint System Nextcloud

This Helm chart deploys Nextcloud with PostgreSQL.

This chart is a wrapper for the official Nextcloud chart: https://github.com/nextcloud/helm/blob/main/charts/nextcloud/README.md#configuration

Secrets

Setup a nextcloud-creds secret with any additional environment variables you want to pass to Nextcloud.

bash
kubectl create secret generic nextcloud-creds \
    --from-literal=nextcloud-username="$nextcloud_admin_user" \
    --from-literal=nextcloud-password="$nextcloud_admin_password" \
    --from-literal=smtp-host="$smtp_host" \
    --from-literal=smtp-username="$smtp_username" \
    --from-literal=smtp-password="$smtp_password" \
    -n $namespace

The K8up backup requires a s3-credentials and a backup-repo secret. Here is an example for Exoscale SOS:

bash
kubectl create secret generic s3-credentials \
    --from-literal=username="$exoscale_iam_key" \
    --from-literal=password="$exoscale_iam_secret" \
    -n $namespace

Parameters

Ingress parameters

NameDescriptionValue
ingress.enabledEnable or disable the ingresstrue
ingress.classNameThe class name for the ingress""
ingress.clusterIssuerRefThe cluster issuer reference for the ingressnil
ingress.hostThe host for the ingress""

Nextcloud parameters

NameDescriptionValue
nextcloud.enabledEnable or disable Nextcloudtrue
nextcloud.ingress.enabledEnable or disable the Nextcloud subchart ingressfalse
nextcloud.nextcloud.hostThe host for Nextcloud and Ingress""
nextcloud.nextcloud.existingSecret.enabledUse an existing secret for credentialstrue
nextcloud.nextcloud.existingSecret.enabledEnable or disable using an existing secrettrue
nextcloud.nextcloud.existingSecret.secretNameName of the existing Kubernetes secretnextcloud-creds
nextcloud.nextcloud.mail.enabledWhether to enable/disable email settingstrue
nextcloud.persistence.enabledEnable persistence using PVCtrue
nextcloud.phpClientHttpsFix.enabledFix HTTPS protocol detection behind reverse proxytrue
nextcloud.internalDatabase.enabledEnable or disable the internal SQLite databasefalse
nextcloud.redis.enabledEnable or disable the bitnami Redis subchartfalse
nextcloud.redis.auth.enabledEnable or disable Redis authenticationfalse
nextcloud.externalRedis.enabledEnable or disable external Redistrue
nextcloud.externalRedis.hostHostname or service name of the external Redisnextcloud-redis
nextcloud.externalDatabase.enabledEnable or disable external database usagetrue
nextcloud.externalDatabase.typeType of external database (e.g., postgresql, mysql)postgresql
nextcloud.externalDatabase.hostHostname or service name of the external databasenextcloud-postgresql-rw
nextcloud.externalDatabase.databaseName of the database to usenextcloud
nextcloud.externalDatabase.existingSecret.enabledEnable or disable using an existing secret for database credentialstrue
nextcloud.externalDatabase.existingSecret.secretNameName of the existing Kubernetes secretnextcloud-postgresql-app
nextcloud.externalDatabase.existingSecret.usernameKeyKey in the secret containing the database usernameusername
nextcloud.externalDatabase.existingSecret.passwordKeyKey in the secret containing the database passwordpassword

Redis parameters

NameDescriptionValue
redis.enabledEnable or disable Redistrue
redis.imageThe image for Redisredis:alpine

CloudNativePG parameters

NameDescriptionValue
cnpg.enabledEnable or disable CloudNativePGtrue
cnpg.instancesNumber of instances (1 for single, 2+ for high availability)1
cnpg.imageNamePostgreSQL image to useghcr.io/cloudnative-pg/postgresql:16.0
cnpg.storage.sizePersistent volume size for each instance8Gi
cnpg.databaseName of the CloudNativePG database to createnextcloud
cnpg.ownerName of the database userapp

K8up parameters

NameDescriptionValue
k8up.enabledEnable or disable K8upfalse
k8up.endpointS3 endpoint""
k8up.bucketS3 bucket name""

Troubleshooting

The config.php is not updated

Problem

The config.php of Nextcloud is not updated with new env values.

Solution

Delete the config.php file and the pods.

bash
kubectl exec <pod> -- rm /var/www/html/config/config.php
kubectl delete pod <pod>