Commit graph

24 commits

Author SHA1 Message Date
Maddox
38d8a72e41 Phase 3: Migrate karakeep stack to databases
- Add docker-compose.yml with web, meilisearch, chrome, ollama services
- Add deploy-karakeep.yml Ansible playbook
- Karakeep web on port 3054, meilisearch on 7700, ollama on 11434
- Fixed ollama CPU limit for 2-core VM
- Migrated data (bookmarks, assets, llama3.2:3b model) from alien

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:44:47 +00:00
Maddox
0e3d0e3228 Phase 3: Migrate mixarr stack to replicant
- Add docker-compose.yml with MySQL, Redis, API, and Web services
- Add deploy-mixarr.yml Ansible playbook
- Services running on ports 3005 (API) and 3006 (Web)
- Migrated from alien to replicant VM

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:01:27 +00:00
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
77b153a054 Phase 2 Batch 2: tinymediamanager, autoscan, channeltube, dispatcharr → replicant 2026-01-26 23:34:49 +00:00
Maddox
45aee7ecce Migrate watchstate + jellyseerr to replicant 2026-01-26 12:09:57 +00:00
Maddox
6b36ff0dc2 Fix UniFi playbook paths: /root/docker -> /home/docker 2026-01-26 00:08:23 +00:00
Maddox
182ef9ca12 UniFi: Switch to host networking with extra_hosts for MongoDB 2026-01-25 23:57:03 +00:00
Maddox
575e6b7e21 Phase 2: migrate calibre stack + audiobookshelf 2026-01-25 22:06:42 +00:00
Maddox
d8b21df92b Migrate ntfy to network-services (.121) 2026-01-25 20:02:22 +00:00
Maddox
17450c4b65 Add hetzner host im (192.168.12.3) to inventory 2026-01-25 16:26:03 +00:00
Maddox
e8d2cd68a0 Deploy homepage to replicant 2026-01-24 22:51:13 +00:00
Maddox
8ae030c00a Migrate Unifi to local storage
Changed volumes from NFS (/mnt/nas/docker/unifi) to local (/home/docker/appdata/unifi)
- Faster performance, no NFS dependency
- Data copied from NAS to local disk
2026-01-24 21:52:30 +00:00
Maddox
ee7c9937b9 Remove deprecated MongoDB compose from databases VM
Unifi stack runs entirely on network-services (.121) now
2026-01-24 21:45:34 +00:00
Maddox
8b46587b01 Add Unifi migration to network-services
- compose-files/network-services/unifi: Full stack (MongoDB + Unifi app)
- compose-files/databases/mongodb: Deprecated, kept for reference
- playbooks/deploy-unifi-local.yml: Local deployment with resource limits
- playbooks/migrate-unifi.yml: Original migration playbook (deprecated)

Stack runs locally on network-services (.121) with:
- unifi-db: MongoDB 4.4.29 (512M/1CPU)
- unifi: Network Application (1G/1CPU)
- Proper labels for autoheal and watchtower
2026-01-24 21:28:38 +00:00
Maddox
383e803c5d Update configs: pve-dell → pve-z620 (hardware replacement) 2026-01-24 16:59:01 +00:00
Maddox
101301e11b added in partial resource limits 2026-01-24 14:45:54 +00:00
Maddox
d06e31a9a5 some updates 2026-01-24 01:40:19 +00:00
56df1ec12c Update docs/control-server-guide.md 2026-01-24 01:35:56 +00:00
Maddox
11de6d93cb Move mealie under databases folder (host-based structure) 2026-01-23 23:13:22 +00:00
Maddox
4862e9ec06 Add Mealie deployment playbook and compose file 2026-01-23 23:03:19 +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
Maddox
4cb3a41f1c Add control server operations guide 2026-01-23 18:47:58 +00:00
Maddox
14f6348bf4 Initial cluster configuration 2026-01-23 14:36:08 +00:00