# dokuwiki A Helm chart for DokuWiki, a simple to use and highly versatile wiki software. ## TL;DR ```bash helm install dokuwiki oci://git.roboces.dev/catalin/fukuops/dokuwiki --version 1.0.2 -n apps-roboces ``` ## Prerequisites - Kubernetes 1.19+ - Helm 3+ - A NFS storage class (default: `truenas-nfs-csi`) ## Configuration All values are nested under the `dokuwiki:` key. Example: ```yaml dokuwiki: persistence: enabled: true storageClass: "truenas-nfs-csi" accessMode: ReadWriteMany size: 2Gi service: type: LoadBalancer port: 8004 ingress: enabled: true hosts: - host: wiki.roboces.dev paths: - path: / pathType: Prefix config: php: timezone: Europe/Madrid memoryLimit: 512M uploadLimit: 128M ``` ## Values Reference | Key | Type | Default | Description | |-----|------|---------|-------------| | `dokuwiki.replicaCount` | int | `1` | Number of replicas | | `dokuwiki.image.repository` | string | `dokuwiki/dokuwiki` | Image repository | | `dokuwiki.image.pullpolicy` | string | `IfNotPresent` | Image pull policy | | `dokuwiki.image.tag` | string | `.Chart.AppVersion` | Image tag | | `dokuwiki.service.type` | string | `LoadBalancer` | Service type | | `dokuwiki.service.port` | int | `8004` | Service port | | `dokuwiki.service.targetPort` | int | `8080` | Container port | | `dokuwiki.ingress.enabled` | bool | `true` | Enable ingress | | `dokuwiki.ingress.className` | string | `""` | Ingress class | | `dokuwiki.ingress.hosts[0].host` | string | `wiki.roboces.dev` | Ingress hostname | | `dokuwiki.persistence.enabled` | bool | `true` | Enable persistence | | `dokuwiki.persistence.storageClass` | string | `truenas-nfs-csi` | Storage class | | `dokuwiki.persistence.accessMode` | string | `ReadWriteMany` | Access mode | | `dokuwiki.persistence.size` | string | `2Gi` | PVC size | | `dokuwiki.config.php.timezone` | string | `Europe/Madrid` | PHP timezone | | `dokuwiki.config.php.memoryLimit` | string | `512M` | PHP memory limit | | `dokuwiki.config.php.uploadLimit` | string | `128M` | PHP upload limit | | `dokuwiki.debug.enabled` | bool | `false` | Enable debug mode (adds init container for troubleshooting) | | `dokuwiki.resources` | object | `{}` | Container resources | | `dokuwiki.livenessProbe` | object | (see values.yaml) | Liveness probe | | `dokuwiki.readinessProbe` | object | (see values.yaml) | Readiness probe | ## ConfigMap The chart creates a ConfigMap with PHP environment variables: - `PHP_TIMEZONE` - `PHP_MEMORYLIMIT` - `PHP_UPLOADLIMIT` ## Persistence The chart creates a PVC named `dokuwiki-data`. The PVC uses the `truenas-nfs-csi` storage class by default with `ReadWriteMany` access mode. ## Troubleshooting ### Debug Mode Enable debug mode to troubleshoot issues by adding an init container with a shell: ```yaml dokuwiki: debug: enabled: true ``` This adds an `alpine:3.19` init container with `sleep infinity` that mounts all volumes and inherits env vars. You can exec into it to inspect the environment: ```bash kubectl exec -it -c debug -- sh ``` When debug mode is enabled, liveness and readiness probes are disabled to prevent restarts. ### Pod not starting ```bash kubectl get pvc -n apps-roboces -l app.kubernetes.io/name=dokuwiki ``` ### Check logs ```bash kubectl logs dokuwiki-0 -n apps-roboces ```