--- apiVersion: v1 kind: ConfigMap metadata: name: wavelog-config namespace: wavelog data: # PHP configuration overrides php.ini: | upload_max_filesize = 50M post_max_size = 50M memory_limit = 256M max_execution_time = 300 --- apiVersion: v1 kind: Service metadata: name: wavelog namespace: wavelog spec: type: ClusterIP selector: app: wavelog ports: - port: 80 targetPort: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: wavelog namespace: wavelog spec: replicas: 1 selector: matchLabels: app: wavelog template: metadata: labels: app: wavelog spec: initContainers: - name: fix-permissions image: busybox:latest command: ["sh", "-c"] args: - | echo "Fixing permissions for Wavelog directories..." # Create all required directories mkdir -p /var/www/html/application/config mkdir -p /var/www/html/application/logs mkdir -p /var/www/html/backup mkdir -p /var/www/html/updates mkdir -p /var/www/html/uploads mkdir -p /var/www/html/images/eqsl_card_images mkdir -p /var/www/html/assets/qslcard # Set ownership to www-data (UID 33) chown -R 33:33 /var/www/html/application/config chown -R 33:33 /var/www/html/application/logs chown -R 33:33 /var/www/html/backup chown -R 33:33 /var/www/html/updates chown -R 33:33 /var/www/html/uploads chown -R 33:33 /var/www/html/images/eqsl_card_images chown -R 33:33 /var/www/html/assets/qslcard # Set directory permissions find /var/www/html/application/config -type d -exec chmod 755 {} \; find /var/www/html/application/logs -type d -exec chmod 755 {} \; find /var/www/html/backup -type d -exec chmod 755 {} \; find /var/www/html/updates -type d -exec chmod 755 {} \; find /var/www/html/uploads -type d -exec chmod 755 {} \; find /var/www/html/images/eqsl_card_images -type d -exec chmod 755 {} \; find /var/www/html/assets/qslcard -type d -exec chmod 755 {} \; # Set file permissions find /var/www/html/application/config -type f -exec chmod 664 {} \; find /var/www/html/application/logs -type f -exec chmod 664 {} \; find /var/www/html/backup -type f -exec chmod 664 {} \; find /var/www/html/updates -type f -exec chmod 664 {} \; find /var/www/html/uploads -type f -exec chmod 664 {} \; find /var/www/html/images/eqsl_card_images -type f -exec chmod 664 {} \; find /var/www/html/assets/qslcard -type f -exec chmod 664 {} \; echo "Permissions fixed!" volumeMounts: - name: wavelog-data mountPath: /var/www/html/application/config subPath: config - name: wavelog-data mountPath: /var/www/html/application/logs subPath: logs - name: wavelog-data mountPath: /var/www/html/backup subPath: backup-root - name: wavelog-data mountPath: /var/www/html/updates subPath: updates - name: wavelog-data mountPath: /var/www/html/uploads subPath: uploads-root - name: wavelog-data mountPath: /var/www/html/images/eqsl_card_images subPath: eqsl_card_images - name: wavelog-data mountPath: /var/www/html/assets/qslcard subPath: qslcard containers: - name: wavelog image: ghcr.io/wavelog/wavelog:latest ports: - containerPort: 80 env: - name: MYSQL_HOST value: "mariadb.data.svc.cluster.local" - name: MYSQL_PORT value: "3306" - name: MYSQL_DATABASE value: "wavelog" - name: MYSQL_USER value: "wavelog" - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: wavelog-secret key: database-password volumeMounts: - name: wavelog-data mountPath: /var/www/html/application/config subPath: config - name: wavelog-data mountPath: /var/www/html/application/logs subPath: logs - name: wavelog-data mountPath: /var/www/html/backup subPath: backup-root - name: wavelog-data mountPath: /var/www/html/updates subPath: updates - name: wavelog-data mountPath: /var/www/html/uploads subPath: uploads-root - name: wavelog-data mountPath: /var/www/html/images/eqsl_card_images subPath: eqsl_card_images - name: wavelog-data mountPath: /var/www/html/assets/qslcard subPath: qslcard - name: php-config mountPath: /usr/local/etc/php/conf.d/custom.ini subPath: php.ini livenessProbe: tcpSocket: port: 80 initialDelaySeconds: 30 periodSeconds: 30 readinessProbe: tcpSocket: port: 80 initialDelaySeconds: 10 periodSeconds: 10 resources: requests: memory: "256Mi" cpu: "200m" limits: memory: "512Mi" cpu: "500m" volumes: - name: wavelog-data persistentVolumeClaim: claimName: wavelog-data - name: php-config configMap: name: wavelog-config