Vier Minor-Versionen auf einmal; die Migration laeuft beim Start sequenziell durch. Belegt an der Datenbank: 125 -> 141 Tabellen, und zwar genau die Features aus den Release Notes - AI-Gateway (1.22), danach redirects, resourceMtlsCertificates und clientOrgRoles (1.25). Badger absichtlich auf v1.7.0 und NICHT auf v1.8.0: fosrl warnt in den Notes zu 1.25.x, dass v1.8.0 Traefiks Plugin-Integritaetspruefung nicht besteht und das Plugin dadurch abgeschaltet wird (gleiche Ursache wie traefik#13771). Die Migration haette den Wert selbst angehoben, wenn er zu niedrig gewesen waere - deshalb vorher von v1.5.0 auf v1.7.0 gesetzt. Sie hat die Datei auch wirklich angefasst (daher die geaenderten Anfuehrungszeichen bei den Entrypoints, rein kosmetisch), den Wert aber stehen lassen. Traefik musste ohnehin mit: ab 1.25 verlangt Pangolin mindestens 3.6. Vorher die komplette config kalt gesichert (1,4 MB, mit db.sqlite, acme.json, key und config.yml unter /home/lutz/backups). Danach geprueft: alle sechs oeffentlichen Namen antworten wie vorher, das Let's-Encrypt-Zertifikat ist unveraendert (bis 18.12.), 5 Resourcen und 4 Sites stehen wie zuvor in der DB, Gerbil legt wg0 an. Eine Beobachtung, die wie ein Rueckschritt aussieht, aber keiner ist: die Resourcen liefern auf ein nacktes curl jetzt 401 statt 302. Mit einem Browser-Accept-Header kommt weiterhin die 302 auf die Auth-Seite - Badger unterscheidet seit v1.7 zwischen API- und Browser-Anfragen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
55 lines
1.6 KiB
YAML
55 lines
1.6 KiB
YAML
services:
|
|
pangolin:
|
|
image: docker.io/fosrl/pangolin:1.25.3
|
|
container_name: pangolin
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./config:/app/config
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
|
|
interval: "10s"
|
|
timeout: "10s"
|
|
retries: 15
|
|
|
|
gerbil:
|
|
image: docker.io/fosrl/gerbil:1.5.2
|
|
container_name: gerbil
|
|
restart: unless-stopped
|
|
depends_on:
|
|
pangolin:
|
|
condition: service_healthy
|
|
command:
|
|
- --reachableAt=http://gerbil:3004
|
|
- --generateAndSaveKeyTo=/var/config/key
|
|
- --remoteConfig=http://pangolin:3001/api/v1/
|
|
volumes:
|
|
- ./config/:/var/config
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- SYS_MODULE
|
|
ports:
|
|
- "${WG_PORT:-51820}:51820/udp" # WireGuard site tunnels (Newt → Gerbil)
|
|
- "${WG_CLIENT_PORT:-21820}:21820/udp" # WireGuard client tunnels
|
|
- "${HTTPS_PORT:-8443}:443" # HTTPS (Traefik, via gerbil network)
|
|
- "8800:80" # HTTP — Let's Encrypt / redirect (router forwards 80→8800)
|
|
|
|
traefik:
|
|
image: docker.io/traefik:v3.7.16
|
|
container_name: traefik
|
|
restart: unless-stopped
|
|
network_mode: service:gerbil # shares gerbil's network namespace
|
|
depends_on:
|
|
pangolin:
|
|
condition: service_healthy
|
|
command:
|
|
- --configFile=/etc/traefik/traefik_config.yml
|
|
volumes:
|
|
- ./config/traefik:/etc/traefik:ro
|
|
- ./config/letsencrypt:/letsencrypt
|
|
- ./config/traefik/logs:/var/log/traefik
|
|
|
|
networks:
|
|
default:
|
|
driver: bridge
|
|
name: pangolin
|