Hetzner-Cloud-Firewalls über alle Kunden, Konten und Projekte einheitlich halten - und die wechselnde Home-IP mit einem Klick überall eintragen.
Download | Loslegen | Sicherheit | Entwicklung | Issues
hFenceline ist eine Desktop-App für alle, die viele Hetzner-Cloud-Projekte betreuen. Du beschreibst deine Firewall einmal als Vorlage, hFenceline hält jede verwaltete Firewall danach auf diesem Stand - über eigene Projekte, private Konten und Kundenprojekte hinweg.
Wechselt deine Home-IP über Nacht, zeigt das Tray-Symbol rot. Ein Klick auf Home-IP übernehmen trägt die neue Adresse in alle betroffenen Firewalls ein. Kein Einloggen in zehn Konsolen, kein Abtippen von Regeln.
Wie es dazu kam: hFenceline gibt es nur, weil mich das ständige Nachziehen der Firewall-Einstellungen in jedem einzelnen Hetzner-Projekt irgendwann tierisch genervt hat. Es ist ein kleines Sideproject, das mein eigenes Problem löst - wenn es deins auch löst, umso besser.
- Home-IP per Klick. hFenceline prüft die öffentliche IPv4 im Hintergrund und setzt sie auf Wunsch in allen Firewalls, die den Platzhalter
{home}nutzen. - Vorlagen statt Handarbeit. Firewalls entstehen aus Bausteinen wie „Web öffentlich“ oder „Admin von zu Hause“. Eine geänderte Vorlage wirkt auf alle Firewalls, die sie nutzen.
- Ausnahmen pro Firewall. Feste IPs, zuschaltbare Bausteine wie Ping und eigene Zusatzregeln - ohne die Vorlage zu verbiegen.
- Erst Vorschau, dann Schreiben. Vor jeder Änderung holt hFenceline den Ist-Stand frisch von Hetzner und zeigt, welche Regeln hinzukommen und welche entfallen.
- Handgemachte Regeln bleiben. Regeln, die nicht von hFenceline stammen, werden als „fremd“ markiert und nie still gelöscht.
- Warnt, bevor es wehtut. Hinweise bei drohendem Aussperren, bei mehr als 500 wirksamen Regeln und bei Servern, die ungefiltert im Internet stehen.
- Ampel im Tray. Grün: alles passt. Gelb: Abweichung oder ungeschützter Server. Rot: Home-IP geändert oder Fehler.
- Nachvollziehbar. Jede Änderung bei Hetzner landet mit Auslöser und Vorher/Nachher im Protokoll.
- Deutsch und Englisch. Oberfläche, Tray und Meldungen in beiden Sprachen.
Eine Firewall im Detail: Bausteine der Vorlage, feste IPs und der Abgleich mit dem Ist-Stand bei Hetzner.
![]() |
![]() |
![]() |
![]() |
| Home-IP per Klick | Vorschau | Vorlagen | Einrichtung |
Alle Screenshots stammen aus dem Demo-Modus mit erfundenen Daten und Adressen aus Dokumentationsbereichen.
| Baustein | Regeln | Standard |
|---|---|---|
| Web öffentlich | TCP 80 und 443 von überall | immer aktiv |
| Admin von zu Hause | voller Zugriff von {home} |
immer aktiv |
| Feste IPs | voller Zugriff von den festen IPs der jeweiligen Firewall | immer aktiv, anfangs leer |
| Ping | ICMP von überall | zuschaltbar, standardmäßig aus |
Vorlagen lassen sich duplizieren, umbenennen und um eigene Bausteine erweitern. „Voller Zugriff“ übersetzt hFenceline in die Hetzner-Regeln TCP any, UDP any und ICMP. Es gelten nur eingehende Regeln und nur IPv4.
hFenceline spricht direkt mit der Hetzner-Cloud-API. Es gibt keinen Server dazwischen und kein Konto, das du irgendwo anlegen musst.
- Tokens liegen im Passwortspeicher des Betriebssystems (Linux Secret Service, Windows-Anmeldeinformationsverwaltung). Ohne Secret Service nur nach Zustimmung in
tokens.jsonmit Rechten600. - Konfiguration liegt lesbar als
config.yamlunter~/.config/hfenceline/bzw.%APPDATA%\hfenceline\, das Protokoll daneben alsaudit.jsonl. Beide enthalten keine Tokens. - Backup. Konfiguration und Tokens lassen sich als verschlüsselte Datei exportieren und auf einem anderen PC wieder importieren. Verschlüsselt wird mit einer Passphrase im age-Format (scrypt, ChaCha20-Poly1305), die Datei lässt sich notfalls auch mit
age -döffnen. - Im Hintergrund wird nur gelesen. Geschrieben wird bei Hetzner ausschließlich nach deinem Klick.
- Klare Kennzeichnung. Eigene Regeln tragen das Präfix
hfl:in der Beschreibung, verwaltete Firewalls das Labelmanaged-by=hfenceline. Alles andere fasst hFenceline nicht ungefragt an. - Keine Server-Zuweisung. Welche Server eine Firewall schützt, entscheidest du weiter in der Hetzner-Konsole. hFenceline warnt nur bei ungeschützten Servern.
- Weitere Verbindungen: Die Home-IP ermittelt hFenceline über ipify, nach Updates fragt es die GitHub-API nach dem neuesten Release.
- hFenceline für Linux oder Windows aus den Releases laden.
- Im Assistenten Sprache wählen und die Standardvorlage prüfen.
- Je Hetzner-Projekt ein API-Token mit Lesen & Schreiben anlegen (Konsole › Projekt › Sicherheit › API-Tokens) und in hFenceline eintragen.
- Vorhandene Firewalls einlesen: Regeln, die zur Vorlage passen, werden durch Bausteine ersetzt, der Rest bleibt als feste IP oder fremde Regel erhalten.
- Fertig. Ab jetzt reicht bei neuer Home-IP ein Klick im Tray.
Warum ein Token pro Projekt? Ein Hetzner-Token gilt immer für genau ein Projekt, Projekte eines Kontos lassen sich per API nicht auflisten. „Kunde“ ist in hFenceline deshalb nur ein Ordner für Projekte.
| Plattform | Paket |
|---|---|
| Debian, Ubuntu | .deb |
| Andere Linux-Distributionen | .AppImage |
| Windows | Installer (.exe) |
Unter Linux braucht das Tray-Symbol einen Desktop mit AppIndicator-Unterstützung, der Passwortspeicher einen Secret Service wie GNOME Keyring oder KWallet.
Der Demo-Modus zeigt die Oberfläche mit einer API-Attrappe. Bei Hetzner wird dabei nichts geändert.
pnpm install
pnpm demoGültige Demo-Tokens: demo-privat-web, demo-x-shop. Mit ?demo=empty startet der Einrichtungsassistent.
hFenceline ist eine Tauri-2-App. Die gesamte Fachlogik steckt in TypeScript ohne Tauri- und React-Abhängigkeit und ist vollständig getestet; die Rust-Seite bleibt eine dünne Hülle.
Voraussetzungen:
- Node.js 22 oder neuer
- pnpm
- Rust (stable)
- unter Linux zusätzlich:
sudo apt install libwebkit2gtk-4.1-dev librsvg2-dev build-essential curl file libssl-devHäufige Befehle:
| Befehl | Zweck |
|---|---|
pnpm install |
Abhängigkeiten installieren |
pnpm test |
Tests mit Vitest |
pnpm typecheck |
TypeScript prüfen |
pnpm demo |
Oberfläche im Browser mit erfundenen Daten |
pnpm tauri:dev |
Desktop-App im Entwicklungsmodus |
pnpm tauri:build |
Pakete bauen: .deb, AppImage, Windows-Installer |
| Pfad | Inhalt |
|---|---|
src/core/plan |
Kern: aus Vorlage, Ausnahmen, Ist-Regeln und Home-IP werden neuer Regelsatz und Unterschiede |
src/core/hetzner |
Eigener Client für die Hetzner-Cloud-API mit Seiten, Actions und Rate-Limit |
src/core/homeip |
Ermittlung der öffentlichen IPv4 |
src/core/model, src/core/store |
Konfigurationsmodell, Standardvorlage, Laden und Speichern |
src/core/audit |
Änderungsprotokoll |
src/core/app |
Service-Fassade für Oberfläche und Tray |
src/platform |
Anbindung an Tauri, Browser-Entwicklung und Demo-Modus |
src/ui, src/tray |
Oberfläche (React, shadcn/ui, Tailwind CSS) und Tray |
src/i18n |
Übersetzungen Deutsch und Englisch |
src-tauri |
Rust-Hülle: Plugins, Passwortspeicher, Fenster |
Dieses Projekt entsteht mit KI, und ich sage das offen. Es begann mit einem Problem, das ich selbst hatte; der Großteil des Codes stammt von KI-Coding-Agenten, die ich steuere, mit 35 Jahren Erfahrung in der Softwareentwicklung im Rücken.
Das ist Augmented Coding, kein Vibe Coding. Vibe Coding meint, wie Andrej Karpathy den Begriff geprägt hat, alles zu übernehmen, was das Modell schreibt, ohne sich den Code anzusehen. Augmented Coding heißt nach Kent Beck, die KI zu getestetem, wartbarem Code zu führen und für das Ergebnis einzustehen. Der Unterschied liegt nicht darin, wer tippt, sondern darin, wer entscheidet und wie das Ergebnis geprüft wird.
- Ich entscheide. Umfang, Architektur und Abwägungen liegen bei mir: Ich treffe sie oder nehme sie ab. Die KI schlägt vor und setzt um; das letzte Wort hat sie nicht.
- Tests legen fest, was „funktioniert“ heißt. Bei jedem Push auf den Hauptzweig und bei jedem Pull Request laufen automatisierte Tests. Neue Funktionen probiere ich vor einem Release in der echten Anwendung aus, und dabei gefundene Fehler werden behoben.
- Nichts wird versteckt. Code, Tests und Historie liegen offen, jeder kann sie lesen und beurteilen.
Wir haben 2026. Gute Software zeichnet sich nicht mehr dadurch aus, dass jede Zeile von Hand geschrieben ist, sondern dadurch, dass jemand für jede Entscheidung geradesteht.
Fehlerberichte, Ideen und Pull Requests sind willkommen.
- Fehler und Wünsche bitte als Issue melden.
- Vor einem Pull Request
pnpm typecheckundpnpm testlaufen lassen. - Neue Texte der Oberfläche immer in
de.jsonunden.jsonpflegen.
hFenceline steht unter der MIT-Lizenz.
hFenceline ist ein unabhängiges Projekt und steht in keiner Verbindung zur Hetzner Online GmbH.





