Commit Graph
14 Commits
Author SHA1 Message Date
PhilandClaude Opus 5.5 a1a79af7d5 Upgrade HeyForm from v0.1.0 to v3.0.5
v0.1.0 (Feb 2025) has dozens of published security advisories fixed in
v3. Tested against a copy of the database first; forms load unchanged.

v3 listens on 9157, keeps uploads under packages/server, and uses Redis 8
commands, so KeyDB is replaced by redis:8-alpine. The homepage URL is now
https (v3's CORS allowlist is built from it), Caddy is the trusted proxy,
public sign-up is off, and integration credentials get their own key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:50:57 -06:00
PhilandClaude Opus 5.5 0282debf07 Run Gokapi's first-run password step as a blocking command
--deployment-password sets the password and exits, so the detached run
plus health wait never saw a healthy container.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:13:22 -06:00
PhilandClaude Opus 5.5 7a68fdf96f Wait for Gokapi's healthcheck on first run
The 'Gokapi started' log line is not always flushed to log.txt, so the
first-run wait timed out even though the super admin had been created.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:09:14 -06:00
PhilandClaude Opus 5.5 2512f6cb86 Reset Gokapi and log in with Pocket ID
Gokapi now keeps its config and data in /opt/stacks/gokapi instead of named
volumes. config.json is templated with Pocket ID as the OIDC provider, so a
fresh install never shows the open /setup wizard. On a new database a one-off
run with --deployment-password creates the super admin, after which only
existing users can log in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:04:44 -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 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 17c3077cf0 feat: add Palmr file sharing service to replace Pingvin
- Add Palmr Docker Compose template with encryption enabled
- Create Palmr deployment tasks for productivity category
- Add files.thesatelliteoflove.com routing in Caddyfile
- Restore files subdomain for Palmr service
- Add Palmr to Glance dashboard with file icon
- Generate and store encryption key in vault
- Configure HTTPS, Authentik integration, and dockcheck updates

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 12:59:11 -06:00
philandClaude 75fabb3523 feat: deprecate Pingvin file sharing service
- Remove Pingvin Docker Compose template and deployment tasks
- Remove files.thesatelliteoflove.com routing from Caddyfile
- Remove files subdomain from domain variables
- Stop and remove Pingvin containers from remote server
- Clean up /opt/stacks/pingvin directory

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 12:36:58 -06:00
philandClaude c95ca45a67 feat: add Obsidian LiveSync CouchDB service for note synchronization
- Add Obsidian LiveSync Docker service with CouchDB backend
- Configure service for Tailscale-only access on port 5984
- Add vault credentials for database authentication
- Create productivity category task and handler
- Enable Glance dashboard integration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 23:46:05 -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