k3s/services/matrix/matrix-synapse.yaml
2026-06-22 18:48:26 -04:00

109 lines
2.9 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: synapse-config-tmpl
namespace: matrix
data:
homeserver.yaml: |
server_name: "starling.mynest.love"
public_baseurl: "https://starling.mynest.love"
media_store_path: "/data/media_store"
uploads_path: "/data/uploads"
serve_server_wellknown: true
serve_client_wellknown: true
extra_well_known_client_content:
"org.matrix.msc4143.rtc_foci":
- type: livekit
livekit_service_url: "https://matrix-rtc.mynest.love"
matrix_rtc:
transports:
- type: livekit
livekit_service_url: "https://matrix-rtc.mynest.love"
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
resources:
- names: [client, federation]
compress: false
database:
name: psycopg2
args:
user: "${POSTGRES_USER}"
password: "${POSTGRES_PASSWORD}"
database: "synapse"
host: "postgres-svc"
cp_min: 5
cp_max: 10
experimental_features:
msc4140_enabled: true
msc4143_enabled: true
msc4222_enabled: true
msc3861:
enabled: true
issuer: "https://mas.mynest.love/"
client_id: "0000000000000000000SYNAPSE"
client_auth_method: client_secret_basic
client_secret: "${MAS_SYNAPSE_CLIENT_SECRET}"
admin_token: "${MAS_SYNAPSE_ADMIN_SECRET}"
macaroon_secret_key: "${SYNAPSE_MACAROON_KEY}"
form_secret: "${SYNAPSE_REGISTRATION_SECRET}"
registration_shared_secret: "${SYNAPSE_REGISTRATION_SECRET}"
enable_registration: false
report_stats: false
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: synapse
namespace: matrix
spec:
replicas: 1
selector:
matchLabels:
app: synapse
template:
metadata:
labels:
app: synapse
spec:
initContainers:
- name: generate-config
image: alpine:latest
command: ["/bin/sh", "-c", "apk add gettext && envsubst < /tmpl/homeserver.yaml > /data/homeserver.yaml && chown -R 991:991 /data"]
envFrom:
- secretRef:
name: matrix-secrets
volumeMounts:
- name: config-tmpl
mountPath: /tmpl/homeserver.yaml
subPath: homeserver.yaml
- name: synapse-data
mountPath: /data
containers:
- name: synapse
image: matrixdotorg/synapse:latest
ports:
- containerPort: 8008
env:
- name: SYNAPSE_CONFIG_PATH
value: "/data/homeserver.yaml"
volumeMounts:
- name: synapse-data
mountPath: /data
volumes:
- name: synapse-data
persistentVolumeClaim:
claimName: synapse-data
- name: config-tmpl
configMap:
name: synapse-config-tmpl