Joachims Repo
  • Shell 70.6%
  • HTML 29.4%
Find a file
2026-03-22 13:52:55 +00:00
.forgejo/workflows fix: tune zoraxy proxy settings for beszel 2026-03-22 11:01:48 +00:00
docs docs: refine wazuh authentik saml plan 2026-03-22 13:52:55 +00:00
kunden fix: avoid acme rate limit in monitor updates 2026-03-21 20:02:36 +00:00
scripts fix: tune zoraxy proxy settings for beszel 2026-03-22 11:01:48 +00:00
.gitignore gitignore 2026-02-19 10:36:42 +00:00
CLAUDE.md Add hetzner-monitor workflow and CLAUDE.md project docs 2026-03-17 18:45:41 +00:00
README.md edit config from kunde 2026-02-19 17:10:51 +00:00

Docker Actions Hetzner Server Provisioning via Forgejo Actions

Automatisiertes Provisioning von Hetzner Cloud Servern mit Docker, Zoraxy Reverse Proxy und Apache Webserver – gesteuert über Forgejo Actions.

Was macht dieses Repo?

Per Knopfdruck (Workflow Dispatch) wird ein komplett eingerichteter Server bei Hetzner Cloud erstellt:

  1. Hetzner Cloud Server erstellen (cx23, Ubuntu 24.04, Nürnberg)
  2. Firewall-Regeln zuweisen (SSH + Web-Ports)
  3. Docker installieren
  4. Stack deployen: Zoraxy (Reverse Proxy) + Apache Webserver
  5. Fertige Ausgabe mit Server-IP und Zoraxy-Admin-URL

Repo-Struktur

docker-actions/
├── .forgejo/
│   └── workflows/
│       ├── test.yml               # Einfacher Test-Workflow
│       └── hetzner-setup.yml      # Server-Provisioning
└── stack/
    ├── docker-compose.yml         # Zoraxy + Apache Stack
    └── apache/
        └── html/
            └── index.html         # Landing Page

Voraussetzungen

Forgejo Actions

  • Forgejo-Instanz mit aktivierten Actions (app.ini):
[actions]
ENABLED = true
DEFAULT_ACTIONS_URL = https://github.com
  • Registrierter Forgejo Runner mit Docker-Zugriff

Secrets (im Repo unter Einstellungen → Actions → Geheimnisse)

Secret Beschreibung
HETZNER_TOKEN Hetzner Cloud API Token
SSH_PRIVATE_KEY Privater SSH-Schlüssel (ed25519)

Hetzner Cloud

  • API Token erstellt unter console.hetzner.cloud
  • SSH Public Key hinterlegt (Sicherheit → SSH-Schlüssel)
  • Firewall-Regeln angelegt:
    • firewall-ssh-login-dev (ID: 1145271) – SSH Zugriff
    • firewall-forgejo-dev-80-443-8000 (ID: 10559384) – HTTP, HTTPS, Zoraxy Admin

Workflow ausführen

  1. Im Repo auf Actions klicken
  2. Workflow Hetzner Server Setup auswählen
  3. Run Workflow klicken
  4. Warten bis der Job durchläuft (~2–3 Minuten)
  5. In den Logs stehen am Ende Server-IP und Zoraxy-Admin-URL

Nach dem Deploy

  1. Zoraxy Admin öffnen: http://<SERVER_IP>:8000
  2. Admin-Benutzer anlegen
  3. Neue Proxy-Route erstellen:
    • Upstream: apache:80
    • Scheme: http
  4. Optional: Domain per DNS A-Record auf die Server-IP zeigen und Let's Encrypt in Zoraxy aktivieren

Stack

Der Stack wird aus dem stack/-Verzeichnis auf den Server kopiert und per docker compose gestartet:

  • Zoraxy – Reverse Proxy mit Web-UI, automatischem TLS und HTTP/HTTPS Routing
    • Ports: 80, 443, 8000 (Admin)
  • Apache – Webserver mit statischer Landing Page
    • Nur intern erreichbar über das proxy-Netzwerk

Beide Container laufen im gemeinsamen Docker-Netzwerk proxy und kommunizieren über den Container-Namen (apache:80).

Anpassen

  • Anderen Server-Typ: In hetzner-setup.yml den server_type ändern (z.B. cx33, cpx21, cax21)
  • Anderer Standort: location ändern (nbg1, fsn1, hel1)
  • Weitere Container: In stack/docker-compose.yml ergänzen und ins proxy-Netzwerk hängen
  • Andere Webseite: stack/apache/html/index.html bearbeiten

Wichtig

⚠️ Kosten: Jeder Workflow-Run erstellt einen neuen Hetzner-Server. Nicht vergessen, Testserver in der Hetzner Console wieder zu löschen!

Technologie