erster commit nach bestandsaufnahme

This commit is contained in:
Bilal Teke 2026-05-26 15:24:55 +02:00
commit c5fb4daf0f
10 changed files with 930 additions and 0 deletions

101
VPS/backup.md Normal file
View file

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

128
VPS/docker.md Normal file
View file

@ -0,0 +1,128 @@
# Docker Übersicht
## 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“
## 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 | Aufgabe | Netzwerk |
|—|—|—|
| npm | Reverse Proxy | proxy |
| authentik-server | SSO Frontend | proxy |
| authentik-worker | Hintergrundprozesse | authentik_authentik |
| authentik-postgresql | Datenbank | authentik_authentik |
| authentik-redis | Cache | authentik_authentik |
| nextcloud | Cloud-Plattform | proxy |
| nextcloud-db | MariaDB | nextcloud_internal |
| nextcloud-redis | Redis Cache | nextcloud_internal |
| vaultwarden | Passwortmanager | proxy |
| forgejo | Git Hosting | proxy |
| collabora | Office Integration | proxy |
| uptime-kuma | Verfügbarkeitsmonitoring | proxy |
| netdata | Monitoring | proxy |
| adguardhome | DNS | proxy |
| teamspeak | Voice Server | teamspeak_default |
| site | Statische Webseite | proxy |
# Öffentlich erreichbare Ports
| Port | Dienst |
|—|—|
| 80 | NPM HTTP |
| 443 | NPM HTTPS |
| 9000 | authentik |
| 3000 | Forgejo |
| 2222 | Forgejo SSH |
| 9987/UDP | TeamSpeak |
| 10011 | TeamSpeak ServerQuery |
| 30033 | TeamSpeak Dateitransfer |
| 51820/UDP | WireGuard |
# Localhost-only Bindings
| Port | Dienst |
|—|—|
| 81 | NPM Admin |
| 3001 | Uptime Kuma |
| 3002 | AdGuard UI |
# Docker Speicherstruktur
## Basisverzeichnis
```text
/opt/
```
Jeder Dienst besitzt aktuell ein eigenes Verzeichnis.
Beispiele:
```text
/opt/authentik
/opt/nextcloud
/opt/npm
```
# 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
## Positiv
- saubere Trennung der Dienste
- wenige Netzwerke
- kaum Docker-Müll
- minimale Anzahl ungenutzter Volumes
- strukturierter Aufbau
## Verbesserungspotenzial
- unnötige öffentliche Portfreigaben reduzieren
- Compose-Strukturen vereinheitlichen
- Labels und Restart Policies standardisieren
- Netzwerk-Namenskonventionen vereinheitlichen

47
VPS/known-issues.md Normal file
View file

@ -0,0 +1,47 @@
# Bekannte Themen / Verbesserungspotenzial
## Security
- authentik aktuell direkt öffentlich erreichbar
- Forgejo öffentlich exposed
- öffentliche Ports teilweise historisch gewachsen
## Dokumentation
- WireGuard Peers noch nicht vollständig benannt
- Domains/Subdomains noch nicht dokumentiert
- Compose Standards noch nicht vereinheitlicht
## Monitoring
- kein zentrales Alerting
- Backup Monitoring fehlt
- VPN Monitoring ausbaufähig
## Docker
- Compose-Dateien unterschiedlich aufgebaut
- 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

65
VPS/maintenance.md Normal file
View file

@ -0,0 +1,65 @@
# Wartung und Betrieb
## Regelmäßige Aufgaben
### Täglich
- Monitoring prüfen
- Uptime Kuma Alerts prüfen
- CrowdSec Events prüfen
### Wöchentlich
- Docker Container Status prüfen
- verfügbare Updates prüfen
- Backup Logs prüfen
- freien Speicherplatz prüfen
### Monatlich
- Restore-Prozess testen
- ungenutzte Docker Images entfernen
- Logs prüfen
- Sicherheitsreview durchführen
# Automatische Wartung
## Bereits vorhanden
| Funktion | Status |
|—|—|
| apt Updates | aktiv |
| Security Updates | aktiv |
| restic Backup | aktiv |
| logrotate | aktiv |
| CrowdSec Updates | aktiv |
# Geplante Automatisierung
| Funktion | Status |
|—|—|
| Docker Cleanup | geplant |
| Journal Cleanup | geplant |
| Backup Validation | geplant |
| Health Reports | geplant |
| Matrix Alerts | geplant |
# Wartungsziele
Die VPS soll möglichst:
- wartungsarm
- stabil
- nachvollziehbar
- automatisiert
betrieben werden.

121
VPS/monitoring.md Normal file
View file

@ -0,0 +1,121 @@
# Monitoring Dokumentation
## Monitoring Stack
Die VPS nutzt aktuell mehrere Monitoring-Lösungen mit unterschiedlichen Aufgabenbereichen.
# Verwendete Systeme
| Dienst | Aufgabe |
|—|—|
| Netdata | Live-Systemmonitoring |
| Uptime Kuma | Verfügbarkeitsmonitoring |
| CrowdSec | Sicherheitsmonitoring |
| Ubuntu Timer | Wartung / Updates |
# Netdata
## Aufgabe
Netdata überwacht:
- CPU
- RAM
- Prozesse
- Netzwerk
- Docker
- Festplatten
- Systemmetriken
Container:
- netdata
# Uptime Kuma
## Aufgabe
Uptime Kuma überwacht:
- externe Erreichbarkeit
- HTTPS Checks
- Zertifikate
- Dienste
- Domains
Container:
- uptime-kuma
Localhost Binding:
```text
127.0.0.1:3001
```
# CrowdSec
## Aufgabe
CrowdSec überwacht:
- Loginversuche
- Angriffe
- bekannte Bad IPs
Integration:
- nftables
- Docker
- Reverse Proxy
# Systemd Timer
## 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
## Positiv
- mehrere Monitoring-Ebenen vorhanden
- Backups automatisiert
- CrowdSec integriert
- geringe Systemlast
- ausreichende Leistungsreserven
# Verbesserungspotenzial
## Noch offen
- zentrales Alerting
- Matrix Integration
- Backup Fehler Monitoring
- Zertifikatswarnungen
- VPN Health Checks
- Docker Health Alerts
# Langfristiges Ziel
Das Monitoring soll:
- frühzeitig Probleme erkennen
- automatisch benachrichtigen
- Fehlkonfigurationen sichtbar machen
- möglichst wartungsarm funktionieren

97
VPS/networking.md Normal file
View file

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

101
VPS/overview.md Normal file
View file

@ -0,0 +1,101 @@
# VPS Übersicht
## Allgemeine Informationen
| Eigenschaft | Wert |
|—|—|
| Hostname | ubuntu-8gb-nbg1-1 |
| Anbieter | Hetzner Cloud |
| Standort | nbg1 (Nürnberg) |
| Betriebssystem | Ubuntu 24.04.4 LTS |
| Kernel | 6.8.0-117-generic |
| Öffentliche IP | 46.225.176.170 |
| Hauptbenutzer | mbyte |
| Container Runtime | Docker |
# Aufgabe der VPS
Die VPS dient als öffentliche Edge-Infrastruktur des Homelabs.
Hauptaufgaben:
- Öffentlicher Reverse Proxy
- Authentifizierung / SSO
- VPN-Gateway
- Sicherheitslayer
- Öffentlicher Einstiegspunkt für interne Dienste
- Externes Monitoring
# Hauptdienste
| Dienst | Aufgabe |
|—|—|
| Nginx Proxy Manager | Reverse Proxy und TLS |
| authentik | SSO / Identity Provider |
| CrowdSec | Intrusion Prevention |
| WireGuard | VPN-Tunnel ins Heimnetz |
| Nextcloud | Cloud / Kollaboration |
| Vaultwarden | Passwortmanager |
| Forgejo | Git Hosting |
| Uptime Kuma | Verfügbarkeitsmonitoring |
| Netdata | Systemmonitoring |
| AdGuard Home | DNS-Dienst |
| Collabora | Office-Integration |
| TeamSpeak | Voice-Server |
# Infrastruktur-Architektur
Internet
VPS
├── Nginx Proxy Manager
├── authentik
├── CrowdSec
├── WireGuard
├── Öffentliche Dienste
└── Monitoring
↓ VPN
Heimnetz
├── Unraid
├── internes NPM
├── Home Assistant
├── Seafile
├── Immich
└── interne Dienste
# Ressourcenverbrauch
## Aktueller Status (2026-05-26)
| Ressource | Nutzung |
|—|—|
| CPU Load | niedrig |
| RAM Nutzung | ~34% |
| Festplattennutzung | ~17% |
| Swap | 0% |
Die VPS besitzt aktuell deutliche Leistungsreserven.
# Zielbild
Die VPS soll langfristig:
- stabil
- selbstwartend
- dokumentiert
- leicht wiederherstellbar
- sicher
- wartungsarm
- vollständig überwacht
sein.

107
VPS/security.md Normal file
View file

@ -0,0 +1,107 @@
# Sicherheitsdokumentation
## Sicherheitsarchitektur
Die VPS nutzt mehrere Sicherheitslayer.
# Sicherheitskomponenten
| Komponente | Aufgabe |
|—|—|
| CrowdSec | Dynamische Angriffsblockierung |
| nftables | Paketfilterung |
| Docker Netzwerkisolierung | Segmentierung |
| WireGuard | Sicherer Fernzugriff |
| Nginx Proxy Manager | TLS Terminierung |
| authentik | Zentrale Authentifizierung |
# Firewall
## Aktueller Zustand
UFW ist deaktiviert.
Die VPS nutzt stattdessen:
- nftables
- Docker-verwaltete Regeln
- CrowdSec Integration
# Docker Isolation
Die Docker-Netzwerke sind durch nftables-Regeln segmentiert.
Vorhanden:
- RAW Regeln
- Netzwerkisolation
- Interface-basierte Filterung
# Öffentlich erreichbare Dienste
| Dienst | Port |
|—|—|
| NPM | 80 / 443 |
| Forgejo | 3000 |
| Forgejo SSH | 2222 |
| authentik | 9000 |
| TeamSpeak | 9987 / 10011 / 30033 |
| WireGuard | 51820 |
# 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
## Positiv
- CrowdSec aktiv
- Docker Netzwerksegmentierung
- Localhost Bindings vorhanden
- VPN sauber getrennt
- geringe Angriffsfläche des Hosts
# Verbesserungspotenzial
## Hohe Priorität
- authentik nicht direkt öffentlich exposen
- Forgejo Exposure prüfen
- öffentliche Ports reduzieren
# Mittlere Priorität
- Compose Standards vereinheitlichen
- zentrale Loggingstrategie
- automatische Sicherheitsbenachrichtigungen
# Langfristige Ziele
- minimale Angriffsfläche
- vollständig dokumentierte Infrastruktur
- automatisierte Sicherheitsüberwachung
- reproduzierbare Konfiguration
- wartungsarme Architektur

71
VPS/services.md Normal file
View file

@ -0,0 +1,71 @@
# Dienste Übersicht
## 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
| Dienst | SSO |
|—|—|
| Nextcloud | aktiv |
| Vaultwarden | aktiv |
| Immich | aktiv |
| Forgejo | geplant |
| Matrix | geplant |
# Bekannte Abhängigkeiten
| Dienst | Abhängigkeit |
|—|—|
| Nextcloud | MariaDB |
| Nextcloud | Redis |
| authentik | PostgreSQL |
| authentik | Redis |
| Collabora | Nextcloud |
| NPM | proxy Netzwerk |

92
VPS/wireguard.md Normal file
View file

@ -0,0 +1,92 @@
# WireGuard Dokumentation
## 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
## WireGuard Subnetz
```text
10.100.0.0/24
```
# Heimnetz Routing
Folgende Route wird über den Heimnetz-Peer bereitgestellt:
```text
192.168.0.0/24
```
Dadurch kann die VPS interne Dienste zuhause sicher erreichen.
# 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 |
| 10.100.0.2 | 10.100.0.2/32 | Client |
| 10.100.0.3 | 10.100.0.3/32 | Client |
| 10.100.0.5 | 10.100.0.5/32 | Client |
| 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
## Positiv
- Saubere /32 Zuordnung pro Client
- Heimnetz sauber über separaten Peer geroutet
- Keine offensichtlichen Routing-Konflikte
- Keepalive sauber konfiguriert
# Verbesserungspotenzial
## Dokumentation ergänzen
Aktuell fehlen:
- Gerätenamen
- Zuordnung der Peers
- Zweck einzelner Clients
Empfehlung:
| VPN IP | Gerät | Zweck |
|—|—|—|
| 10.100.0.x | MacBook | Mobiler Zugriff |
| 10.100.0.x | Unraid | Heimnetz Gateway |
| ... | ... | ... |
# Langfristige Ziele
- Vollständige Peer-Dokumentation
- Backup der WireGuard-Konfiguration
- Monitoring des VPN-Tunnels
- Alerting bei Tunnel-Ausfall
- Optional QR-Code Archivierung