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
65 lines
2.4 KiB
Markdown
65 lines
2.4 KiB
Markdown
# 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/`](services/matrix-synapse/) | Chat-Homeserver |
|
||
| coturn | [`services/coturn/`](services/coturn/) | TURN-Relay für Anrufe |
|
||
| Element Web | [`services/element-web/`](services/element-web/) | Web-Client für Matrix |
|
||
| Wiki.js | [`services/wikijs/`](services/wikijs/) | Wiki |
|
||
| Gitea | [`services/gitea/`](services/gitea/) | Git-Hosting |
|
||
| nginx | [`services/nginx/`](services/nginx/) | Reverse Proxy, TLS |
|
||
|
||
## Dienste im Heimnetz
|
||
|
||
Siehe [`docs/uebersicht.md`](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.
|