Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"permissions": {
"allow": [
"Bash(git -C /home/jalance/Projects/docker-services log --all --oneline)",
"Bash(git -C /home/jalance/Projects/docker-services log --pretty=format:\"%h %s\" -20)",
"Bash(docker compose pull:*)",
"Bash(docker compose:*)",
"Bash(docker logs:*)",
"Bash(docker exec:*)",
"Bash(curl:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git push)",
"Bash(docker pull:*)",
"Bash(docker ps:*)",
"Bash(git checkout:*)",
"Bash(git pull:*)",
"WebFetch(domain:doc.traefik.io)",
"WebSearch",
"Bash(du:*)",
"Bash(ls:*)",
"Bash(wc:*)",
"Bash(docker inspect:*)",
"Bash(git ls-tree:*)",
"Bash(.git/hooks/pre-commit)",
"Bash(git -C /home/jalance/Projects/docker-services status)",
"Bash(git -C /home/jalance/Projects/docker-services log --oneline -5)",
"Bash(git -C /home/jalance/Projects/docker-services diff docker-compose.yml)",
"Bash(git -C /home/jalance/Projects/docker-services log --oneline -3)",
"WebFetch(domain:github.com)",
"Bash(python3:*)",
"Bash(docker stats:*)",
"Bash(./scripts/validate-traefik.sh:*)",
"Bash(git -C /home/jalance/Projects/docker-services diff TODO progress.md)",
"WebFetch(domain:traefik.io)",
"Bash(git -C /home/jalance/Projects/docker-services log master..traefikv3 --oneline)",
"WebFetch(domain:docs.linuxserver.io)",
"WebFetch(domain:trash-guides.info)",
"Bash(read f:*)"
]
}
}
1 change: 1 addition & 0 deletions GEMINI.md
56 changes: 56 additions & 0 deletions TODO-local-configs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Fix SQLite-over-NFS Crashes

Sonarr and Radarr are experiencing recurring SQLite `disk I/O error` crashes because their
databases live on NFS. The fix is to move ALL service configs (~85GB) to local NVME storage
and rsync to Synology NAS every 4 hours.

> Detailed plan: `.claude/plans/typed-wondering-hennessy.md`

---

## Step 1: Create Feature Branch & Scripts

- [ ] Create feature branch (e.g. `migrate-configs-to-local`)
- [ ] Create `scripts/migrate-nfs-to-local.sh` — one-time rsync from NFS to local
- [ ] Create `scripts/backup-configs.sh` — recurring rsync from local to NFS (every 4 hours via cron)

## Step 2: Modify docker-compose.yml

- [ ] Remove 16 NFS config volume definitions (lines 29-108)
- [ ] Remove dead `traefik_acme_config` NFS volume definition
- [ ] Keep media NFS volumes (video, audiobooks, music, photo, ebooks, downloads)
- [ ] Switch all 15 services from named volumes to `$LOCALDOCKERDIR` bind mounts

## Step 3: Update env.example

- [ ] Clarify `LOCALDOCKERDIR` = local config storage (e.g. `/usr/local/docker`)
- [ ] Clarify `DOCKERDIR` = NFS mount, now backup destination only (e.g. `/mnt/docker`)

## Step 4: Migration Execution (requires downtime)

- [ ] `docker compose down`
- [ ] Create local directories under `$LOCALDOCKERDIR`
- [ ] Set ownership: `chown -R $PUID:$PGID $LOCALDOCKERDIR/`
- [ ] Run migration script (rsync NFS → local, ~85 GB)
- [ ] Deploy updated docker-compose.yml
- [ ] Remove old Docker named volumes
- [ ] `docker compose up -d`
- [ ] Verify each service has data intact
- [ ] Install host cron job for backup script

## Step 5: Update CLAUDE.md

- [ ] Update Storage Strategy section
- [ ] Update Adding New Services section to use `$LOCALDOCKERDIR` bind mounts
- [ ] Document backup script and cron schedule

## Verification

- [ ] Each service's web UI loads with data intact
- [ ] `scripts/validate-traefik.sh` passes
- [ ] NFS backup directories updating after first cron run
- [ ] No SQLite I/O errors after 24-48 hours

## Rollback

If something goes wrong: revert docker-compose.yml to NFS volumes — original NFS data is untouched.
26 changes: 0 additions & 26 deletions docker-gc/Dockerfile

This file was deleted.

26 changes: 0 additions & 26 deletions docker-gc/cleanup.sh

This file was deleted.

Loading