legacy-arrflix/docs/32-dev-container-wipe-2026-05-11.md
s8n c391447a9f
Some checks are pending
secret-scan / gitleaks (HEAD + history) (push) Waiting to run
secret-scan / detect-secrets (entropy + cross-tool) (push) Waiting to run
secret-scan / summary (push) Blocked by required conditions
doc 32: wipe jellyfin-dev container + config (200MB)
2026-05-11 17:28:43 +01:00

3.7 KiB

32 — jellyfin-dev container wipe (2026-05-11)

Cleanup of the idle jellyfin-dev instance on nullstone. This was the scratch container used for the scyfin theme experiment + the 10.11.8 dev upgrade documented in docs/29-jellyfin-10.11-upgrade-and-scyfin-migration.md. The experiment is concluded; prod is being upgraded by a parallel agent and jellyfin-stock (tv.s8n.ru) covers the stock build, so dev has no remaining role.

Pre-wipe state

$ docker ps -a --filter name=jellyfin-dev
CONTAINER ID   IMAGE                       STATUS                  NAMES
ecf97cddba6c   jellyfin/jellyfin:10.11.8   Up 14 hours (healthy)   jellyfin-dev

$ ls -la /opt/docker/jellyfin-dev/
-rw-r--r-- 1 user user 1898 docker-compose.yml
-rw-r--r-- 1 user user 1799 docker-compose.yml.bak.1778243059
drwxrwxr-x 3 user user 4096 web-overrides/

$ ls -la /home/docker/jellyfin-dev/  (via privileged alpine, userns=host)
drwxr-xr-x 5 1000 1000 cache/
drwxr-xr-x 8 1000 1000 config/
total: 200 MB

$ grep -lr "jellyfin-dev\|dev.arrflix" /opt/docker/traefik/config/
(no matches — routing was via docker-provider labels only)

$ df -h /home
/dev/mapper/keystone--vg-home  399G  284G   96G  75%

Actions

  1. docker stop jellyfin-dev && docker rm jellyfin-dev — container removed.
  2. Privileged-alpine wipe of /home/docker/jellyfin-dev/ (uid 1000 inside userns-remap, owner 100000:100000 on host — host user can't rm it directly, hence the --userns=host container):
    docker run --rm --userns=host -v /home/docker:/d alpine \
      rm -rf /d/jellyfin-dev
    
  3. rm -rf /opt/docker/jellyfin-dev/ — compose file + web-overrides gone (owned by user, plain rm sufficient).
  4. Traefik docker-provider router vanished with the container — no file-provider yaml to clean up (verified via grep).

Post-wipe verification

$ docker ps -a --filter name=jellyfin-dev          # empty
$ ls /opt/docker/jellyfin-dev                       # ENOENT
$ ls /d/jellyfin-dev (in alpine)                    # ENOENT
$ curl -sk -o /dev/null -w "%{http_code}\n" \
    https://dev.arrflix.s8n.ru/                     # 404 (Traefik, no backend)
$ ls /home/docker | grep jellyfin                   # jellyfin, jellyfin-stock only
$ ls /opt/docker | grep jellyfin                    # jellyfin, jellyfin-stock only

Prod (jellyfin at arrflix.s8n.ru) and stock (jellyfin-stock at tv.s8n.ru) were both untouched and continue to serve traffic.

What was kept

  • /home/user/snapshots/jellyfin-dev-pre-1011-upgrade-20260511-033309.tar.zst (143 MB) — pre-upgrade rollback point.
  • /home/user/snapshots/jellyfin-dev-post-10107-20260511-033839.tar.zst (144 MB) — post-rollback snapshot from earlier today. Both stay in place as historical artefacts.
  • Pi-hole local-DNS pin dev.arrflix.s8n.ru -> 192.168.0.100 — harmless, resolves to Traefik which now 404s. Left alone.
  • LE certificate for dev.arrflix.s8n.ru in traefik/acme.json — left alone; reusable if dev is ever rebuilt.

Disk reclaimed

before: 96G avail
after:  96G avail   (200 MB freed; below `df -h` rounding granularity
                     on a 399 GB volume)

du -sh /home/docker/jellyfin-dev reported 200 MB pre-wipe, so the freed-space figure is exact even though df -h can't resolve it.

Rebuild path (if ever needed)

  1. Restore /home/docker/jellyfin-dev/ from one of the snapshots in /home/user/snapshots/.
  2. Recreate /opt/docker/jellyfin-dev/docker-compose.yml from docs/29-jellyfin-10.11-upgrade-and-scyfin-migration.md (compose block is inline in that doc).
  3. docker compose up -d — Traefik docker-provider re-attaches the router automatically, LE cert is already in acme.json so no fresh challenge needed.