CluPilotCloud/deploy
nexxo 4b3f1bb4ff Ein Update fasst den Tunnel nicht mehr an
Der Betreiber hat es dreimal hintereinander erlebt: Update gefahren, VPN weg.
Die Ursache dafuer, dass es JEDES Mal passierte, stand hier:

    docker compose restart queue queue-provisioning scheduler reverb

In dessen Netz-Namensraum lebt wg0. `restart` baut den Namensraum neu auf, also
riss jede WireGuard-Sitzung ab — die des Betreibers am Telefon wie die jedes
Hosts. Fuer ein Update, das nur PHP-Code aendert, ist das ein absurder Preis.

Seit der Arbeiter dort in einer Schleife laeuft (v1.4.4), geht es billiger:
`queue:restart` setzt ein Signal, der Arbeiter beendet sich nach dem laufenden
Auftrag, die Schleife startet ihn mit dem neuen Code neu. Der Container bleibt
stehen, wg0 bleibt oben, niemand merkt etwas.

Und fuer den Fall, dass `up -d` ihn doch neu baut (neues Abbild, geaenderte
Konfiguration): das Skript merkt sich die Container-ID vorher und nachher. Hat
sie sich geaendert, raeumt es die gemerkten UDP-Stroeme selbst weg —
`sudo -n conntrack -D -p udp --dport <port>`, und wenn es das nicht darf, steht
der Befehl als Warnung im Protokoll statt gar nichts.

Dieser Handgriff war bisher muendliche Ueberlieferung. Ohne ihn zeigen die
gemerkten Stroeme weiter auf den alten Container, und sie verfallen nicht:
WireGuard schickt alle 25 Sekunden ein Lebenszeichen und haelt den kaputten
Eintrag am Leben. Genau deshalb kam ein Telefon nach Aus- und Einschalten sofort
zurueck (neuer Quellport) und ein Host mit festem Port ueberhaupt nicht.

Ein Test haelt beides fest: queue-provisioning darf nicht in der Neustart-Liste
stehen, und der conntrack-Griff muss im Skript bleiben.

2509 Tests gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-03 07:09:12 +02:00
..
bootstrap Codex-Runde 2: der Gateway-Fix erreichte den Produktivpfad nicht 2026-08-01 13:34:12 +02:00
caddy Create the file the import needs, instead of writing that something else does 2026-07-30 23:35:13 +02:00
lib Stop the update agent dying on its own tag arithmetic 2026-07-29 00:00:17 +02:00
clupilot.env.example Show times on the operator's clock, keep storing them in UTC 2026-07-27 17:32:21 +02:00
install-agent.sh Create the file the import needs, instead of writing that something else does 2026-07-30 23:35:13 +02:00
install.sh Deploy as the application's user, and take back what root already took 2026-07-28 22:52:09 +02:00
update-agent.sh Manage hostnames and watch their certificates from the console 2026-07-30 22:55:55 +02:00
update.sh Ein Update fasst den Tunnel nicht mehr an 2026-08-03 07:09:12 +02:00