first version of working infra

This commit is contained in:
2025-04-16 22:27:13 +02:00
parent a115cd67c8
commit a015576d52
15 changed files with 186 additions and 48 deletions
-14
View File
@@ -1,14 +0,0 @@
[Unit]
Description=Docker
[Container]
Image=docker.io/postgres:alpine
Pod=synapse.pod
Volume=postgres.volume:/var/lib/postgresql/data
Environment=POSTGRES_USER=synapse
Environment=POSTGRES_PASSWORD=changeme
Environment=POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
Network=synapse.network
[Service]
Restart=always
+3
View File
@@ -0,0 +1,3 @@
[Kube]
Yaml=postgres.yml
Network=synapse.network
-1
View File
@@ -1 +0,0 @@
[Volume]
+38
View File
@@ -0,0 +1,38 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-data
labels:
app: postgres
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: Pod
metadata:
name: postgres
spec:
containers:
- name: postgres
image: docker.io/postgres:17-alpine
volumeMounts:
- name: postgres-data-pvc
mountPath: /var/lib/postgresql/data
env:
- name: POSTGRES_PASSWORD
value: changeme
- name: POSTGRES_USER
value: synapse
- name: POSTGRES_DB
value: synapse
- name: POSTGRES_INITDB_ARGS
value: --encoding=UTF8 --locale=C
volumes:
- name: postgres-data-pvc
persistentVolumeClaim:
claimName: postgres-data
+34
View File
@@ -0,0 +1,34 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: synapse-config
data:
homeserver.yaml: |
server_name: "test.legonzaur.fr"
pid_file: /data/homeserver.pid
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
resources:
- names: [client, federation]
compress: false
database:
name: psycopg2
args:
user: synapse
password: changeme
dbname: synapse
host: postgres
cp_min: 5
cp_max: 10
log_config: "/data/test.legonzaur.fr.log.config"
media_store_path: /data/media_store
registration_shared_secret: "8bn6seIG;1#0p9d~Y~d17*~mehlG-@DDJ~W8Yg9r4B,77*D;Uy"
report_stats: true
macaroon_secret_key: "@.fx9y+rL_JSE0;7PPYrBuI&,sa;mXHLeFywLgWlDSg;3faNCx"
form_secret: "qu6DRGb.1H*Pe:tE4r+E~ZvND.UKiIusz~TwOMz,TLVUpX#9vi"
signing_key_path: "/data/test.legonzaur.fr.signing.key"
trusted_key_servers:
- server_name: "matrix.org"
-1
View File
@@ -1 +0,0 @@
[Volume]
-13
View File
@@ -1,13 +0,0 @@
[Unit]
Description=Synapse init container
[Container]
Image=docker.io/matrixdotorg/synapse:latest
Pod=synapse.pod
Volume=synapse-data.volume:/data
Environment=SYNAPSE_SERVER_NAME=test.legonzaur.fr
Environment=SYNAPSE_REPORT_STATS=no
Exec=generate
[Service]
Type=oneshot
-1
View File
@@ -1 +0,0 @@
[Volume]
-1
View File
@@ -1 +0,0 @@
[Volume]
-15
View File
@@ -1,15 +0,0 @@
[Unit]
Description=Synapse
[Container]
Image=docker.io/matrixdotorg/synapse:latest
Pod=synapse.pod
Volume=synapse-data.volume:/data
Volume=synapse-uploads.volume:/data/uploads
Volume=synapse-media.volume:/data/media
Environment=SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
Network=synapse.network
PublishPort=8008:8008
[Service]
Restart=always
+14
View File
@@ -0,0 +1,14 @@
[Unit]
Requires=postgres.service
After=postgres.service
[Kube]
Yaml=synapse.yml
Network=synapse.network
PublishPort=8008:8008
ConfigMap=synapse-configmap.yml
[Install]
WantedBy=default.target
+1 -1
View File
@@ -1 +1 @@
[Network]
[Network]
-1
View File
@@ -1 +0,0 @@
[Pod]
+86
View File
@@ -0,0 +1,86 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: synapse-media
labels:
app: synapse
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: synapse-uploads
labels:
app: synapse
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: synapse-data
labels:
app: synapse
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: Pod
metadata:
name: synapse
spec:
initContainers:
- name: synapse-init
image: docker.io/matrixdotorg/synapse:latest
args: ["generate"]
volumeMounts:
- name: synapse-data-pvc
mountPath: /data
env:
- name: SYNAPSE_SERVER_NAME
value: test.legonzaur.fr
- name: SYNAPSE_REPORT_STATS
value: no
containers:
- name: synapse
image: docker.io/matrixdotorg/synapse:latest
volumeMounts:
- name: synapse-data-pvc
mountPath: /data
- name: synapse-uploads-pvc
mountPath: /data/uploads
- name: synapse-media-pvc
mountPath: /data/media
- name: synapse-config
readOnly: true
mountPath: /data/homeserver.yaml
subPath: homeserver.yaml
volumes:
- name: synapse-config
configMap:
name: synapse-config
- name: synapse-data-pvc
persistentVolumeClaim:
claimName: synapse-data
- name: synapse-uploads-pvc
persistentVolumeClaim:
claimName: synapse-uploads
- name: synapse-media-pvc
persistentVolumeClaim:
claimName: synapse-media
+10
View File
@@ -0,0 +1,10 @@
[Unit]
Description=A kubernetes yaml based service
Before=local-fs.target
[Kube]
Yaml=/home/legonzaur/.config/containers/systemd/synapse.kube
[Install]
# Start by default on boot
WantedBy=multi-user.target default.target