diff --git a/docs/superpowers/plans/2026-04-01-docker-redeployment.md b/docs/superpowers/plans/2026-04-01-docker-redeployment.md new file mode 100644 index 0000000..bd623bd --- /dev/null +++ b/docs/superpowers/plans/2026-04-01-docker-redeployment.md @@ -0,0 +1,61 @@ +# Docker Service Redeployment Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Redeploy Docker services on `docker-host11` to update Jellyfin to version 10.11 and Gitea to version 1.24-rootless. + +**Architecture:** Use the existing Ansible `docker.yaml` playbook and `docker_host` role to update the `compose.yaml` template on the target host, which triggers handlers to restart and recreate the containers with new images. + +**Tech Stack:** Ansible, Docker, Docker Compose, Jinja2. + +--- + +### Task 1: Verify Host Connectivity + +**Files:** +- Read: `vars/docker.ini` + +- [ ] **Step 1: Run Ansible ping to verify connectivity** + +Run: `ansible -i vars/docker.ini docker_host -m ping` +Expected: `docker-host11 | SUCCESS => {"ping": "pong"}` + +- [ ] **Step 2: Check current running versions (baseline)** + +Run: `ansible -i vars/docker.ini docker_host -m shell -a "docker ps --format '{{.Names}}: {{.Image}}'"` +Expected: `jellyfin: jellyfin/jellyfin:10.10` and `gitea: gitea/gitea:1.23-rootless` (or currently running versions). + +### Task 2: Execute Redeployment Playbook + +**Files:** +- Read: `playbooks/docker.yaml` +- Read: `vars/group_vars/docker/docker.yaml` (already modified with new versions) + +- [ ] **Step 1: Run the full Docker deployment playbook** + +Run: `ansible-playbook -i vars/docker.ini playbooks/docker.yaml` +Expected: Playbook completes with `changed` for the `docker_host` role (template task) and `ok` for others. + +- [ ] **Step 2: Commit changes to the repository** + +```bash +git add vars/group_vars/docker/docker.yaml +git commit -m "chore: update jellyfin to 10.11 and gitea to 1.24-rootless" +``` + +### Task 3: Verify Post-Deployment State + +**Files:** +- N/A + +- [ ] **Step 1: Verify new versions are running** + +Run: `ansible -i vars/docker.ini docker_host -m shell -a "docker ps --format '{{.Names}}: {{.Image}}'"` +Expected: +- `jellyfin: jellyfin/jellyfin:10.11` +- `gitea: gitea/gitea:1.24-rootless` + +- [ ] **Step 2: Verify container health status** + +Run: `ansible -i vars/docker.ini docker_host -m shell -a "docker ps --format '{{.Names}}: {{.Status}}'"` +Expected: Both containers show `Up` and `(healthy)` (if healthchecks are active).