diff --git a/CLAUDE.md b/CLAUDE.md index edbd964..21f5f28 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Overview -This is a personal infrastructure Ansible playbook that automates deployment and management of 24 self-hosted Docker services across two domains (`thesatelliteoflove.com` and `nerder.land`). The setup uses Tailscale VPN for secure networking and Caddy for reverse proxy with automated HTTPS. +This is a personal infrastructure Ansible playbook that automates deployment and management of 27 self-hosted Docker services across two domains (`thesatelliteoflove.com` and `nerder.land`). The setup uses Tailscale VPN for secure networking and Caddy for reverse proxy with automated HTTPS. **Important**: Always review `DEPLOYMENT_LEARNINGS.md` when working on this repository for lessons learned and troubleshooting guidance. @@ -28,18 +28,18 @@ ansible-playbook dns.yml -i hosts.yml ### Service Management ```bash # Deploy specific services using tags (now properly isolated) -ansible-playbook site.yml -i hosts.yml --tags caddy --vault-password-file vault_pass --extra-vars "@secrets.enc" -ansible-playbook site.yml -i hosts.yml --tags authentik --vault-password-file vault_pass --extra-vars "@secrets.enc" -ansible-playbook site.yml -i hosts.yml --tags mmdl --vault-password-file vault_pass --extra-vars "@secrets.enc" -ansible-playbook site.yml -i hosts.yml --tags docker --vault-password-file vault_pass --extra-vars "@secrets.enc" # all docker services +ansible-playbook site.yml -i hosts.yml --tags caddy --vault-password-file vault_pass +ansible-playbook site.yml -i hosts.yml --tags authentik --vault-password-file vault_pass +ansible-playbook site.yml -i hosts.yml --tags mmdl --vault-password-file vault_pass +ansible-playbook site.yml -i hosts.yml --tags docker --vault-password-file vault_pass # all docker services # Deploy services by category (new organized structure) -ansible-playbook site.yml -i hosts.yml --tags infrastructure --vault-password-file vault_pass --extra-vars "@secrets.enc" -ansible-playbook site.yml -i hosts.yml --tags media,productivity --vault-password-file vault_pass --extra-vars "@secrets.enc" -ansible-playbook site.yml -i hosts.yml --tags development,monitoring --vault-password-file vault_pass --extra-vars "@secrets.enc" +ansible-playbook site.yml -i hosts.yml --tags infrastructure --vault-password-file vault_pass +ansible-playbook site.yml -i hosts.yml --tags media,productivity --vault-password-file vault_pass +ansible-playbook site.yml -i hosts.yml --tags development,monitoring --vault-password-file vault_pass # Deploy only infrastructure components -ansible-playbook site.yml -i hosts.yml --tags common,cron --vault-password-file vault_pass --extra-vars "@secrets.enc" +ansible-playbook site.yml -i hosts.yml --tags common,cron --vault-password-file vault_pass ``` ## Architecture @@ -60,15 +60,15 @@ The docker role is now organized into logical service groups under `roles/docker - **infrastructure/**: Core platform components - Caddy (reverse proxy), Authentik (SSO), Dockge (container management) - **development/**: Development and collaboration tools - - Gitea, Code Server + - Gitea, Code Server, ByteStash - **media/**: Content creation and consumption - Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Karakeep (formerly Hoarder), Manyfold - **productivity/**: Personal organization and document management - - Paperless-NGX, MMDL, Baikal (CalDAV/CardDAV), Syncthing, Heyform, Dawarich, Palmr + - Paperless-NGX, MMDL, Baikal (CalDAV/CardDAV), Syncthing, Heyform, Dawarich, Palmr, Obsidian LiveSync - **communication/**: Social media and external communication - GoToSocial (Fediverse), Postiz (social media management) - **monitoring/**: System monitoring and alerts - - Changedetection, Glance dashboard, AppriseAPI + - Changedetection, Glance dashboard, AppriseAPI, Gotify ### Variable Management **Critical**: This infrastructure uses a centralized variable hierarchy in `group_vars/all/`: diff --git a/README.md b/README.md index 8afaa2b..ac10b39 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The playbook manages two main environments: ## Services Deployed -The Docker role deploys and manages 24 self-hosted services organized into logical categories: +The Docker role deploys and manages 27 self-hosted services organized into logical categories: ### Infrastructure - **Caddy** (Reverse proxy with automatic HTTPS) @@ -20,6 +20,7 @@ The Docker role deploys and manages 24 self-hosted services organized into logic ### Development - **Gitea** (Git repository hosting) - **Code Server** (VS Code in browser) +- **ByteStash** (Code snippet management) ### Media - **Audiobookshelf** (Audiobook server) @@ -38,6 +39,7 @@ The Docker role deploys and manages 24 self-hosted services organized into logic - **HeyForm** (Form builder) - **Dawarich** (Location tracking) - **Palmr** (File sharing) +- **Obsidian LiveSync** (Note synchronization) ### Communication - **GoToSocial** (Fediverse/Mastodon) @@ -47,6 +49,7 @@ The Docker role deploys and manages 24 self-hosted services organized into logic - **Changedetection** (Website change monitoring) - **Glance** (Dashboard) - **AppriseAPI** (Notification service) +- **Gotify** (Push notifications) ## Structure diff --git a/roles/docker/README.md b/roles/docker/README.md index 762aec4..5aa5a41 100644 --- a/roles/docker/README.md +++ b/roles/docker/README.md @@ -28,6 +28,7 @@ Deploys and manages a comprehensive self-hosted infrastructure with 24 container ### Development (`development/`) - **Gitea** - Self-hosted Git with CI/CD runners - **Code Server** - VS Code in the browser +- **ByteStash** - Code snippet management and organization ### Media (`media/`) - **Audiobookshelf** - Audiobook and podcast server @@ -46,6 +47,7 @@ Deploys and manages a comprehensive self-hosted infrastructure with 24 container - **Heyform** - Form builder and surveys - **Dawarich** - Location tracking - **Palmr** - File sharing service +- **Obsidian LiveSync** - CouchDB backend for note synchronization ### Communication (`communication/`) - **GoToSocial** - Lightweight ActivityPub server @@ -55,6 +57,7 @@ Deploys and manages a comprehensive self-hosted infrastructure with 24 container - **Glance** - Customizable dashboard with monitoring - **Change Detection** - Website monitoring - **Apprise API** - Unified notifications +- **Gotify** - Self-hosted push notification service ## Deployment Patterns diff --git a/todo.md b/todo.md index 28ba019..a3cf187 100644 --- a/todo.md +++ b/todo.md @@ -9,11 +9,11 @@ roles/docker/tasks/ ├── main.yml (orchestrator) ├── infrastructure/ (caddy, authentik, dockge) - ├── development/ (gitea, codeserver) + ├── development/ (gitea, codeserver, bytestash) ├── media/ (audiobookshelf, calibre, ghost, pinchflat, pinry, hoarder, manyfold) - ├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, palmr) + ├── productivity/ (paperless, baikal, syncthing, mmdl, heyform, dawarich, palmr, obsidian-livesync) ├── communication/ (gotosocial, postiz) - └── monitoring/ (glance, changedetection, appriseapi) + └── monitoring/ (glance, changedetection, appriseapi, gotify) ``` - **COMPLETED**: All services organized into logical categories with category-level tags