apiVersion: apps/v1 kind: Deployment metadata: labels: app: peertube name: peertube spec: replicas: 1 selector: matchLabels: app: peertube strategy: type: Recreate template: metadata: labels: app: peertube spec: containers: - env: - name: PEERTUBE_WEBSERVER_HOSTNAME value: "toucan.mynest.love" - name: PEERTUBE_WEBSERVER_PORT value: "443" - name: PEERTUBE_WEBSERVER_HTTPS value: "true" - name: PEERTUBE_SECRET valueFrom: secretKeyRef: name: peertube-secret key: PEERTUBE_SECRET - name: PEERTUBE_ADMIN_EMAIL valueFrom: secretKeyRef: name: peertube-secret key: PEERTUBE_ADMIN_EMAIL - name: PEERTUBE_DB_HOSTNAME value: "peertube-db" - name: PEERTUBE_DB_PORT value: "5432" - name: PEERTUBE_DB_USERNAME valueFrom: secretKeyRef: name: peertube-secret key: POSTGRES_USER - name: PEERTUBE_DB_PASSWORD valueFrom: secretKeyRef: name: peertube-secret key: POSTGRES_PASSWORD - name: PEERTUBE_REDIS_HOSTNAME value: "peertube-redis" - name: PEERTUBE_REDIS_PORT value: "6379" image: chocobozzz/peertube:production-bookworm name: peertube ports: - containerPort: 9000 protocol: TCP name: web-ui - containerPort: 1935 protocol: TCP name: rtmp-live volumeMounts: - mountPath: /config name: config-volume - mountPath: /data name: data-volume restartPolicy: Always volumes: - name: config-volume persistentVolumeClaim: claimName: peertube-config-pvc - name: data-volume persistentVolumeClaim: claimName: peertube-data-pvc --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: peertube-db name: peertube-db spec: replicas: 1 selector: matchLabels: app: peertube-db strategy: type: Recreate template: metadata: labels: app: peertube-db spec: containers: - env: - name: POSTGRES_DB value: "peertube" - name: POSTGRES_USER valueFrom: secretKeyRef: name: peertube-secret key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: peertube-secret key: POSTGRES_PASSWORD image: postgres:15-alpine name: postgres ports: - containerPort: 5432 protocol: TCP name: tcp-postgres volumeMounts: - mountPath: /var/lib/postgresql/data name: db-volume subPath: peertube-data restartPolicy: Always volumes: - name: db-volume persistentVolumeClaim: claimName: peertube-db-pvc --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: peertube-redis name: peertube-redis spec: replicas: 1 selector: matchLabels: app: peertube-redis strategy: type: Recreate template: metadata: labels: app: peertube-redis spec: containers: - image: redis:7-alpine name: redis ports: - containerPort: 6379 protocol: TCP name: tcp-redis restartPolicy: Always