Proxmox Infrastruktur
Self-Hosted Services auf Proxmox VE mit Docker.
Architektur
Services
| Service |
Port |
URL (Extern) |
Beschreibung |
| Nextcloud |
8081 |
eckardt-cloud.duckdns.org |
Cloud Storage |
| Vaultwarden |
8083 |
eckardt-vault.duckdns.org/vault/ |
Passwort Manager |
| n8n |
5678 |
eckardt-vault.duckdns.org/n8n/ |
Workflow Automation |
| Gitea |
3000 |
eckardt-git.duckdns.org |
Git Repository |
| Websites |
8082 |
eckardt-vault.duckdns.org |
Statische Websites |
| API |
8000 |
eckardt-vault.duckdns.org/api/ |
FastAPI Backend |
| Netdata |
19999 |
eckardt-monitoring.duckdns.org |
System Monitoring |
| Audiobookshelf |
13378 |
(intern) |
Audiobook Server |
Quick Start
Voraussetzungen
- Proxmox VE oder Debian/Ubuntu mit Docker
- WireGuard fuer externen Zugriff
- Min. 4GB RAM, 50GB Speicher
Installation
Verzeichnisstruktur
Wartung
Health Check
Backup
Updates
Logs
Sicherheit
Implementierte Massnahmen
- Isolierte Netzwerke: Jeder Service hat sein eigenes Docker-Netzwerk
- Resource Limits: CPU und Memory Limits pro Container
- Health Checks: Automatische Ueberwachung aller Services
- Rate Limiting: nginx begrenzt Anfragen pro IP
- TLS 1.2+: Nur sichere Verschluesselung
- Security Headers: X-Frame-Options, X-Content-Type-Options, etc.
Zu beachten
.env Datei NIEMALS committen
- Admin-Tokens regelmaessig rotieren
- Backups extern speichern
- Updates zeitnah einspielen
Netzwerk
WireGuard Tunnel
Ports
| Port |
Service |
Zugriff |
| 51820/UDP |
WireGuard |
VPS extern |
| 80 |
nginx HTTP |
VPS extern |
| 443 |
nginx HTTPS |
VPS extern |
| 3000 |
Gitea Web |
Proxmox intern |
| 2222 |
Gitea SSH |
Proxmox intern |
Troubleshooting
Siehe docs/TROUBLESHOOTING.md fuer:
- Container startet nicht
- Permission denied Fehler
- Netzwerk-Probleme
- SSL-Zertifikat Fehler
- Backup-Probleme
- VT-x/KVM nicht verfuegbar
- VM Snapshots funktionieren nicht
- Storage-Migration zwischen NVMes
Storage
Proxmox Storage Layout
| Storage |
NVMe |
Modell |
Verwendung |
Kapazitaet |
local-lvm |
nvme0n1 |
WDC 476GB |
VM System Disks |
~350GB Thin Pool |
nvme-data |
nvme1n1 |
SKHynix 476GB |
Data Volumes |
~450GB Thin Pool |
VM 100 Disk-Konfiguration
| Disk |
Storage |
Groesse |
Mountpoint |
| scsi0 |
local-lvm |
100GB |
/ (System) |
| scsi1 |
nvme-data |
200GB |
/data |
Snapshots
Changelog
2025-12-28
- Initial Setup mit allen Services
- Gitea auf eigener Subdomain (eckardt-git.duckdns.org)
- Security Hardening:
- Fail2Ban (SSH: 3 Versuche = 24h Ban)
- SSH Key-Only Authentication
- UFW Firewall
- Automatische Security Updates
- Docker no-new-privileges
- nginx Rate Limiting
- Vaultwarden Registration disabled
- Gitea Registration disabled
- Isolierte Docker-Netzwerke pro Service
- Resource Limits (CPU/Memory) pro Container
- Logging mit Rotation (10MB, 3 Files)
- Netdata Monitoring hinzugefuegt (eckardt-monitoring.duckdns.org)
- Host + Docker Container Monitoring
- WireGuard + Fail2Ban Integration
- Separates Git-Repository: proxmox-netdata
- VT-x im BIOS aktiviert fuer VM-Support
- Docker Container Migration zu VM 100:
- VM erstellt: 10GB RAM, 6 Cores, 100GB System Disk
- Separates 200GB Data Volume fuer Nextcloud/Services
- WireGuard auf VM konfiguriert (10.0.0.2)
- Alle Container erfolgreich migriert
- Alte Container auf Host gestoppt
- Storage-Optimierung:
- Zweite NVMe (SKHynix 476GB) als nvme-data Storage aktiviert
- Data Volume auf nvme-data migriert (Live-Migration)
- Snapshots aktiviert (Raw Device zu Proxmox-managed konvertiert)
- NVMe 1 (WDC): VM System Disks
- NVMe 2 (SKHynix): Nextcloud/Data Volumes