Zum Inhalt springen
[ PRJ-04 ]Privat

Hybrides Homelab

Zwei Proxmox-Knoten zu Hause und VPS in der Cloud, verbunden über Tailscale, über Cloudflare veröffentlicht und mit Ansible wiederaufgebaut.

  • Proxmox
  • Tailscale
  • Cloudflare
  • Ansible
  • Docker
  • Zabbix
  • Debian

Kontext

Meine private Infrastruktur: eine Lernumgebung und das Hosting für meine Projekte. Die Ausgangsanforderung: Sie muss sich ohne manuelle Schritte aus einem Git-Repository wiederaufbauen lassen.

Architekturprinzip

  • Eingehender Verkehr: ausschließlich über Cloudflare (Tunnel und Access). Kein eingehender Port ist zum Internet hin offen.
  • Verkehr zwischen Maschinen: ausschließlich über Tailscale.
  • Platzierung nach Kritikalität: Öffentliches auf Cloudflare (Pages, Workers); exponierte Dienste als Container auf VPS; Internes und Schweres (Speicher, Backups, Metriken) zu Hause auf Proxmox.

Was ich gemacht habe

  • Zwei Proxmox-Knoten zu Hause und mehrere VPS in Paris und in der Cloud aufgebaut, alle mit Debian 13.
  • Ansible-Rollen für die gesamte Flotte geschrieben: gemeinsame Basis, Härtung, Tailscale, rekursiver DNS, Docker, Cloudflare Tunnel, Caddy, Monitoring-Agenten, Backups.
  • Jeden Host gehärtet: SSH nur mit Schlüsseln, nftables-Firewall auf drop, sysctl, AppArmor, überflüssige Dienste entfernt.
  • Geheimnisse im Repository mit SOPS und age verschlüsselt.
  • Die Administrationsoberflächen hinter Cloudflare Access gelegt, mit dokumentiertem Notzugang.
  • Monitoring mit Zabbix und Grafana eingerichtet.
  • Die Verfahren für Migration und Wiederaufbau dokumentiert.

Was ich daraus mitnehme

  • Eine Rolle ist erst fertig, wenn sie idempotent ist: Der zweite Durchlauf ändert nichts.
  • Docker umgeht die Firewall bei veröffentlichten Ports: Ich binde sie an 127.0.0.1 oder die Tailscale-Adresse, und ein Test schlägt sonst fehl.
  • Eine dokumentierte Infrastruktur wird wiederaufgebaut statt repariert.

Nächstes Projekt

PRJ-052026· Privat

Bewerbungs-Tracker

Ein privates Werkzeug, das jede Bewerbung verfolgt: Klicks, Öffnungen, Antworten, Nachfassaktionen.

Node.jsTypeScriptPostgreSQLCloudflare WorkersDocker
Projekt ansehen