Files
Kubernetes-Build/nextcloud
Janik von Rotz 3d03a93ed1 feat(nextcloud): standardize resource naming and enhance configurability
- Prefix all object names with `{{ .Release.Name }}-` as per AGENTS.md guidelines
- Rename persistent volume claims to follow `data-$CHART_NAME` pattern
- Update backup configuration to use generic secret and backup names
- Add troubleshooting section for config.php updates in README
- Improve domain configuration in ConfigMap to support custom domains
- Parameterize storage size in values.yaml with default set to 40Gi
- Disable collabora by default and adjust related configurations
- Align postgres deployment with new naming conventions
- Remove outdated job template for occ commands
- Update documentation examples with dynamic password generation
2025-11-12 12:56:20 +01:00
..

Mint System Nextcloud

This Helm chart deploys Nextcloud with PostgreSQL.

Secrets

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

NEXTCLOUD_ADMIN_USER="admin"
NEXTCLOUD_ADMIN_PASSWORD="*******"
kubectl create secret generic nextcloud-creds \
    --from-literal=NEXTCLOUD_ADMIN_USER="$NEXTCLOUD_ADMIN_USER" \
    --from-literal=NEXTCLOUD_ADMIN_PASSWORD="$NEXTCLOUD_ADMIN_PASSWORD" \
    -n <namespace>

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

EXOSCALE_IAM_KEY="*******"
EXOSCALE_IAM_SECRET="*******"
kubectl create secret generic s3-credentials \
    --from-literal=username="$EXOSCALE_IAM_KEY" \
    --from-literal=password="$EXOSCALE_IAM_SECRET" \
    -n <namespace>
BACKUP_REPO_PASSWORD=$(pwgen -c 20 1)
kubectl create secret generic backup-repo \
    --from-literal=password="$BACKUP_REPO_PASSWORD" \
    -n <namespace>

Parameters

Ingress parameters

Name Description Value
ingress.enabled Enable or disable the ingress true
ingress.className The class name for the ingress nginx
ingress.clusterIssuerRef The cluster issuer reference for the ingress ""
ingress.host The host for the ingress ""
ingress.customDomain The custom domain for the ingress ""

CloudNativePG parameters

Name Description Value
cnpg.enabled Enable or disable CloudNativePG true
cnpg.nameOverride Override the name of the CloudNativePG cluster ""
cnpg.instances Number of instances (1 for single, 2+ for high availability) 1
cnpg.imageName PostgreSQL image to use ghcr.io/cloudnative-pg/postgresql:16.0
cnpg.storage.size Persistent volume size for each instance 8Gi
cnpg.database Name of the CloudNativePG database to create nextcloud
cnpg.owner Name of the database user app

Nextcloud parameters

Name Description Value
image The image for Nextcloud ""
imagePullPolicy Pull policy for Nextcloud image Always
storageClassName Set the storage class ""

K8up parameters

Name Description Value
k8up.enabled Enable or disable K8up false
k8up.endpoint S3 endpoint ""
k8up.bucket S3 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.

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