fix: finish VereinsChat->TalkTime rename in synapse docs, harden defaults

- Fixed leftover chat.vereinschat.local defaults in docker-compose.yml and
  homeserver.yaml.sample that the earlier bulk rename missed (placeholders
  weren't plain "VereinsChat" text)
- Generalized example prod domain from chat.verein.de to chat.example.org
- Disabled federation by default in homeserver.yaml.sample (client-only
  resources, empty federation_domain_whitelist) since TalkTime runs a
  private homeserver per deployment, not a public Matrix participant
- Added concrete nginx TLS reverse-proxy config and a federation-enable
  note to the Synapse README instead of a stale "see deployment.md" pointer

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TBf3yfnnHzMQ5qhLV2285A
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-09-11 15:34:25 +02:00
1 parent b5ac041c32
commit 51426a944c
3 files changed
+37 -15

No files matched your search

+27 -7
View File
@@ -12,7 +12,7 @@ Für volle Kontrolle (kein extra nginx/Element, schlankeres Setup) weiter mit Op
## Voraussetzungen (beide Varianten)
- Eine Domain oder lokaler Hostname (z. B. `chat.vereinschat.local` für Dev, `chat.verein.de` für Prod) — das ist `SYNAPSE_SERVER_NAME`, später Teil jeder Matrix-ID, danach nicht mehr änderbar ohne Neuaufsetzen
- Eine Domain oder lokaler Hostname (z. B. `chat.talktime.local` für Dev, `chat.example.org` für Prod) — das ist `SYNAPSE_SERVER_NAME`, später Teil jeder Matrix-ID, danach nicht mehr änderbar ohne Neuaufsetzen
- PostgreSQL 13+ (SQLite reicht nur für allerkleinste Tests, nicht produktiv)
---
@@ -29,15 +29,15 @@ mkdir -p synapse/data
### 2. docker-compose.yml
Liegt bereits als [`docker-compose.yml`](docker-compose.yml) in diesem Ordner. Server-Name und DB-Passwort per `.env` neben der Datei überschreiben (sonst greifen die Defaults `chat.vereinschat.local` / `changeme`):
Liegt bereits als [`docker-compose.yml`](docker-compose.yml) in diesem Ordner. Server-Name und DB-Passwort per `.env` neben der Datei überschreiben (sonst greifen die Defaults `chat.talktime.local` / `changeme`):
```bash
# synapse/.env (nicht committen)
SYNAPSE_SERVER_NAME=chat.verein.de
SYNAPSE_SERVER_NAME=chat.example.org
SYNAPSE_DB_PASSWORD=<starkes-passwort>
```
`SYNAPSE_SERVER_NAME` ist der Homeserver-Name — später Teil jeder Matrix-ID (`@user:chat.verein.de`). Danach nicht mehr änderbar, ohne den Server neu aufzusetzen.
`SYNAPSE_SERVER_NAME` ist der Homeserver-Name — später Teil jeder Matrix-ID (`@user:chat.example.org`). Danach nicht mehr änderbar, ohne den Server neu aufzusetzen.
### 3. Konfiguration generieren
@@ -57,7 +57,7 @@ cp homeserver.yaml.sample data/homeserver.yaml
```
Danach in `data/homeserver.yaml` die Platzhalter `<...>` ersetzen:
- `server_name` / Pfade zur `.signing.key` — Name aus Schritt 3 (Standard: `chat.vereinschat.local`)
- `server_name` / Pfade zur `.signing.key` — Name aus Schritt 3 (Standard: `chat.talktime.local`)
- `database.args.password` — dasselbe Passwort wie `SYNAPSE_DB_PASSWORD`
- `registration_shared_secret`, `macaroon_secret_key`, `form_secret` — je ein langer Zufalls-String (`openssl rand -hex 32`)
@@ -128,7 +128,7 @@ python3 -m venv /opt/synapse/venv
```bash
cd /opt/synapse
./venv/bin/python -m synapse.app.homeserver \
--server-name=chat.vereinschat.local \
--server-name=chat.talktime.local \
--config-path=homeserver.yaml \
--generate-config \
--report-stats=no
@@ -196,7 +196,27 @@ SYNAPSE_ADMIN_TOKEN=<access_token aus Admin-Setup>
### Reverse Proxy + TLS (Produktion)
Für Produktivbetrieb Synapse hinter nginx mit TLS terminieren (Port 8008 nicht direkt exponieren). Beispiel-nginx-Config und nötige `.well-known`-Delegation folgen in `docs/deployment.md`, sobald das Gesamt-Deployment steht.
Für Produktivbetrieb Synapse hinter nginx mit TLS terminieren (Port 8008 nicht direkt exponieren). `homeserver.yaml.sample` deaktiviert Föderation standardmäßig (`resources: [client]`, `federation_domain_whitelist: []`) — TalkTime betreibt einen privaten Homeserver, kein öffentliches Matrix-Netz-Mitglied:
```nginx
server {
listen 443 ssl;
server_name chat.example.org;
ssl_certificate /etc/letsencrypt/live/chat.example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.example.org/privkey.pem;
location ~ ^(/_matrix|/_synapse/client) {
proxy_pass http://127.0.0.1:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
client_max_body_size 50M;
}
}
```
**Föderation aktivieren** (nur falls mit anderen Matrix-Homeservern föderiert werden soll): in `homeserver.yaml` `resources.names` um `federation` ergänzen und `federation_domain_whitelist` entfernen, zusätzlich Port 8448 (TLS, gleiches Proxy-Ziel wie oben) freischalten und `.well-known/matrix/server` unter `https://chat.example.org/.well-known/matrix/server` mit `{"m.server": "chat.example.org:443"}` bereitstellen.
## Troubleshooting
+1 -1
View File
@@ -16,7 +16,7 @@ services:
depends_on:
- synapse-db
environment:
SYNAPSE_SERVER_NAME: ${SYNAPSE_SERVER_NAME:-chat.vereinschat.local}
SYNAPSE_SERVER_NAME: ${SYNAPSE_SERVER_NAME:-chat.talktime.local}
SYNAPSE_REPORT_STATS: "no"
volumes:
- ./data:/data
+9 -7
View File
@@ -8,10 +8,13 @@
#
# NIE mit echten Secrets committen — nur diese .sample-Datei liegt im Repo.
server_name: "<chat.vereinschat.local>"
server_name: "<chat.talktime.local>"
pid_file: /data/homeserver.pid
signing_key_path: "/data/<chat.vereinschat.local>.signing.key"
signing_key_path: "/data/<chat.talktime.local>.signing.key"
# Standard: keine Föderation mit dem öffentlichen Matrix-Netz — TalkTime betreibt
# einen privaten Homeserver pro Deployment. Für Föderation "federation" wieder in
# resources.names aufnehmen und trusted_key_servers/well-known einrichten (siehe README).
listeners:
- port: 8008
tls: false
@@ -19,9 +22,11 @@ listeners:
x_forwarded: true
bind_addresses: ['0.0.0.0']
resources:
- names: [client, federation]
- names: [client]
compress: false
federation_domain_whitelist: []
database:
name: psycopg2
args:
@@ -33,7 +38,7 @@ database:
cp_min: 5
cp_max: 10
log_config: "/data/<chat.vereinschat.local>.log.config"
log_config: "/data/<chat.talktime.local>.log.config"
media_store_path: /data/media_store
max_upload_size: 50M
@@ -45,6 +50,3 @@ report_stats: false
macaroon_secret_key: "<langer-zufalls-string>"
form_secret: "<langer-zufalls-string>"
trusted_key_servers:
- server_name: "matrix.org"