Commit graph

3 commits

Author SHA1 Message Date
Maddox
800166c2ac Fix download-stack healthchecks to test external connectivity
The localhost healthchecks didn't detect when gluetun's network
namespace died - services still responded locally but couldn't
reach the internet. Changed healthchecks to curl http://1.1.1.1
which requires the VPN tunnel to be working.

Also adds phpmyadmin, phppgadmin compose files and deploy playbook.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:39:36 +00:00
Maddox
394a973d6c Add healthchecks to download-stack, deploy playbook, and mealie resource limits
nzbget and rutorrent share gluetun's network namespace via
network_mode: service:gluetun. When autoheal restarts gluetun,
the dependent containers lose their network and fail silently.

Added healthchecks so autoheal detects and restarts them too:
- nzbget: curl localhost:6789
- rutorrent: curl localhost:80
- depends_on changed to condition: service_healthy

New deploy-download-stack.yml playbook stages startup (gluetun
first, wait for healthy, then dependents) since the LXC host
lacks Python requests for community.docker modules.

Also added resource limits to mealie (512M memory, 1 CPU).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 23:49:12 +00:00
Maddox
ecac3c8949 Add compose file management infrastructure
- collect-compose.yml: Fetches all compose files from docker_hosts
- collect-env-templates.yml: Creates .env.example with secrets redacted
- deploy-compose.yml: Pushes compose files to hosts (with optional restart)
- diff-compose.yml: Shows differences before deploying

Collected 23 compose files from 7 hosts:
- replicant: 12 stacks (arr-stack, mealie, portainer, etc)
- docker666: 4 stacks (unifi, gluetun, uptime, utils)
- databases: 3 stacks (postgres, forgejo, utils)
- download-stack: 2 stacks (download-stack, utils)
- media-transcode: 1 stack (utils)
- network-services: 1 stack (utils)
- immich: 1 stack (utils)
2026-01-23 19:11:23 +00:00