upgrade-stack

Plans upgrades for manually-managed Docker containers with dependency checking and breaking change analysis.

Updated Dec 22, 2024
One-click install
npx skills add https://github.com/jkrumm/homelab --skill upgrade-stack-jkrumm
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: upgrade-stack
Source: https://github.com/jkrumm/homelab/tree/main/.claude/skills/upgrade-stack
Command: npx skills add https://github.com/jkrumm/homelab --skill upgrade-stack-jkrumm

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Upgrading pinned Docker containers in a homelab stack is risky: databases like Postgres are shared across applications, schema migrations are irreversible, and sidecar versions must match the app release they support. This Skill researches versions, analyzes breaking changes, and produces a safe upgrade plan with backups and rollback steps before you touch anything. ## Core Features & Use Cases - Version Discovery & Research: Parses docker-compose.yml for containers opted out of Watchtower, then queries GitHub releases and registries for latest stable versions and security advisories. - Shared Infrastructure Awareness: Checks compatibility of shared databases (Postgres, Valkey) against dependent apps like Immich, and reconciles Karakeep's pinned Meilisearch and Chrome sidecars to the app release. - Structured Upgrade Plans: Generates upgrade order, verified backup commands, rollback procedures, and post-upgrade verification checks. - Use Case: Before bumping Immich from v3.1.0, run the skill to confirm Postgres compatibility, diff upstream compose files between tags, take a verified database dump, and get exact tag-edit and rollback instructions. ## Quick Start Ask the assistant to check all manually-managed containers for available upgrades and produce an upgrade plan for the Immich stack.

Frequently Asked Questions about upgrade-stack

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I safely upgrade Docker containers that Watchtower doesn't manage?▼

Identify containers with the Watchtower disable label, research release notes for breaking changes, verify shared database compatibility, take a verified backup, then update image tags in docker-compose.yml and recreate. This skill automates the research and planning steps.

How to upgrade Immich without losing photos or breaking the database?▼

Immich downgrades are unsupported and schema migrations are irreversible, so take a verified pg_dump before any major bump. Edit both server and machine-learning tags to match, never change the upload mount path, and confirm the mount verification log line after upgrading.

Does upgrading Postgres affect other applications using it?▼

Yes, upgrading a shared Postgres instance affects every dependent application. Immich requires Postgres version 14 through 18, so the skill checks each dependent's version range and flags incompatibilities before you proceed.

How do I match Karakeep Meilisearch and Chrome sidecar versions?▼

Read the Karakeep release's docker-compose.yml at its git tag, which pins the exact Meilisearch and Chrome versions tested against that app release. Match your sidecar pins to those values, and prefer wiping the Meili volume and re-indexing over in-place migration.

Why is a file in a backup directory not proof of a working backup?▼

A raw copy of a running database's data directory is never restorable. Verify backups by testing decompression, checking the dump completion marker, confirming offsite storage in restic, and comparing row counts against the live database.

When should I not use this upgrade planning approach?▼

Do not use it for containers auto-updated by Watchtower, such as Caddy or the Karakeep web app on floating release tags. It also never executes upgrades itself; you review the plan and apply changes manually.