Skip to content

panel: upgrade Traefik version from Settings → Web Server - #22

Closed
pipozzz wants to merge 1 commit into
mainfrom
feat/panel-traefik-upgrade
Closed

pipozzz wants to merge 1 commit into
mainfrom
feat/panel-traefik-upgrade

Conversation

@pipozzz

@pipozzz pipozzz commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

What

Adds the ability to upgrade Traefik from the panel (Settings → Web Server → new "Traefik Version" card).

Traefik's version was hardcoded (TRAEFIK_VERSION = env or default 3.6.7). Now it's stored in a small on-disk file (traefik-version, next to traefik.yml), read by both deploy paths — the main control-plane container (initializeStandaloneTraefik) and the HA pool Nomad job (generateTraefikHaJob) — falling back to env/default when absent, so default behavior is unchanged.

How

  • traefik-setup.ts: getTraefikVersion() / setTraefikVersion() (semver-validated, on-disk file); imageName now resolves via getTraefikVersion().
  • traefik-ha.ts: HA job image uses getTraefikVersion().
  • settings.ts: getTraefikVersion (query) + upgradeTraefik (adminProcedure) — persists the version, then in the background recreates the main container on the new image and re-registers the HA pool (best-effort); audited.
  • UI: web-server/upgrade-traefik.tsx — current version + target input + Upgrade button behind a confirm dialog warning that it briefly interrupts ingress (pull + recreate).

Notes

  • The upgrade recreates Traefik → a short ingress blip (dialog warns). Same class as the panel-roll cutover; acceptable for an occasional, deliberate upgrade.
  • No DB migration (on-disk file, consistent with traefik.yml/acme.json).

Validation

scripts/check.sh green (server build, 529 tests, app-tsc unchanged / 8 pre-existing). Not yet live-tested — recommend merging, rolling, then trying an upgrade from the UI.

🤖 Generated with Claude Code

Traefik's version was hardcoded (env TRAEFIK_VERSION or default 3.6.7), so
upgrading meant redeploying nomploy. Store the version in a small on-disk file
(traefik-version, next to traefik.yml) that both deploy paths read — the main
control-plane container (initializeStandaloneTraefik) and the HA pool job
(generateTraefikHaJob) — falling back to env/default when absent, so default
behavior is unchanged.

Add settings.getTraefikVersion (query) + settings.upgradeTraefik (adminProcedure:
persist the version, then in the background recreate the main container on the
new image and re-register the HA pool; audited). New 'Traefik Version' card in
Settings → Web Server shows the current version and upgrades with a confirm
dialog warning that it briefly interrupts ingress.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions github-actions Bot closed this Oct 6, 2026
@pipozzz pipozzz reopened this Oct 6, 2026
@github-actions github-actions Bot closed this Oct 6, 2026
pipozzz added a commit that referenced this pull request Oct 6, 2026
panel: upgrade Traefik version from Settings → Web Server
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant