Homelab-Dokumentation und Konfigurationsvorlagen

Dokumentation aus dem Wiki uebernommen und um die Dienste auf dem Server
erweitert. Alle Anleitungen sind so geschrieben, dass sich der jeweilige
Dienst allein daraus neu aufsetzen laesst.

docs/      Dienste im Heimnetz (aus dem Wiki, anonymisiert)
services/  Dienste auf dem Server mit Konfigurationsvorlagen
           - matrix-synapse: Homeserver, Postgres, Well-Known-Delegation
           - coturn:         TURN-Relay fuer Anrufe
           - element-web:    Web-Client
           - wikijs, gitea, nginx

Durchgehend anonymisiert: echte Domain durch example.com ersetzt, IP-Adressen
und E-Mail-Adressen durch Platzhalter. Konfigurationsdateien liegen nur als
.example mit Platzhaltern statt echter Secrets vor.

Die Anleitungen halten die Stolpersteine fest, die beim Aufbau tatsaechlich
aufgetreten sind, unter anderem:
- Synapse verlangt LC_COLLATE=C, sonst startet es nicht
- server_name ist nachtraeglich nicht aenderbar -> Delegation noetig
- register_new_matrix_user liest conf.d nicht, Secret muss per -k kommen
- coturn braucht external-ip, sonst kommen keine Medien durch
- Gruppenmitgliedschaft fuer den Zertifikatszugriff wirkt erst beim Neustart
- nginx vererbt add_header nicht in location-Bloecke mit eigenen Direktiven
This commit is contained in:
x3
2026-08-31 17:56:02 +00:00
commit 4a55944aa8
32 changed files with 1848 additions and 0 deletions
@@ -0,0 +1,12 @@
# -> /etc/matrix-synapse/conf.d/database.yaml (root:matrix-synapse, 0640)
database:
name: psycopg2
txn_limit: 10000
args:
user: synapse_user
password: HIER-DAS-DATENBANK-PASSWORT
dbname: synapse
host: 127.0.0.1
port: 5432
cp_min: 5
cp_max: 10
@@ -0,0 +1,51 @@
# -> /etc/matrix-synapse/conf.d/homelab.yaml (root:matrix-synapse, 0640)
#
# Liegt bewusst in conf.d: homeserver.yaml wird vom Paket verwaltet und bei
# Upgrades ueberschrieben.
# Synapse lauscht nur lokal; TLS und Port 443 uebernimmt nginx davor.
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
public_baseurl: https://matrix.example.com/
# Offene Registrierung aus: sonst wird der Server als Spam-Relay missbraucht.
enable_registration: false
registration_shared_secret_path: /etc/matrix-synapse/registration_shared_secret
max_upload_size: 100M
url_preview_enabled: true
# Ohne diese Sperrliste laesst sich der Link-Vorschau-Dienst benutzen, um das
# interne Netz des Servers zu scannen.
url_preview_ip_range_blacklist:
- '127.0.0.0/8'
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '100.64.0.0/10'
- '169.254.0.0/16'
- '::1/128'
- 'fe80::/64'
- 'fc00::/7'
# --------------------------- VoIP / TURN ----------------------------------
turn_uris:
- "turn:turn.example.com:3478?transport=udp"
- "turn:turn.example.com:3478?transport=tcp"
- "turns:turn.example.com:5349?transport=udp"
- "turns:turn.example.com:5349?transport=tcp"
# Muss exakt dem static-auth-secret in der turnserver.conf entsprechen.
turn_shared_secret: "HIER-DAS-TURN-SECRET"
turn_user_lifetime: 86400000
turn_allow_guests: false
trusted_key_servers:
- server_name: "matrix.org"
suppress_key_server_warning: true
@@ -0,0 +1,7 @@
# -> /etc/matrix-synapse/conf.d/secrets.yaml (root:matrix-synapse, 0640)
#
# Mit "openssl rand -base64 48" erzeugen. Fehlen die Werte, leitet Synapse sie
# aus dem Signing-Key ab; ein spaeterer Wechsel des Signing-Keys wuerde dann
# alle Access-Tokens ungueltig machen.
macaroon_secret_key: "HIER-EIN-ZUFALLSWERT"
form_secret: "HIER-EIN-ZUFALLSWERT"