Commit Graph
40 Commits
Author SHA1 Message Date
PhilandClaude Opus 5.5 e569a56417 Reserve fixed IPs on the lava network so Caddy can always start
lava was created by hand without an ip_range, so any container could be
given Caddy's fixed IP (172.20.0.5). After a reboot the containers race
for the low addresses and Caddy often fails with "Address already in use".

- The docker role now creates lava as 172.20.0.0/16 with dynamic
  addresses limited to 172.20.128.0/17, so 172.20.0.x is free for fixed
  IPs, and warns if the network still has the old layout.
- Gitea gets fixed IP 172.20.0.6 once the network has the reserved range,
  since its ufw-docker SSH rule points at its IP.
- ufw-docker allow rules for Caddy (80, 443) and Gitea SSH are managed by
  the playbook and follow IP changes.
- migrate-lava-network.yml recreates the existing network once: it takes
  down every compose project on lava (volumes kept), recreates the
  network, and brings them back up, Caddy first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 21:04:22 -06:00
PhilandClaude Opus 5.5 c0145dd5a2 Harden permissions, close exposed ports, and clean up tasks
- Quote file modes. Unquoted 644/755 were read as decimal, so files
  landed as 1204. Templates holding secrets are now 0640 root:docker.
- Stop publishing Authentik 9000/9443 and Karakeep 3000 (Caddy reaches
  them over the docker network), bind dir2opds to the Tailscale IP, and
  drop Caddy's unused 8448.
- Atuin login uses no_log and only runs once; the installer only runs
  when Atuin is missing.
- Make chsh, ufw-docker install, the bat symlink and Atuin dotfiles
  idempotent.
- Back up the Paperless data volume (SQLite DB), stopping Paperless
  during the backup.
- Close public sign-up on kosync and ByteStash.
- Replace hardcoded IPs and domains with variables.
- Remove teardown tasks and templates for 9 retired services.
- Fix the dockcheck comment: it auto-updates labelled containers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 21:03:54 -06:00
Phillip SkentelberyandClaude Opus 4.6 b92b18d9fb add services tag to run all docker service tasks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 14:14:10 -06:00
philandClaude 2e4c096bbe feat: complete variable management implementation and update documentation
- Update remaining Docker Compose templates with centralized variables
- Fix service tag isolation to deploy individual services only
- Update all README files with variable management architecture
- Document variable hierarchy in DEPLOYMENT_LEARNINGS.md
- Add comprehensive variable usage patterns to CLAUDE.md
- Standardize domain references using {{ subdomains.* }} pattern
- Replace hardcoded network names with {{ docker.network_name }}
- Update hairpinning configuration to use variables

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 15:45:52 -06:00
philandClaude 06a7889024 feat: migrate Hoarder to Karakeep bookmark manager
Complete migration from discontinued Hoarder to actively maintained Karakeep:

## Service Updates
- Update Docker image: ghcr.io/hoarder-app/hoarder → ghcr.io/karakeep-app/karakeep
- Update environment variables: HOARDER_VERSION → KARAKEEP_VERSION
- Upgrade Meilisearch: v1.6 → v1.13.3 for better search performance
- Update Glance labels and service references to Karakeep

## Data Preservation
- Maintain same domain: bookmarks.thesatelliteoflove.com
- Preserve volume structure: data and meilisearch volumes unchanged
- Keep directory structure: /opt/stacks/hoarder/ for continuity
- Maintain container naming for Caddyfile compatibility

## Meilisearch Migration
- Resolved database version incompatibility (v1.6.2 → v1.13.3)
- Backed up old database and created fresh v1.13.3 compatible database
- Manual reindex required via Admin Settings > Background Jobs

## Documentation Updates
- Update all service references from Hoarder to Karakeep
- Add both 'hoarder' and 'karakeep' tags for deployment flexibility
- Maintain backwards compatibility for existing automation

## Benefits
- Access to latest Karakeep features and security updates
- Continued development support (Hoarder discontinued)
- Improved search performance with Meilisearch v1.13.3
- Zero data loss during migration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 14:15:36 -06:00
philandClaude 68f0276ac0 feat: complete infrastructure cleanup and optimization
This comprehensive update improves maintainability and removes unused services:

## Major Changes
- Remove 5 unused services (beaver, grist, stirlingpdf, tasksmd, redlib)
- Convert remaining static compose files to Jinja2 templates
- Clean up Caddyfile removing orphaned proxy configurations
- Align DNS records with active services

## Service Cleanup
- Remove habits.thesatelliteoflove.com DNS record (beaver service)
- Add missing DNS records for active services:
  - post.thesatelliteoflove.com (Postiz)
  - files.thesatelliteoflove.com (Pingvin Share)
  - bookmarks.thesatelliteoflove.com (Hoarder)

## Template Standardization
- Convert caddy-compose.yml to template
- Convert dockge-compose.yml to template
- Convert hoarder-compose.yml to template
- All services now use consistent template-driven approach

## Documentation Updates
- Update CLAUDE.md with new service organization
- Update README.md files with category-based deployment examples
- Update todo.md with completed work summary
- Service count updated to 22+ active services

Infrastructure is now fully organized, cleaned up, and ready for future enhancements.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 12:16:44 -06:00
philandClaude d4bec94b99 refactor: reorganize docker role into logical service groups
Break down the monolithic main.yml (176 lines) into organized service categories:

- infrastructure/ (caddy, authentik, dockge) - Core platform components
- development/ (gitea, codeserver, conduit) - Development tools
- media/ (audiobookshelf, calibre, ghost, pinchflat, etc.) - Content services
- productivity/ (paperless, baikal, syncthing, mmdl, etc.) - Personal organization
- monitoring/ (glance, changedetection, appriseapi) - System monitoring
- communication/ (gotosocial, postiz) - Social/messaging services

Benefits:
- Improved maintainability with logical grouping
- Better dependency management between service categories
- Enhanced tag-based deployment (can deploy by category)
- Cleaner organization for 25+ services

All individual service tags remain functional for backwards compatibility.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 11:50:26 -06:00
philandClaude 1280bba7ff add MMDL task management service deployment
- Add MMDL (Manage My Damn Life) task and calendar management service
- Configure NextAuth with Authentik OIDC integration
- Use MySQL 8.0 with proper authentication plugin
- Include Glance dashboard integration
- Add to main docker deployment pipeline

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 10:49:49 -06:00
phil 37f47a4cf3 add manyfold to stack 2025-03-14 14:23:56 -06:00
phil e8c9d42b77 add pinchflat to stack 2025-02-28 12:28:17 -07:00
phil 1271fdc2ce add tag for dockge 2025-02-28 12:27:46 -07:00
phil 12a664415d add apprise api to stack 2025-02-28 12:27:29 -07:00
phil d2d0accd2c Add conduit to stack 2025-02-28 12:24:23 -07:00
phil 6620fe6a86 add change detection 2025-02-09 15:44:05 -07:00
phil 27564a35e4 add beaver to stack 2025-01-04 11:38:36 -07:00
phil 0f33ce5013 remove unused apps from stack 2025-01-04 09:17:13 -07:00
phil a97c37d8d4 add dawarich to stack 2025-01-04 09:16:27 -07:00
phil c8f22f83e2 add ghost to stack for phlog 2025-01-04 09:09:47 -07:00
phil c986c82aa3 add syncthing to stack 2024-12-26 18:28:37 -07:00
phil d2030c4b8d added baikal to stack 2024-12-10 07:05:55 -07:00
phil d6505d896c added codeserver to stack 2024-12-03 17:56:24 -07:00
phil ba5bc3b1cd add heyform to stack 2024-11-11 11:58:14 -07:00
phil 84d4f44a70 added paperlessngx to stack 2024-11-07 09:29:59 -07:00
phil b47fc8657d Add calibre and calibre-web to stack 2024-11-01 19:02:45 -06:00
phil 1fe3f7bdd5 added audiobookshelf to stack 2024-10-28 15:17:52 -06:00
phil b67378e3d1 added pinry to stack 2024-10-26 12:07:26 -06:00
phil 2136dbf7d4 added postiz to stack and associated caddy and glance config 2024-10-22 11:24:41 -06:00
phil 2a2120c976 Remove Grist from stack, unused 2024-10-09 12:57:48 -06:00
phil 3a73f85aa1 Added pingvin to stack 2024-10-09 11:40:11 -06:00
phil 50138230b4 Added stirling pdf to stack 2024-09-23 12:19:14 -06:00
phil dce59dad9c Added glance to stack 2024-09-22 08:16:55 -06:00
phil 6d1ebc61d6 fixed formatting and added tags 2024-09-20 16:46:16 -06:00
phil 30b867686d add duf to packages 2024-08-19 15:31:33 -06:00
phil 200c95a753 added zsh install and atuin 2024-08-19 14:03:15 -06:00
phil 5201c967d5 Added tasks.md (and fixed an issue in the grist compose file) 2024-08-16 17:29:38 -06:00
phil 35eeeb39e1 added grist 2024-08-16 11:14:33 -06:00
phil bff9f62093 Added gotosocial and added an attempted fix for the authentik redis nonsense 2024-08-15 09:28:42 -06:00
phil 6b36a66dcc added authentik to ansible 2024-08-14 13:27:05 -06:00
phil 9c7186d602 added hoarder 2024-08-14 09:02:13 -06:00
phil 77ed02f107 initial commit 2024-08-13 20:18:11 -06:00