Files
docu/horus
root 9c0b7e597c docu: Horus-VPS-Dienste, issues/-Tracking + WG-NAT-Vorfall, WG-Key-Warnungen
- horus/README.md: Dienst-Discovery (mailcow, bind9, NPM, authentik, hedgedoc, apps), Zugang, WG-Verwaltung (kein wireguard-ui aktiv), watchtower-Problem
- issues/: Tracking-Konvention + Vorfall VM101<->Horus WireGuard (Ursache war NAT/Quellport, nicht Keys; Fix ListenPort 51871)
- README.md: Horus in Hosts-Tabelle + Verzeichnisbaum
- shared/horus-opnsense-wireguard: Key-Verwechslungs-Warnungen

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 16:01:26 +02:00
..

Horus — VPS (Contabo)

Öffentlicher VPS, WireGuard-Hub und Anwendungsserver. Stand: 2026-06-28 (per Dienst-Discovery erhoben).

Hostname horus.jeanavril.com
Public IP 207.180.222.207
WireGuard-IP 10.1.1.1 (Hub für alle Peers)
OS Debian 12 (bookworm)
Provider Contabo (Zugang via Contabo-Weboberfläche → VNC)

Zugang

  • Wenn ein WG-Tunnel läuft: ssh jean@192.168.10.10 (VM 101) → ssh root@10.1.1.1
  • Wenn alle Tunnel tot sind: über Public-IP ssh root@207.180.222.207 — aber SSH:22 ist per ufw nur über wg0 offen. Notfall: am Contabo-VNC ufw allow ssh, fixen, danach ufw delete allow ssh. VM 101 besitzt den Horus-SSH-Key.
  • ufw: default deny incoming. Offen: 61951/udp (WG), alles auf wg0, plus die unten gelisteten Dienst-Ports.

WireGuard

  • Verwaltung: wg-quick@wg0 (systemd, enabled). Es läuft KEIN wireguard-ui (kein Prozess/Container/Port 5000) — die wg0.conf wurde nur historisch damit erzeugt.
  • Server-Config: /etc/wireguard/wg0.conf (Header sagt „don't edit manually", aber maßgeblich ist, was wg-quick lädt → wg show wg0 / wg showconf wg0 ist die Wahrheit).
  • Client-Keys/Configs: /etc/wireguard/clients/<name>/ (je client.conf, privatekey, publickey, presharedkey), Backup unter /etc/wireguard/bak/.
  • Listen-Port: 61951/udp. PostUp/PostDown setzen iptables FORWARD/NAT.
  • Peers sauber löschen (ohne UI): [Peer]-Block aus wg0.conf entfernen + clients/<name>/ löschen + wg syncconf wg0 <(wg-quick strip wg0) (oder systemctl restart wg-quick@wg0).
  • Vorfall NAT/Port siehe ../issues/2026-06-28-vm101-horus-wireguard-nat.md.

Dienste (Docker-Compose-Stacks)

Web-Apps liegen i.d.R. hinter nginx-proxy-manager (Ports 80/443).

Stack Verzeichnis Zweck Ports (extern)
mailcowdockerized /opt/mailcow Kompletter Mailserver (postfix, dovecot, rspamd, sogo, clamd, unbound, mysql, redis …) 25, 465, 587, 110, 143, 993, 995, 4190; Web 8443/8880
infrastructure /opt/infrastructure nginx-proxy-manager (Reverse Proxy) + MariaDB + watchtower 80, 443; Admin 81 nur auf 10.1.1.1 (WG)
sso /opt/sso authentik (SSO / Identity Provider) + postgres + redis 9000, 9443
bind9 (Container) Autoritativer DNS 207.180.222.207:53 tcp/udp
collab /opt/collab HedgeDoc (kollaborative Notizen) + postgres hinter NPM
files /opt/files Caddy File-Server + filebrowser hinter NPM
kifin /opt/projects/kifin App „ai-finance-simulations" hinter NPM
vectorseek /opt/projects/vectorseek App (Port 3000) hinter NPM
website /opt/website gestoppt (Exited vor ~15 Monaten)

Eigene systemd-Dienste

Dienst Zweck
monitor-cert-changes.service /usr/local/bin/monitor_cert_changes.sh — überwacht Zertifikatsänderungen und startet Mailcow-Dienste neu (Teil der Cert-Automation, Certs kommen per rsync von VM 101).
wg-quick@wg0.service WireGuard-Hub
chrony, uptimed, docker, containerd Standard

Bekannte Probleme

  • ⚠️ infrastructure-watchtower-1 crash-loopt (Restarting). Log: „client version 1.25 is too old. Minimum supported API version is 1.40" — watchtowers Docker-API-Client ist zu alt für den Docker-Daemon. Auto-Updates der Container laufen dadurch nicht. Fix: watchtower-Image aktualisieren (docker compose pull && up -d in /opt/infrastructure) oder entfernen.