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
2.4 KiB
Homelab
Dokumentation und Konfiguration meines Homelabs. Das Ziel ist, jeden Dienst allein anhand dieser Unterlagen neu aufsetzen zu können.
Aufbau
homelab/
├── docs/ Beschreibungen und Anleitungen (aus dem Wiki übernommen)
│ ├── uebersicht.md
│ ├── dienste/ Was der jeweilige Dienst macht
│ └── anleitungen/ Schritt für Schritt
└── services/ Dienste auf dem Server, mit Konfigurationsvorlagen
├── matrix-synapse/
├── coturn/
├── element-web/
├── wikijs/
├── gitea/
└── nginx/
Der Unterschied: docs/ beschreibt die Dienste im Heimnetz (laufen unter
Docker/Portainer), services/ dokumentiert die Dienste auf dem Server, jeweils
mit den zugehörigen Konfigurationsdateien.
Dienste auf dem Server
| Dienst | Verzeichnis | Zweck |
|---|---|---|
| Matrix (Synapse) | services/matrix-synapse/ |
Chat-Homeserver |
| coturn | services/coturn/ |
TURN-Relay für Anrufe |
| Element Web | services/element-web/ |
Web-Client für Matrix |
| Wiki.js | services/wikijs/ |
Wiki |
| Gitea | services/gitea/ |
Git-Hosting |
| nginx | services/nginx/ |
Reverse Proxy, TLS |
Dienste im Heimnetz
Siehe docs/uebersicht.md – Homepage, AdGuard,
Jellyfin/ARR, Paperless, Vaultwarden, Netdata.
Konventionen
Alles ist anonymisiert. Die echte Domain steht nirgends im Repo. Vor dem Nachbauen zu ersetzen sind:
| Platzhalter | Bedeutung |
|---|---|
example.com |
eigene Domain |
matrix.example.com |
Subdomain des Matrix-Servers |
element.example.com |
Subdomain des Web-Clients |
turn.example.com |
Subdomain des TURN-Servers |
git.example.com |
Subdomain von Gitea |
<IP-ADRESSE> |
konkrete IP-Adresse |
HIER-… |
ein einzusetzendes Geheimnis |
Keine Zugangsdaten im Repo. Dateien mit echten Werten heißen im Original
z. B. homelab.yaml; hier liegt nur homelab.yaml.example mit Platzhaltern.
Secrets werden auf dem Server erzeugt und dort gehalten, nicht hier.
Reihenfolge beim Nachbauen. Erst nginx und Zertifikate, dann die Anwendungen. Beim Matrix-Teil zuerst Synapse, dann coturn, dann Element – die späteren Schritte brauchen jeweils Werte aus den früheren.