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 (~23 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