apiVersion: apps/v1 kind: Deployment metadata: name: pixelfed namespace: {{ .namespace }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: component: web template: metadata: labels: component: web spec: securityContext: runAsNonRoot: true runAsUser: 33 runAsGroup: 33 fsGroup: 33 seccompProfile: type: RuntimeDefault containers: - name: pixelfed image: ghcr.io/mattlqx/docker-pixelfed:v0.12.7-nginx ports: - name: http containerPort: 80 protocol: TCP env: - name: APP_NAME value: Pixelfed - name: APP_ENV value: production - name: APP_DEBUG value: "false" - name: APP_PORT value: "80" - name: APP_URL value: https://{{ .domain }} - name: APP_DOMAIN value: {{ .domain }} - name: ADMIN_DOMAIN value: {{ .domain }} - name: SESSION_DOMAIN value: {{ .domain }} - name: APP_KEY valueFrom: secretKeyRef: name: pixelfed-secrets key: appKey - name: DB_CONNECTION value: pgsql - name: DB_HOST value: {{ .db.host }} - name: DB_PORT value: "{{ .db.port }}" - name: DB_DATABASE value: {{ .db.name }} - name: DB_USERNAME value: {{ .db.user }} - name: DB_PASSWORD valueFrom: secretKeyRef: name: pixelfed-secrets key: dbPassword - name: REDIS_CLIENT value: predis - name: REDIS_HOST value: {{ .redis.host }} - name: REDIS_PORT value: "6379" - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: pixelfed-secrets key: redis.password - name: CACHE_DRIVER value: redis - name: SESSION_DRIVER value: redis - name: QUEUE_DRIVER value: redis - name: MAIL_MAILER value: smtp - name: MAIL_HOST value: {{ .smtp.host }} - name: MAIL_PORT value: "{{ .smtp.port }}" - name: MAIL_USERNAME value: {{ .smtp.user }} - name: MAIL_PASSWORD valueFrom: secretKeyRef: name: pixelfed-secrets key: smtpPassword - name: MAIL_FROM_ADDRESS value: {{ .smtp.from }} - name: MAIL_ENCRYPTION value: tls - name: ACTIVITY_PUB value: "1" - name: AP_REMOTE_FOLLOW value: "1" - name: AP_INBOX value: "1" - name: AP_OUTBOX value: "1" - name: AP_SHAREDINBOX value: "1" - name: OAUTH_ENABLED value: "true" - name: OPEN_REGISTRATION value: "true" - name: FORCE_HTTPS value: "true" - name: PHP_POST_MAX_SIZE value: 500M - name: PHP_UPLOAD_MAX_FILE_SIZE value: 500M resources: limits: cpu: "1" ephemeral-storage: 1Gi memory: 1Gi requests: cpu: 50m ephemeral-storage: 50Mi memory: 256Mi volumeMounts: - name: pixelfed-storage mountPath: /var/www/html/storage livenessProbe: httpGet: path: /api/v1/instance port: 80 initialDelaySeconds: 120 timeoutSeconds: 10 periodSeconds: 30 failureThreshold: 6 readinessProbe: httpGet: path: /api/v1/instance port: 80 initialDelaySeconds: 60 timeoutSeconds: 5 periodSeconds: 15 failureThreshold: 3 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false volumes: - name: pixelfed-storage persistentVolumeClaim: claimName: pixelfed-storage restartPolicy: Always