Commit Graph
39 Commits
Author SHA1 Message Date
PhilandClaude Opus 5.5 6dfb58d3f1 Retire Gondulf and move StarPunk to v2.0.0 with Pocket ID login
StarPunk 2.0.0 logs in with Pocket ID and issues its own Micropub tokens
(ADR-064 in the StarPunk repo), so the Gondulf IndieAuth server is no
longer used. Removes its task, templates, Caddy route, subdomain and
service entry, and moves its DNS record to removed_records.

The StarPunk template was still on v1.6.0-rc.2 with Gondulf hairpin
hosts; deploying it would have broken login. It now matches production:
v2.0.0, Pocket ID hairpin, OIDC client from vault_starpunk.pocketid and
the admin sub in starpunk_admin_sub.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:52:07 -06:00
PhilandClaude Opus 5.5 9b9be6a2f0 Retire Authentik now that every app logs in with Pocket ID
All of Authentik's applications (including Tailscale's tailnet login)
have moved to Pocket ID, and its only recent sign-ins were those
handovers. Drops its stack, the auth. route and DNS record, the auth
subdomain variables, Gotify's leftover hairpin entries, and the dockcheck
exclude; the docs now name Pocket ID as the SSO provider.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:07:39 -06:00
PhilandClaude Opus 5.5 e4da4982b7 Remove Sneaky Klaus
It was hand-deployed, had no Caddy route, and nothing used it. Delete
its santa. DNS record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:42:36 -06:00
PhilandClaude Opus 5.5 be9523a0c4 Manage Gondulf and StarPunk with Ansible
Both were hand-deployed to /opt/stacks. Templates match the live setup
and keep the same stack dirs and volume names, so data stays put.
Secrets come from the vault; .env and the StarPunk compose file are now
0640 root:docker instead of the broken 1204 mode. Adds their DNS
records to dns.yml and drops the dead godulf. Caddy route (no DNS).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:42:36 -06:00
PhilandClaude Opus 5.5 6f6a669cf3 Delete the opds. and sync. DNS records
Their services (dir2opds, kosync) were retired in the previous commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:39:19 -06:00
PhilandClaude Opus 5.5 35852ee697 Retire kosync and dir2opds now that Kavita handles both
Kavita's KOReader sync API and OPDS feed replace them, and both readers
(Kindle KOReader, Xteink X4) now point at books.thesatelliteoflove.com.
Drops their stacks, the sync. and opds. routes and DNS records, and the
htpasswd tasks that only existed for dir2opds basic auth.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:33:24 -06:00
PhilandClaude Opus 5.5 6a0819059b Move books. from Calibre-Web to Kavita
Kavita now serves books.thesatelliteoflove.com with Pocket ID login
(password login is off), and the temporary kavita. subdomain is gone.
Calibre-Web's stack is removed; its calibre_books and calibre_config
volumes stay on docker-01 as a fallback for now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:31:14 -06:00
PhilandClaude Opus 5.5 0875389d02 Add guard rails for several agents working on the repo at once
Deploys from unpushed branches were being reverted by the next deploy
from main, and in-place vault edits could overwrite each other.

- deploy-guard.yml (imported by site.yml and dns.yml) refuses real runs
  unless the checkout is clean and exactly origin/main; --check is fine.
- bin/deploy holds a lock so only one deploy runs at a time.
- bin/vault-run edits the vault under a lock with an atomic swap.
- bin/worktree starts a task in a fresh worktree from origin/main.
- CLAUDE.md explains the workflow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 09:29:41 -06:00
PhilandClaude Opus 5.5 5255049c10 Remove the unused Glance dashboard
Drop the Glance stack, its home. route and DNS record, the glance.*
labels on every container, and the Glance restart in the Warhammer
feed cron script. Update docs to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 08:34:14 -06:00
PhilandClaude Opus 5.5 ea3092779c Add Kavita as the new book server
Runs next to Calibre-Web at a temporary kavita. subdomain until it takes
over books. Each book lives in its own folder under
/opt/stacks/kavita/books, because Kavita names a book after its folder.
The admin password is in the vault as vault_kavita.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 08:19:57 -06:00
PhilandClaude Opus 5.5 b363587acf Use a Route53-only IAM user for DNS changes
dns.yml no longer depends on an expiring 'aws login' session. The
ansible_dns user's keys are in vault_aws_dns and can only edit the
thesatelliteoflove.com and nerder.land zones. Also adds the id record.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 08:39:46 -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 Skentelbery dcfee23132 Add Gokapi file sharing service (replaces PicoShare) 2026-07-01 10:12:33 -06:00
Phillip Skentelbery 3320a9f9ff feat: add opds and sync DNS A records 2026-06-30 18:11:16 -06:00
Phillip Skentelbery 3e0b2054a9 feat: add repaircafe.nerder.land redirect to listmonk signup 2026-06-27 21:07:00 -06:00
Phillip Skentelbery 767ff9dae6 feat: add listmonk mailing list service 2026-06-27 17:57:03 -06:00
Phillip SkentelberyandClaude Opus 4.6 46d8fecdfa decommission 9 services: codeserver, ghost, pinchflat, pinry, mmdl, palmr, kanboard, grocy, postiz
Replace deploy tasks with teardown tasks that stop containers and remove
stack directories. Remove Caddy routes and DNS records, with explicit
Route53 deletion for the decommissioned subdomains.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 14:04:51 -06:00
philandClaude f71ded1a01 feat: add Grocy kitchen ERP service
- Add grocy subdomain to domains.yml
- Create Docker Compose template using LinuxServer image
- Add Ansible task for service deployment
- Configure Caddy reverse proxy with Authentik auth and API bypass
- Add DNS record for grocy subdomain
- Integrate with productivity services category

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 08:47:28 -06:00
philandClaude a2ae9e5ff6 feat: add Kanboard project management service
- Add kanboard subdomain to domains.yml
- Create Docker Compose template with SQLite backend and plugin store enabled
- Add Ansible task for service deployment
- Configure Caddy reverse proxy routing
- Integrate with productivity services category

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 07:21:45 -06:00
philandClaude a287e50048 feat: add ByteStash service for code snippet management
- Add ByteStash Docker service configuration and deployment
- Configure subdomain routing through Caddy
- Add DNS record for ByteStash subdomain
- Update development service category to include ByteStash

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 13:53:23 -06:00
philandClaude ff89683038 feat: add Gotify notification server with iGotify iOS support
Add comprehensive push notification infrastructure with:
- Gotify server for push notifications with admin password configuration
- iGotify Assistant service for iOS notification relay via Apple Push Notifications
- Dual subdomain setup (gotify.* and gotify-assistant.*)
- Proper service dependencies and container communication via hairpinning
- Caddy reverse proxy configuration for both services
- DNS A records for both subdomains
- Added to monitoring services category
- Tested with successful notification delivery

Services accessible at:
- https://gotify.thesatelliteoflove.com (main server)
- https://gotify-assistant.thesatelliteoflove.com (iOS assistant)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-19 12:46:51 -06:00
philandClaude a338186a77 feat: remove Conduit Matrix service
Remove all traces of the Conduit Matrix homeserver service including:
- Delete conduit-compose.yml.j2 template and conduit.yml task file
- Remove conduit from development services category
- Remove conduit Caddy reverse proxy configuration
- Remove conduit subdomain from domains.yml
- Remove conduit DNS A record from Route53
- Delete Matrix well-known files (client/server)
- Update all documentation from 25 to 24 services

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-19 11:39:15 -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 e1f09fc119 add tasks subdomain DNS record for MMDL service
- Add tasks.thesatelliteoflove.com A record pointing to server IP
- Enable MMDL task management service accessibility

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-06 10:50:15 -06:00
philandClaude e7cac9e19c fix Route53 @ record parsing in DNS playbook
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-04 16:05:47 -06:00
phil 37f47a4cf3 add manyfold to stack 2025-03-14 14:23:56 -06: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 1a9dba9cec add phlog to dns 2025-01-04 09:07:51 -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 4724dcbede add dns record for repair cafe site 2024-11-11 11:57:54 -07:00
phil e64bef6ac8 Updated dns playbook to support multiple domains and added forms record 2024-11-11 11:04:52 -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 69395a324b added some more dns names to management 2024-10-28 15:17:14 -06:00
phil c9d3fa0397 added playbook to manage aws route53 domains 2024-10-26 12:07:01 -06:00