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:
@@ -0,0 +1,64 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user