1. Pangolin Pre-Update Requirements#

Update Record — 2026-10-02#

  • Target: RackNerd RN-VPS (72.11.147.220), stack /home/marc/docker-compose/pangolin.
  • Used the successful pre-update backup on LXC 102: /home/vps-backup/Backups/2026-10-02_08h27_PangolinBackup.tar.gz; gzip integrity and database/configuration entries were verified.
  • Updated Pangolin 1.21.1 → 1.22.2 → 1.23.0 → 1.24.0. Each stage passed Compose readiness checks and dashboard HTTP 200; final migrations completed successfully.
  • Updated Gerbil to 1.5.2, Newt to 1.18.0, Traefik to v3.7.13, and pinned CrowdSec to v1.8.1. Rebuilt the custom GoAccess image from its existing inline Dockerfile with a fresh base image; verified GoAccess 1.12.
  • Updated Badger to v1.7.0 and the CrowdSec Traefik plugin to v1.7.1 in the active config/traefik/traefik.yaml. Automatic Badger migration skipped the nonstandard filename; the explicit update is present.
  • Retained docker-compose.yml.before-2026-10-02-update and config/traefik/traefik.yaml.before-2026-10-02-update on the VPS. Database rollback requires the pre-update backup, not just older images.
  • Verification limitation: Homelab site is online, but RN VPS site is offline. The local Newt connector repeatedly receives HTTP 400 No newt found with that newtId. Testing the original Newt 1.15.0 produced the same rejection; restored 1.18.0. Its registration requires investigation without exposing credentials. No site registrations or credentials were changed. Full routed-resource functionality has not been verified.
  • Follow-up resolved: after the user restarted using their 1p alias, Newt 1.18.0 logged Websocket connected at 12:45:09 UTC. Both RN VPS and Homelab sites were verified online and approved; all six stack containers were running, Pangolin and CrowdSec were healthy, and the dashboard returned HTTP 200. No credential values were inspected during this follow-up. Individual routed resources remain untested.

1.1. Backup Data#

Always backup your data before updating. Copy your config directory to a safe location to allow for a rollback if necessary.

1.2. Version Strategy#

Update incrementally between major versions (e.g., 1.0.0 → 1.1.0 → 1.2.0) rather than skipping major releases.


2. Update Process#

2.1. Stop the Stack#

Stop all running containers:

sudo docker compose down

2.2. Check Latest Versions#

Before editing your configuration, verify the current stable release versions for each component:


2.3. Update Configuration#

Edit your docker-compose.yml and config/traefik/traefik_config.yml files with the latest version numbers.

docker-compose.yml

services:
  pangolin:
    image: fosrl/pangolin:1.7.3 # Update to latest
  gerbil:
    image: fosrl/gerbil:1.2.1   # Update to latest
  traefik:
    image: traefik:v3.4.0       # Update if needed

traefik_config.yml

experimental:
  plugins:
    badger:
      moduleName: [github.com/fosrl/badger](https://github.com/fosrl/badger)
      version: v1.3.0 # Update to latest

2.4. Apply Updates#

Pull the new images and start the stack:

sudo docker compose pull
sudo docker compose up -d

2.5. Monitor and Verify#

Check the logs to ensure the migration scripts and services start correctly:

sudo docker compose logs -f