syntax cleanup

This commit is contained in:
Bilal Teke 2026-06-04 08:08:55 +02:00
parent c5fb4daf0f
commit 2027f90030
12 changed files with 242 additions and 182 deletions

8
README.md Normal file
View file

@ -0,0 +1,8 @@
# Homelab-Dokumentation
Diese Dokumentation beschreibt Aufbau, Betrieb und bekannte Themen des Homelabs.
## Bereiche
- [VPS-Dokumentation](VPS/README.md)

23
VPS/README.md Normal file
View file

@ -0,0 +1,23 @@
# VPS-Dokumentation
Die VPS dient als öffentliche Edge-Infrastruktur des Homelabs. Die Dokumentation ist nach Verantwortungsbereichen gegliedert.
## Einstieg
- [Übersicht](overview.md)
- [Dienste](services.md)
- [Bekannte Themen und Verbesserungspotenzial](known-issues.md)
## Infrastruktur
- [Netzwerk](networking.md)
- [WireGuard](wireguard.md)
- [Docker](docker.md)
- [Sicherheit](security.md)
## Betrieb
- [Monitoring](monitoring.md)
- [Backup](backup.md)
- [Wartung und Betrieb](maintenance.md)

View file

@ -5,14 +5,16 @@
Die VPS wird per restic auf eine Hetzner Storage Box gesichert.
Transport:
- SFTP
Backup Tool:
- restic
---
# Gesicherte Verzeichnisse
## Gesicherte Verzeichnisse
```text
/opt
@ -21,11 +23,11 @@ Backup Tool:
/etc/letsencrypt
```
---
# Backup Ziel
## Backup Ziel
## Hetzner Storage Box
### Hetzner Storage Box
Repository Struktur:
@ -33,48 +35,51 @@ Repository Struktur:
backups/vps
```
---
# Retention Policy
## Retention Policy
| Typ | Anzahl |
|—|—|
|---|---|
| Daily | 7 |
| Weekly | 4 |
| Monthly | 6 |
Zusätzlich:
- regelmäßiges prune
---
# Backup Zeitplan
## Backup Zeitplan
## systemd timer
### systemd timer
Nächster Lauf:
- täglich um 02:30 UTC
Timer:
- restic-backup.timer
---
# Ziele der Backupstrategie
## Ziele der Backupstrategie
- vollständige Wiederherstellbarkeit der VPS
- schnelle Recovery
- Schutz vor Fehlkonfigurationen
- Schutz vor Datenverlust
---
# Wiederherstellungsziele
## Wiederherstellungsziele
Die folgenden Bereiche müssen wiederherstellbar sein:
| Bereich | Wichtigkeit |
|—|—|
|---|---|
| Docker Stacks | kritisch |
| Reverse Proxy | kritisch |
| authentik | kritisch |
@ -82,11 +87,11 @@ Die folgenden Bereiche müssen wiederherstellbar sein:
| Zertifikate | kritisch |
| SSH Zugriff | kritisch |
---
# Verbesserungspotenzial
## Verbesserungspotenzial
## Noch offen
### Noch offen
- Restore-Test dokumentieren
- Backup Monitoring ergänzen
@ -94,8 +99,8 @@ Die folgenden Bereiche müssen wiederherstellbar sein:
- Alerting bei Fehlern
- Dokumentierte Recovery-Anleitung
---
# Langfristiges Ziel
## Langfristiges Ziel
Die VPS soll vollständig reproduzierbar und innerhalb kurzer Zeit wiederherstellbar sein.
Die VPS soll vollständig reproduzierbar und innerhalb kurzer Zeit wiederherstellbar sein.

View file

@ -3,32 +3,33 @@
## Docker Netzwerke
| Netzwerk | Zweck |
|—|—|
|---|---|
| proxy | Hauptnetzwerk für Reverse Proxy und Dienste |
| authentik_authentik | internes authentik Netzwerk |
| nextcloud_internal | internes Nextcloud Netzwerk |
| teamspeak_default | isoliertes TeamSpeak Netzwerk |
---
# Hauptnetzwerk „proxy“
## Hauptnetzwerk „proxy“
## Netzwerk
### Netzwerk
- Name: proxy
- Subnetz: 172.20.0.0/16
Das proxy-Netzwerk dient als zentrale Kommunikationsschicht zwischen:
- Nginx Proxy Manager
- öffentlichen Diensten
- internen Reverse-Proxy-Zielen
---
# Container
## Container
| Container | Aufgabe | Netzwerk |
|—|—|—|
|---|---|---|
| npm | Reverse Proxy | proxy |
| authentik-server | SSO Frontend | proxy |
| authentik-worker | Hintergrundprozesse | authentik_authentik |
@ -46,12 +47,12 @@ Das proxy-Netzwerk dient als zentrale Kommunikationsschicht zwischen:
| teamspeak | Voice Server | teamspeak_default |
| site | Statische Webseite | proxy |
---
# Öffentlich erreichbare Ports
## Öffentlich erreichbare Ports
| Port | Dienst |
|—|—|
|---|---|
| 80 | NPM HTTP |
| 443 | NPM HTTPS |
| 9000 | authentik |
@ -62,21 +63,21 @@ Das proxy-Netzwerk dient als zentrale Kommunikationsschicht zwischen:
| 30033 | TeamSpeak Dateitransfer |
| 51820/UDP | WireGuard |
---
# Localhost-only Bindings
## Localhost-only Bindings
| Port | Dienst |
|—|—|
|---|---|
| 81 | NPM Admin |
| 3001 | Uptime Kuma |
| 3002 | AdGuard UI |
---
# Docker Speicherstruktur
## Docker Speicherstruktur
## Basisverzeichnis
### Basisverzeichnis
```text
/opt/
@ -92,27 +93,29 @@ Beispiele:
/opt/npm
```
---
# Persistenzstrategie
## Persistenzstrategie
Die VPS nutzt überwiegend:
- Bind Mounts
- lokale persistente Verzeichnisse
anstatt vieler benannter Docker-Volumes.
Vorteile:
- einfachere Backups
- einfachere Migration
- einfachere Wiederherstellung
- bessere Übersichtlichkeit
---
# Aktuelle Beobachtungen
## Aktuelle Beobachtungen
## Positiv
### Positiv
- saubere Trennung der Dienste
- wenige Netzwerke
@ -120,9 +123,9 @@ Vorteile:
- minimale Anzahl ungenutzter Volumes
- strukturierter Aufbau
## Verbesserungspotenzial
### Verbesserungspotenzial
- unnötige öffentliche Portfreigaben reduzieren
- Compose-Strukturen vereinheitlichen
- Labels und Restart Policies standardisieren
- Netzwerk-Namenskonventionen vereinheitlichen
- Netzwerk-Namenskonventionen vereinheitlichen

View file

@ -6,7 +6,7 @@
- Forgejo öffentlich exposed
- öffentliche Ports teilweise historisch gewachsen
---
## Dokumentation
@ -14,7 +14,7 @@
- Domains/Subdomains noch nicht dokumentiert
- Compose Standards noch nicht vereinheitlicht
---
## Monitoring
@ -22,7 +22,7 @@
- Backup Monitoring fehlt
- VPN Monitoring ausbaufähig
---
## Docker
@ -30,18 +30,18 @@
- Netzwerk-Namenskonventionen uneinheitlich
- Logging noch nicht standardisiert
---
## Backups
- Restore-Prozess noch nicht dokumentiert
- kein regelmäßiger Restore-Test
---
## Langfristige Themen
- Matrix Server
- zentrale Benachrichtigungen
- vollständige Infrastructure-as-Code Struktur
- automatische Inventarisierung
- automatische Inventarisierung

View file

@ -8,7 +8,7 @@
- Uptime Kuma Alerts prüfen
- CrowdSec Events prüfen
---
### Wöchentlich
@ -17,7 +17,7 @@
- Backup Logs prüfen
- freien Speicherplatz prüfen
---
### Monatlich
@ -26,40 +26,41 @@
- Logs prüfen
- Sicherheitsreview durchführen
---
# Automatische Wartung
## Automatische Wartung
## Bereits vorhanden
### Bereits vorhanden
| Funktion | Status |
|—|—|
|---|---|
| apt Updates | aktiv |
| Security Updates | aktiv |
| restic Backup | aktiv |
| logrotate | aktiv |
| CrowdSec Updates | aktiv |
---
# Geplante Automatisierung
## Geplante Automatisierung
| Funktion | Status |
|—|—|
|---|---|
| Docker Cleanup | geplant |
| Journal Cleanup | geplant |
| Backup Validation | geplant |
| Health Reports | geplant |
| Matrix Alerts | geplant |
---
# Wartungsziele
## Wartungsziele
Die VPS soll möglichst:
- wartungsarm
- stabil
- nachvollziehbar
- automatisiert
betrieben werden.
betrieben werden.

View file

@ -4,24 +4,25 @@
Die VPS nutzt aktuell mehrere Monitoring-Lösungen mit unterschiedlichen Aufgabenbereichen.
---
# Verwendete Systeme
## Verwendete Systeme
| Dienst | Aufgabe |
|—|—|
|---|---|
| Netdata | Live-Systemmonitoring |
| Uptime Kuma | Verfügbarkeitsmonitoring |
| CrowdSec | Sicherheitsmonitoring |
| Ubuntu Timer | Wartung / Updates |
---
# Netdata
## Netdata
## Aufgabe
### Aufgabe
Netdata überwacht:
- CPU
- RAM
- Prozesse
@ -31,15 +32,17 @@ Netdata überwacht:
- Systemmetriken
Container:
- netdata
---
# Uptime Kuma
## Uptime Kuma
## Aufgabe
### Aufgabe
Uptime Kuma überwacht:
- externe Erreichbarkeit
- HTTPS Checks
- Zertifikate
@ -47,6 +50,7 @@ Uptime Kuma überwacht:
- Domains
Container:
- uptime-kuma
Localhost Binding:
@ -55,41 +59,43 @@ Localhost Binding:
127.0.0.1:3001
```
---
# CrowdSec
## CrowdSec
## Aufgabe
### Aufgabe
CrowdSec überwacht:
- Loginversuche
- Angriffe
- bekannte Bad IPs
Integration:
- nftables
- Docker
- Reverse Proxy
---
# Systemd Timer
## Systemd Timer
## Aktive Wartungstimer
### Aktive Wartungstimer
| Timer | Aufgabe |
|—|—|
|---|---|
| apt-daily.timer | Paketupdates |
| apt-daily-upgrade.timer | Sicherheitsupdates |
| restic-backup.timer | Backups |
| logrotate.timer | Logrotation |
| crowdsec-hub-update.timer | CrowdSec Updates |
---
# Aktuelle Beobachtungen
## Aktuelle Beobachtungen
## Positiv
### Positiv
- mehrere Monitoring-Ebenen vorhanden
- Backups automatisiert
@ -97,11 +103,11 @@ Integration:
- geringe Systemlast
- ausreichende Leistungsreserven
---
# Verbesserungspotenzial
## Verbesserungspotenzial
## Noch offen
### Noch offen
- zentrales Alerting
- Matrix Integration
@ -110,12 +116,13 @@ Integration:
- VPN Health Checks
- Docker Health Alerts
---
# Langfristiges Ziel
## Langfristiges Ziel
Das Monitoring soll:
- frühzeitig Probleme erkennen
- automatisch benachrichtigen
- Fehlkonfigurationen sichtbar machen
- möglichst wartungsarm funktionieren
- möglichst wartungsarm funktionieren

View file

@ -3,29 +3,32 @@
## Öffentliches Netzwerk
| Interface | Adresse |
|—|—|
|---|---|
| eth0 | 46.225.176.170 |
---
# VPN
## VPN
## WireGuard
### WireGuard
Die VPS dient als zentraler WireGuard-Hub zwischen:
- VPS
- Heimnetz
- zusätzlichen Clients
Interface:
- wg0
Listening Port:
- 51820/UDP
---
# Heimnetz Routing
## Heimnetz Routing
Folgende Route wird aktuell über WireGuard bereitgestellt:
@ -35,35 +38,36 @@ Folgende Route wird aktuell über WireGuard bereitgestellt:
Dadurch kann die VPS interne Dienste im Heimnetz sicher über VPN erreichen.
---
# Firewall / Paketfilterung
## Firewall / Paketfilterung
## Aktueller Zustand
### Aktueller Zustand
UFW ist nicht aktiv.
Stattdessen nutzt die VPS:
- nftables
- Docker-verwaltete Firewallregeln
- CrowdSec Integration
---
# Sicherheitslayer
## Sicherheitslayer
| Layer | Aufgabe |
|—|—|
|---|---|
| Docker nftables Regeln | Container-Isolation |
| CrowdSec | Dynamische Blockierung |
| WireGuard | Sicherer privater Zugriff |
| NPM | TLS Terminierung |
---
# Docker Netzwerkarchitektur
## Docker Netzwerkarchitektur
## proxy Netzwerk
### proxy Netzwerk
Subnetz:
@ -72,6 +76,7 @@ Subnetz:
```
Wichtige Dienste:
- NPM
- authentik
- Nextcloud
@ -79,19 +84,19 @@ Wichtige Dienste:
- Forgejo
- Monitoring-Dienste
---
# Aktuelle Sicherheitsbeobachtungen
## Aktuelle Sicherheitsbeobachtungen
## Positiv
### Positiv
- interne Docker-Segmentierung vorhanden
- RAW nftables Isolationsregeln aktiv
- Localhost Bindings bereits genutzt
- CrowdSec in INPUT Chain integriert
## Mögliche Verbesserungen
### Mögliche Verbesserungen
- direkten öffentlichen Zugriff auf authentik entfernen
- öffentliche Erreichbarkeit von Forgejo prüfen
- Rolle von AdGuard auf der VPS bewerten
- Rolle von AdGuard auf der VPS bewerten

View file

@ -3,7 +3,7 @@
## Allgemeine Informationen
| Eigenschaft | Wert |
|—|—|
|---|---|
| Hostname | ubuntu-8gb-nbg1-1 |
| Anbieter | Hetzner Cloud |
| Standort | nbg1 (Nürnberg) |
@ -13,9 +13,9 @@
| Hauptbenutzer | mbyte |
| Container Runtime | Docker |
---
# Aufgabe der VPS
## Aufgabe der VPS
Die VPS dient als öffentliche Edge-Infrastruktur des Homelabs.
@ -28,12 +28,12 @@ Hauptaufgaben:
- Öffentlicher Einstiegspunkt für interne Dienste
- Externes Monitoring
---
# Hauptdienste
## Hauptdienste
| Dienst | Aufgabe |
|—|—|
|---|---|
| Nginx Proxy Manager | Reverse Proxy und TLS |
| authentik | SSO / Identity Provider |
| CrowdSec | Intrusion Prevention |
@ -47,10 +47,11 @@ Hauptaufgaben:
| Collabora | Office-Integration |
| TeamSpeak | Voice-Server |
---
# Infrastruktur-Architektur
## Infrastruktur-Architektur
```text
Internet
VPS
@ -68,15 +69,16 @@ Heimnetz
├── Seafile
├── Immich
└── interne Dienste
```
---
# Ressourcenverbrauch
## Ressourcenverbrauch
## Aktueller Status (2026-05-26)
### Aktueller Status (2026-05-26)
| Ressource | Nutzung |
|—|—|
|---|---|
| CPU Load | niedrig |
| RAM Nutzung | ~34% |
| Festplattennutzung | ~17% |
@ -84,9 +86,9 @@ Heimnetz
Die VPS besitzt aktuell deutliche Leistungsreserven.
---
# Zielbild
## Zielbild
Die VPS soll langfristig:
@ -98,4 +100,4 @@ Die VPS soll langfristig:
- wartungsarm
- vollständig überwacht
sein.
sein.

View file

@ -4,12 +4,12 @@
Die VPS nutzt mehrere Sicherheitslayer.
---
# Sicherheitskomponenten
## Sicherheitskomponenten
| Komponente | Aufgabe |
|—|—|
|---|---|
| CrowdSec | Dynamische Angriffsblockierung |
| nftables | Paketfilterung |
| Docker Netzwerkisolierung | Segmentierung |
@ -17,36 +17,38 @@ Die VPS nutzt mehrere Sicherheitslayer.
| Nginx Proxy Manager | TLS Terminierung |
| authentik | Zentrale Authentifizierung |
---
# Firewall
## Firewall
## Aktueller Zustand
### Aktueller Zustand
UFW ist deaktiviert.
Die VPS nutzt stattdessen:
- nftables
- Docker-verwaltete Regeln
- CrowdSec Integration
---
# Docker Isolation
## Docker Isolation
Die Docker-Netzwerke sind durch nftables-Regeln segmentiert.
Vorhanden:
- RAW Regeln
- Netzwerkisolation
- Interface-basierte Filterung
---
# Öffentlich erreichbare Dienste
## Öffentlich erreichbare Dienste
| Dienst | Port |
|—|—|
|---|---|
| NPM | 80 / 443 |
| Forgejo | 3000 |
| Forgejo SSH | 2222 |
@ -54,23 +56,23 @@ Vorhanden:
| TeamSpeak | 9987 / 10011 / 30033 |
| WireGuard | 51820 |
---
# Lokale Bindings
## Lokale Bindings
Folgende Dienste sind nur lokal erreichbar:
| Dienst | Binding |
|—|—|
|---|---|
| NPM Admin | 127.0.0.1:81 |
| Uptime Kuma | 127.0.0.1:3001 |
| AdGuard UI | 127.0.0.1:3002 |
---
# Sicherheitsbeobachtungen
## Sicherheitsbeobachtungen
## Positiv
### Positiv
- CrowdSec aktiv
- Docker Netzwerksegmentierung
@ -78,30 +80,30 @@ Folgende Dienste sind nur lokal erreichbar:
- VPN sauber getrennt
- geringe Angriffsfläche des Hosts
---
# Verbesserungspotenzial
## Verbesserungspotenzial
## Hohe Priorität
### Hohe Priorität
- authentik nicht direkt öffentlich exposen
- Forgejo Exposure prüfen
- öffentliche Ports reduzieren
---
# Mittlere Priorität
### Mittlere Priorität
- Compose Standards vereinheitlichen
- zentrale Loggingstrategie
- automatische Sicherheitsbenachrichtigungen
---
# Langfristige Ziele
## Langfristige Ziele
- minimale Angriffsfläche
- vollständig dokumentierte Infrastruktur
- automatisierte Sicherheitsüberwachung
- reproduzierbare Konfiguration
- wartungsarme Architektur
- wartungsarme Architektur

View file

@ -3,69 +3,69 @@
## Reverse Proxy
| Dienst | Beschreibung |
|—|—|
|---|---|
| Nginx Proxy Manager | Öffentlicher Reverse Proxy |
| authentik | Zentrale Authentifizierung |
---
## Cloud / Produktivität
| Dienst | Beschreibung |
|—|—|
|---|---|
| Nextcloud | Cloud Plattform |
| Collabora | Office Integration |
| Vaultwarden | Passwortmanager |
---
## Infrastruktur
| Dienst | Beschreibung |
|—|—|
|---|---|
| WireGuard | VPN |
| CrowdSec | Angriffsschutz |
| AdGuard Home | DNS |
| Forgejo | Git Hosting |
---
## Monitoring
| Dienst | Beschreibung |
|—|—|
|---|---|
| Netdata | Live Monitoring |
| Uptime Kuma | Uptime Monitoring |
---
## Kommunikation
| Dienst | Beschreibung |
|—|—|
|---|---|
| TeamSpeak | Voice Server |
---
# SSO Status
## SSO Status
| Dienst | SSO |
|—|—|
|---|---|
| Nextcloud | aktiv |
| Vaultwarden | aktiv |
| Immich | aktiv |
| Forgejo | geplant |
| Matrix | geplant |
---
# Bekannte Abhängigkeiten
## Bekannte Abhängigkeiten
| Dienst | Abhängigkeit |
|—|—|
|---|---|
| Nextcloud | MariaDB |
| Nextcloud | Redis |
| authentik | PostgreSQL |
| authentik | Redis |
| Collabora | Nextcloud |
| NPM | proxy Netzwerk |
| NPM | proxy Netzwerk |

View file

@ -3,30 +3,33 @@
## Allgemein
Die VPS dient als zentraler WireGuard-Hub zwischen:
- VPS
- Heimnetz
- mobilen Clients
- zusätzlichen Geräten
Interface:
- wg0
Listening Port:
- 51820/UDP
---
# VPN Netzwerk
## VPN Netzwerk
## WireGuard Subnetz
### WireGuard Subnetz
```text
10.100.0.0/24
```
---
# Heimnetz Routing
## Heimnetz Routing
Folgende Route wird über den Heimnetz-Peer bereitgestellt:
@ -36,12 +39,12 @@ Folgende Route wird über den Heimnetz-Peer bereitgestellt:
Dadurch kann die VPS interne Dienste zuhause sicher erreichen.
---
# Aktuelle Peers
## Aktuelle Peers
| Peer | Allowed IPs | Beschreibung |
|—|—|—|
|---|---|---|
| 10.100.0.4 | 10.100.0.4/32 | Client |
| 10.100.0.6 | 10.100.0.6/32 | Client |
| 10.100.0.55 | 10.100.0.55/32 | Client |
@ -51,24 +54,25 @@ Dadurch kann die VPS interne Dienste zuhause sicher erreichen.
| 10.100.0.10 | 10.100.0.10/32 + 192.168.0.0/24 | Heimnetz Gateway |
| 10.100.0.7 | 10.100.0.7/32 | Client |
---
# Beobachtungen
## Beobachtungen
## Positiv
### Positiv
- Saubere /32 Zuordnung pro Client
- Heimnetz sauber über separaten Peer geroutet
- Keine offensichtlichen Routing-Konflikte
- Keepalive sauber konfiguriert
---
# Verbesserungspotenzial
## Verbesserungspotenzial
## Dokumentation ergänzen
### Dokumentation ergänzen
Aktuell fehlen:
- Gerätenamen
- Zuordnung der Peers
- Zweck einzelner Clients
@ -76,17 +80,17 @@ Aktuell fehlen:
Empfehlung:
| VPN IP | Gerät | Zweck |
|—|—|—|
|---|---|---|
| 10.100.0.x | MacBook | Mobiler Zugriff |
| 10.100.0.x | Unraid | Heimnetz Gateway |
| ... | ... | ... |
---
# Langfristige Ziele
## Langfristige Ziele
- Vollständige Peer-Dokumentation
- Backup der WireGuard-Konfiguration
- Monitoring des VPN-Tunnels
- Alerting bei Tunnel-Ausfall
- Optional QR-Code Archivierung
- Optional QR-Code Archivierung