# Synapse — Matrix homeserver # PostgreSQL backend via cluster DNS: postgres # Unpinned — scheduler places freely, local-path PVC # NodePort 32385 # # Deploy: # kubectl create secret generic synapse-secret \ # --namespace \ # --from-literal=db-password='' # kubectl apply -f synapse-db-init.yaml -n # kubectl get jobs -n -w # wait for completion # kubectl apply -f synapse.yaml -n # # First boot generates /data/homeserver.yaml automatically. # After first boot, exec into the pod and update homeserver.yaml # to add the PostgreSQL database config (replaces default SQLite): # # database: # name: psycopg2 # args: # user: synapse_user # password: # database: synapse_db # host: postgres # cp_min: 5 # cp_max: 10 # # Then restart the deployment: # kubectl rollout restart deployment/synapse -n # # Set SYNAPSE_SERVER_NAME to the actual Matrix domain before deploying. --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: synapse-pvc spec: accessModes: - ReadWriteOnce storageClassName: local-path resources: requests: storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: synapse spec: replicas: 1 selector: matchLabels: app: synapse template: metadata: labels: app: synapse spec: containers: - name: synapse image: matrixdotorg/synapse:latest env: - name: SYNAPSE_SERVER_NAME value: "matrix.sjasoft.com" - name: SYNAPSE_REPORT_STATS value: "no" ports: - containerPort: 8008 volumeMounts: - name: synapse-data mountPath: /data volumes: - name: synapse-data persistentVolumeClaim: claimName: synapse-pvc --- apiVersion: v1 kind: Service metadata: name: synapse spec: selector: app: synapse ports: - port: 8008 targetPort: 8008 nodePort: 32385 type: NodePort