Three coordinated fixes from the upgrade-flow redesign plan (/home/bunker-admin/.claude/plans/okay-so-we-can-enumerated-hejlsberg.md): 1. scripts/lib/mkdocs-snapshot.sh (NEW): pre-upgrade tarball snapshot of the entire mkdocs/ directory into the install root as mkdocs-backup-<timestamp>.tar.gz. Discoverable via `ls`, retained last 5. No-regrets fallback if anything in the upgrade goes sideways. Sourced by upgrade.sh (and later by image-upgrade.sh under Approach B). 2. scripts/upgrade.sh Phase 6 self-destruct fix: previously, the broad `docker compose up -d` recreated the ccp-agent container that was running the script, sending SIGKILL to the bash process before write_result could land result.json. Marcelle's test upgrade hit this tonight. Fix: temporarily remove `ccp-agent` from COMPOSE_PROFILES during Phase 6's broad up -d, then schedule a detached `nohup ... & disown` restart at the very end of the script (after write_result and archive_success_to_history). The deferred subshell sleeps 3s, then recreates ccp-agent under its profile, picking up the new image. 3. scripts/upgrade-stash-cleanup.sh (NEW): one-shot utility to list and drop accumulated `upgrade-*` git stashes left over by older upgrade.sh runs whose pop failed silently (Pride Corner has three from 2026-03-09 alone). Warns loudly if any stash holds tenant mkdocs.yml content so operators verify recovery before dropping. The .gitignore now excludes /mkdocs-backup-*.tar.gz so the rescue archives don't leak into commits. This is Phase 1 of three: Approach B (image-only upgrade mode) and Approach C (CCP template re-render) follow in subsequent commits. Bunker Admin
98 lines
2.0 KiB
Plaintext
98 lines
2.0 KiB
Plaintext
# Node modules
|
|
node_modules/
|
|
*/node_modules/
|
|
**/node_modules/
|
|
|
|
/configs/code-server/.local/*
|
|
!/configs/code-server/.local/.gitkeep
|
|
|
|
/configs/code-server/.config/*
|
|
!/configs/code-server/.config/.gitkeep
|
|
|
|
/configs/code-server/data/*
|
|
!/configs/code-server/data/.gitkeep
|
|
|
|
# Root assets (generated by containers)
|
|
/assets/
|
|
|
|
# Homepage logs (created by container)
|
|
/configs/homepage/logs/*
|
|
!/configs/homepage/logs/.gitkeep
|
|
|
|
.env
|
|
.env*
|
|
!.env.example
|
|
|
|
/configs/cloudflare/*.json
|
|
/configs/cloudflare/*.yaml
|
|
/configs/cloudflare/*.yml
|
|
|
|
.excalidraw
|
|
|
|
/.VSCodeCounter
|
|
|
|
/influence/app/public/uploadsdata/
|
|
|
|
# NAR data directory (large voter registry files)
|
|
/data/*
|
|
!/data/upgrade/
|
|
/data/upgrade/*
|
|
!/data/upgrade/.gitkeep
|
|
|
|
# Media files (managed by Docker volumes, not git)
|
|
/media/
|
|
|
|
# Nginx generated configs (built from *.template at container startup)
|
|
nginx/conf.d/*.conf
|
|
|
|
# Ansible per-instance override (generated by Bunker Ops)
|
|
docker-compose.override.yml
|
|
|
|
# Build output
|
|
/admin/dist/
|
|
|
|
# Core dumps
|
|
core.*
|
|
*/core.*
|
|
|
|
# MkDocs core binary and container-generated assets (owned by root, not stashable)
|
|
/mkdocs/core
|
|
/mkdocs/assets/
|
|
|
|
# Upgrade artifacts
|
|
/logs/
|
|
/backups/
|
|
.upgrade.lock
|
|
|
|
# Pre-upgrade mkdocs snapshots (created by scripts/lib/mkdocs-snapshot.sh).
|
|
# These are the tenant-content rescue archives written before every upgrade;
|
|
# discoverable in the install root via `ls`. Retention: last 5 (see helper).
|
|
/mkdocs-backup-*.tar.gz
|
|
|
|
# Release tarballs (generated by build-release.sh)
|
|
/releases/
|
|
|
|
# API compiled output (generated by tsc, baked into Docker images)
|
|
/api/dist/
|
|
|
|
# TypeScript incremental build cache (machine-specific)
|
|
*.tsbuildinfo
|
|
|
|
# Control Panel runtime data (managed deployments + backups)
|
|
/changemaker-control-panel/instances/
|
|
/changemaker-control-panel/backups/
|
|
logs/
|
|
|
|
# Playwright MCP browser automation logs
|
|
.playwright-mcp/
|
|
|
|
/docs
|
|
|
|
# MkDocs build cache (regenerated each build)
|
|
/mkdocs/.cache/
|
|
|
|
# Claude scheduler lock file
|
|
.claude/scheduled_tasks.lock
|
|
|
|
# Old release zip archive (no longer tracked, see chore: gitignore hygiene)
|
|
/archive/ |