apiVersion: apps/v1 kind: Deployment metadata: name: snappymail labels: app: snappymail spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: snappymail template: metadata: labels: app: snappymail spec: initContainers: - name: config-init image: busybox:latest command: - sh - -c - | # Create config directory if it doesn't exist mkdir -p /data/_data_/_default_/configs # Copy application.ini if it doesn't exist if [ ! -f /data/_data_/_default_/configs/application.ini ]; then echo "Copying application.ini configuration..." cp /config/application.ini /data/_data_/_default_/configs/application.ini else echo "application.ini already exists, skipping..." fi # Copy domains.ini if it doesn't exist if [ ! -f /data/_data_/_default_/configs/domains.ini ]; then echo "Copying domains.ini configuration..." cp /config/domains.ini /data/_data_/_default_/configs/domains.ini else echo "domains.ini already exists, skipping..." fi echo "Configuration initialization complete" volumeMounts: - name: snappymail-data mountPath: /data - name: config mountPath: /config containers: - name: snappymail image: djmaze/snappymail:latest ports: - containerPort: 8888 protocol: TCP env: - name: TZ value: Europe/Amsterdam volumeMounts: - name: snappymail-data mountPath: /var/lib/snappymail livenessProbe: httpGet: path: / port: 8888 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: / port: 8888 initialDelaySeconds: 10 periodSeconds: 5 resources: requests: memory: "128Mi" cpu: "100m" limits: memory: "512Mi" cpu: "500m" volumes: - name: snappymail-data persistentVolumeClaim: claimName: snappymail-data - name: config configMap: name: snappymail-config