Files
wild-directory/bookwyrm/versions/0/deployment.yaml
Paul Payne 4d983819c9 feat(supabase): add services and statefulset for database management
feat(synapse): update ingress to use traefik ingress class and bump version

feat(syncthing-discovery): introduce syncthing discovery service with deployment and ingress

feat(syncthing-relay): add syncthing relay server with deployment and ingress configuration

fix(taiga): update liveness and readiness probes to use tcpSocket for health checks

fix(taiga): change PVC access mode to ReadWriteMany for media and static storage

feat(traefik): add icon and ignore rules for traefik service

docs(ushahidi): add notes for Redis configuration and Laravel startup probe adjustments

feat(ushahidi): implement dedicated Redis deployment for Ushahidi

fix(vllm): update deployment strategy and readiness/liveness probes for improved stability

fix(writefreely): pin writefreely image version to v0.15.1 for consistency

docs(zulip): add notes for TLS-terminating reverse proxy configuration and expected behavior
2026-07-02 21:34:27 +00:00

150 lines
4.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: bookwyrm
namespace: bookwyrm
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
component: web
template:
metadata:
labels:
component: web
spec:
securityContext:
runAsNonRoot: false
runAsUser: 0
seccompProfile:
type: RuntimeDefault
containers:
- name: bookwyrm
image: ghcr.io/bookwyrm-social/bookwyrm:v0.8.6
command: ["/bin/sh", "-c", "python manage.py compile_themes && python manage.py collectstatic --noinput && python manage.py migrate && exec gunicorn bookwyrm.wsgi:application"]
ports:
- name: http
containerPort: 8000
protocol: TCP
env:
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: bookwyrm-secrets
key: secretKey
- name: DEBUG
value: "false"
- name: DOMAIN
value: {{ .domain }}
- name: ALLOWED_HOSTS
value: {{ .domain }}
- name: EMAIL
value: {{ .smtp.from }}
- name: POSTGRES_HOST
value: {{ .db.host }}
- name: PGPORT
value: "{{ .db.port }}"
- name: POSTGRES_DB
value: {{ .db.name }}
- name: POSTGRES_USER
value: {{ .db.user }}
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: bookwyrm-secrets
key: dbPassword
- name: REDIS_ACTIVITY_HOST
value: {{ .redis.host }}
- name: REDIS_ACTIVITY_PORT
value: "6379"
- name: REDIS_ACTIVITY_PASSWORD
valueFrom:
secretKeyRef:
name: bookwyrm-secrets
key: redis.password
- name: REDIS_ACTIVITY_URL
value: redis://:$(REDIS_ACTIVITY_PASSWORD)@{{ .redis.host }}:6379/0
- name: REDIS_BROKER_HOST
value: {{ .redis.host }}
- name: REDIS_BROKER_PORT
value: "6379"
- name: REDIS_BROKER_PASSWORD
valueFrom:
secretKeyRef:
name: bookwyrm-secrets
key: redis.password
- name: REDIS_BROKER_URL
value: redis://:$(REDIS_BROKER_PASSWORD)@{{ .redis.host }}:6379/1
- name: EMAIL_HOST
value: {{ .smtp.host }}
- name: EMAIL_PORT
value: "{{ .smtp.port }}"
- name: EMAIL_HOST_USER
value: {{ .smtp.user }}
- name: EMAIL_HOST_PASSWORD
valueFrom:
secretKeyRef:
name: bookwyrm-secrets
key: smtpPassword
- name: EMAIL_USE_TLS
value: "true"
- name: EMAIL_USE_SSL
value: "false"
- name: EMAIL_SENDER_NAME
value: BookWyrm
- name: EMAIL_SENDER_DOMAIN
value: {{ .domain }}
- name: MEDIA_ROOT
value: /app/images
- name: STATIC_ROOT
value: /app/static
- name: ENABLE_THUMBNAIL_GENERATION
value: "true"
resources:
limits:
cpu: 1000m
ephemeral-storage: 2Gi
memory: 1Gi
requests:
cpu: 50m
ephemeral-storage: 50Mi
memory: 256Mi
volumeMounts:
- name: bookwyrm-images
mountPath: /app/images
- name: bookwyrm-static
mountPath: /app/static
- name: bookwyrm-exports
mountPath: /app/exports
livenessProbe:
tcpSocket:
port: 8000
initialDelaySeconds: 120
timeoutSeconds: 10
periodSeconds: 30
failureThreshold: 6
readinessProbe:
tcpSocket:
port: 8000
initialDelaySeconds: 60
timeoutSeconds: 5
periodSeconds: 15
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: false
volumes:
- name: bookwyrm-images
persistentVolumeClaim:
claimName: bookwyrm-images
- name: bookwyrm-static
emptyDir: {}
- name: bookwyrm-exports
emptyDir: {}
restartPolicy: Always