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:
1 parent
b5ac041c32
commit
51426a944c
3 files changed
+37
-15
No files matched your search
+27
-7
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
Reference in new issue
Block a user