Commit Graph

1 Commits (2b79a6a2baf957d2a04044c429ad14d41f7dc192)

Author SHA1 Message Date
nexxo 2b79a6a2ba Der Tunnel haengt nicht mehr an einem huebschen Namen und nicht an einem Arbeiter
tests / pest (push) Failing after 9m49s Details
tests / assets (push) Successful in 26s Details
tests / release (push) Has been skipped Details
Zwei Ursachen, eine davon habe ich mit v1.4.2 selbst gelegt.

1. DER NETZ-ALIAS. Damit in docker/nginx/default.conf `terminal:8082` stehen
   konnte statt des Namens des Nachbarcontainers, bekam queue-provisioning einen
   Eintrag unter `networks: aliases:`. Das ist Teil seiner NETZKONFIGURATION —
   und Compose baut einen Container neu, sobald die sich aendert. Neu gebaut
   heisst neue Adresse im Compose-Netz, heisst neu geschriebene
   Weiterleitungsregeln fuer den veroeffentlichten UDP-Port 51820. Auf dem liegt
   jede bestehende WireGuard-Sitzung.

   Der Preis fuer einen sprechenderen Namen in einer Konfigurationszeile war
   also ein Abriss saemtlicher Tunnel beim Ausrollen — der des Betreibers am
   Telefon wie der jedes Hosts. Alias entfernt, nginx spricht die Bruecke unter
   `queue-provisioning:8082` an. Nachgemessen: danach laesst `docker compose
   up -d` den Tunnel-Container unangetastet, und nginx erreicht die Bruecke
   weiterhin (426 statt 502).

2. DER ARBEITER ALS PROZESS 1. wg0 stand im Namensraum von queue-provisioning,
   und dessen Prozess 1 war `exec php artisan queue:work provisioning`. Endete
   der Arbeiter, endete der Container — und mit ihm der Namensraum und jede
   Sitzung darin. Ein Arbeiter endet oefter, als man denkt: `--timeout=2100`
   beendet ihn bei einem langen Provisionierungs-Schritt, ein fataler Fehler
   beendet ihn, ein Speicherlimit beendet ihn, `queue:restart` beendet ihn
   absichtlich. Aus jedem dieser vier Faelle wurde bisher "das VPN ist
   unzuverlaessig".

   Der Rumpf liegt jetzt in docker/provisioning-worker.sh: wg0 einmal hochziehen,
   danach den Arbeiter in einer Schleife halten, SIGTERM sauber weiterreichen.
   Nachgemessen: Arbeiter getoetet -> Container hat NULL Neustarts, wg0 steht
   weiter, Arbeiter ist von allein wieder da.

Beide Male bleibt der Netz-Namensraum stehen. Damit verschwindet nebenbei auch
der Grund, aus dem update.sh die Bruecke hinterher neu starten musste — die
Zeile bleibt trotzdem, sie kostet nichts und traegt den Fall, dass der Container
doch einmal neu gebaut wird.

NICHT GETAGGT, mit Absicht: diese Aenderung fasst genau das an, was den Zugang
des Betreibers traegt. Sie gehoert ausgerollt, wenn jemand davorsitzt und die
Konsole des Anbieters als Rueckfahrkarte hat — nicht unbeaufsichtigt vom
Update-Agenten, waehrend der Betreiber unterwegs ist.

2508 Tests gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 22:58:28 +02:00