9c0b7e597c
- 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>
3.6 KiB
3.6 KiB
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 überwg0offen. Notfall: am Contabo-VNCufw allow ssh, fixen, danachufw delete allow ssh. VM 101 besitzt den Horus-SSH-Key. - ufw: default deny incoming. Offen:
61951/udp(WG), alles aufwg0, plus die unten gelisteten Dienst-Ports.
WireGuard
- Verwaltung:
wg-quick@wg0(systemd, enabled). Es läuft KEIN wireguard-ui (kein Prozess/Container/Port 5000) — diewg0.confwurde nur historisch damit erzeugt. - Server-Config:
/etc/wireguard/wg0.conf(Header sagt „don't edit manually", aber maßgeblich ist, waswg-quicklädt →wg show wg0/wg showconf wg0ist die Wahrheit). - Client-Keys/Configs:
/etc/wireguard/clients/<name>/(jeclient.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 auswg0.confentfernen +clients/<name>/löschen +wg syncconf wg0 <(wg-quick strip wg0)(odersystemctl 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-1crash-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 -din/opt/infrastructure) oder entfernen.