feat: update documentation and infrastructure configuration
- Update service count from 22+ to 25 across documentation - Add vault.yml to gitignore for security - Add notifications configuration for AppriseAPI integration - Add jq package to common role dependencies - Add hairpin networking fix for AppriseAPI chat subdomain access - Remove diun service references from monitoring category - Update project completion status in todo.md 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
.python-version
|
.python-version
|
||||||
secrets.enc
|
secrets.enc
|
||||||
vault_pass
|
vault_pass
|
||||||
DEPLOYMENT_LEARNINGS.md
|
DEPLOYMENT_LEARNINGS.md
|
||||||
|
group_vars/all/vault.yml
|
@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
This is a personal infrastructure Ansible playbook that automates deployment and management of 22+ 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 25 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.
|
**Important**: Always review `DEPLOYMENT_LEARNINGS.md` when working on this repository for lessons learned and troubleshooting guidance.
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ ansible-playbook site.yml -i hosts.yml --tags common,cron --vault-password-file
|
|||||||
### Role Structure
|
### Role Structure
|
||||||
- **bootstrap**: Initial server hardening, user creation, Tailscale VPN setup
|
- **bootstrap**: Initial server hardening, user creation, Tailscale VPN setup
|
||||||
- **common**: Basic system configuration, UFW firewall management
|
- **common**: Basic system configuration, UFW firewall management
|
||||||
- **docker**: Comprehensive service deployment (22+ containerized applications, organized by category)
|
- **docker**: Comprehensive service deployment (25 containerized applications, organized by category)
|
||||||
- **cron**: Scheduled task management (currently Warhammer RSS feed generation)
|
- **cron**: Scheduled task management (currently Warhammer RSS feed generation)
|
||||||
|
|
||||||
### Docker Role Organization (Reorganized into Logical Categories)
|
### Docker Role Organization (Reorganized into Logical Categories)
|
||||||
@ -62,7 +62,7 @@ The docker role is now organized into logical service groups under `roles/docker
|
|||||||
- **development/**: Development and collaboration tools
|
- **development/**: Development and collaboration tools
|
||||||
- Gitea, Code Server, Matrix (Conduit)
|
- Gitea, Code Server, Matrix (Conduit)
|
||||||
- **media/**: Content creation and consumption
|
- **media/**: Content creation and consumption
|
||||||
- Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Karakeep, Manyfold
|
- Audiobookshelf, Calibre, Ghost blog, Pinchflat, Pinry, Karakeep (formerly Hoarder), Manyfold
|
||||||
- **productivity/**: Personal organization and document management
|
- **productivity/**: Personal organization and document management
|
||||||
- Paperless-NGX, MMDL, Baikal (CalDAV/CardDAV), Syncthing, Heyform, Dawarich, Pingvin
|
- Paperless-NGX, MMDL, Baikal (CalDAV/CardDAV), Syncthing, Heyform, Dawarich, Pingvin
|
||||||
- **communication/**: Social media and external communication
|
- **communication/**: Social media and external communication
|
||||||
@ -132,6 +132,9 @@ Common domains requiring hairpinning fixes:
|
|||||||
|
|
||||||
## Service Memories
|
## Service Memories
|
||||||
- pingvin is the service that responds on files.thesatelliteoflove.com
|
- pingvin is the service that responds on files.thesatelliteoflove.com
|
||||||
|
- karakeep (formerly called hoarder) is deployed with both 'hoarder' and 'karakeep' tags for backward compatibility
|
||||||
|
- whenever i ask you what containers need updates, run dockcheck and return a list of containers needing updates
|
||||||
|
- when i ask for the status container updates i want you to run dockcheck on the docker host https://github.com/mag37/dockcheck?ref=selfh.st
|
||||||
|
|
||||||
## Variable Management Implementation Notes
|
## Variable Management Implementation Notes
|
||||||
**Major Infrastructure Update**: Variable management system was implemented to replace all hardcoded values with centralized variables.
|
**Major Infrastructure Update**: Variable management system was implemented to replace all hardcoded values with centralized variables.
|
||||||
|
@ -10,7 +10,7 @@ The playbook manages two main environments:
|
|||||||
|
|
||||||
## Services Deployed
|
## Services Deployed
|
||||||
|
|
||||||
The Docker role deploys and manages 22+ self-hosted services organized into logical categories:
|
The Docker role deploys and manages 25 self-hosted services organized into logical categories:
|
||||||
|
|
||||||
### Infrastructure
|
### Infrastructure
|
||||||
- **Caddy** (Reverse proxy with automatic HTTPS)
|
- **Caddy** (Reverse proxy with automatic HTTPS)
|
||||||
@ -28,7 +28,7 @@ The Docker role deploys and manages 22+ self-hosted services organized into logi
|
|||||||
- **Ghost** (Blog platform)
|
- **Ghost** (Blog platform)
|
||||||
- **Pinchflat** (Media downloader)
|
- **Pinchflat** (Media downloader)
|
||||||
- **Pinry** (Pinterest-like board)
|
- **Pinry** (Pinterest-like board)
|
||||||
- **Karakeep** (Bookmark manager)
|
- **Hoarder** (Bookmark manager)
|
||||||
- **Manyfold** (3D model organizer)
|
- **Manyfold** (3D model organizer)
|
||||||
|
|
||||||
### Productivity
|
### Productivity
|
||||||
@ -88,7 +88,7 @@ Manages scheduled tasks and automation:
|
|||||||
- Supports easy addition of new scheduled tasks
|
- Supports easy addition of new scheduled tasks
|
||||||
|
|
||||||
### [Docker Role](roles/docker/README.md)
|
### [Docker Role](roles/docker/README.md)
|
||||||
The most comprehensive role, deploying 22+ containerized services organized into logical categories:
|
The most comprehensive role, deploying 25 containerized services organized into logical categories:
|
||||||
- **Infrastructure**: Caddy reverse proxy, Authentik SSO, Dockge management
|
- **Infrastructure**: Caddy reverse proxy, Authentik SSO, Dockge management
|
||||||
- **Development**: Gitea, Code Server, Matrix communication
|
- **Development**: Gitea, Code Server, Matrix communication
|
||||||
- **Media**: Audiobookshelf, Calibre, Ghost blog, Pinchflat, and more
|
- **Media**: Audiobookshelf, Calibre, Ghost blog, Pinchflat, and more
|
||||||
|
@ -19,4 +19,8 @@ network:
|
|||||||
|
|
||||||
# Paths
|
# Paths
|
||||||
paths:
|
paths:
|
||||||
stacks: "{{ docker.stacks_path }}"
|
stacks: "{{ docker.stacks_path }}"
|
||||||
|
|
||||||
|
# Notification services
|
||||||
|
notifications:
|
||||||
|
appriseapi_endpoint: "http://apprise:8000/notify/apprise"
|
@ -1,6 +1,8 @@
|
|||||||
- name: Install aptitude
|
- name: Install common packages
|
||||||
apt:
|
apt:
|
||||||
name: aptitude
|
name:
|
||||||
|
- aptitude
|
||||||
|
- jq
|
||||||
state: latest
|
state: latest
|
||||||
update_cache: true
|
update_cache: true
|
||||||
|
|
||||||
|
@ -11,6 +11,8 @@ services:
|
|||||||
- plugin:/plugin
|
- plugin:/plugin
|
||||||
- attach:/attach
|
- attach:/attach
|
||||||
image: caronc/apprise:latest
|
image: caronc/apprise:latest
|
||||||
|
extra_hosts:
|
||||||
|
- "{{ subdomains.chat }}:{{ docker.hairpin_ip }}"
|
||||||
labels:
|
labels:
|
||||||
glance.name: Apprise
|
glance.name: Apprise
|
||||||
glance.icon: si:imessage
|
glance.icon: si:imessage
|
||||||
|
22
todo.md
22
todo.md
@ -17,18 +17,18 @@
|
|||||||
```
|
```
|
||||||
- **COMPLETED**: All services organized into logical categories with category-level tags
|
- **COMPLETED**: All services organized into logical categories with category-level tags
|
||||||
|
|
||||||
### 2. Standardize variable management
|
### 2. Standardize variable management ✅ COMPLETED
|
||||||
- **Current Issue**: Secrets in single encrypted file, no clear variable hierarchy
|
- **Current Issue**: Secrets in single encrypted file, no clear variable hierarchy
|
||||||
- **Solution**: Create proper variable structure:
|
- **Solution**: Create proper variable structure:
|
||||||
```
|
```
|
||||||
group_vars/
|
group_vars/
|
||||||
├── all/
|
├── all/
|
||||||
│ ├── common.yml (shared config)
|
│ ├── domains.yml (domain and subdomain mappings)
|
||||||
│ └── secrets.yml (vault encrypted)
|
│ ├── infrastructure.yml (network config, Docker settings)
|
||||||
├── docker/
|
│ ├── vault.yml (encrypted secrets with vault_ prefix)
|
||||||
│ ├── services.yml (service configs)
|
│ └── services.yml (service configuration flags)
|
||||||
│ └── networking.yml (network settings)
|
|
||||||
```
|
```
|
||||||
|
- **COMPLETED**: Implemented comprehensive variable hierarchy, updated all templates to use centralized variables, fixed service tag isolation
|
||||||
|
|
||||||
### 3. Template consolidation ✅ PARTIALLY COMPLETED
|
### 3. Template consolidation ✅ PARTIALLY COMPLETED
|
||||||
- **Current Issue**: Many compose templates repeat patterns, some services used static files
|
- **Current Issue**: Many compose templates repeat patterns, some services used static files
|
||||||
@ -43,7 +43,7 @@
|
|||||||
- **Solution**: Implement comprehensive health monitoring with standardized healthcheck patterns
|
- **Solution**: Implement comprehensive health monitoring with standardized healthcheck patterns
|
||||||
|
|
||||||
### 5. Implement backup strategy
|
### 5. Implement backup strategy
|
||||||
- **Issue**: No automated backups for 25+ services and their data
|
- **Issue**: No automated backups for 25 services and their data
|
||||||
- **Solution**: Add backup role with:
|
- **Solution**: Add backup role with:
|
||||||
- Database dumps for PostgreSQL services
|
- Database dumps for PostgreSQL services
|
||||||
- Volume backups for file-based services
|
- Volume backups for file-based services
|
||||||
@ -99,7 +99,7 @@
|
|||||||
- [x] Convert static compose files to templates
|
- [x] Convert static compose files to templates
|
||||||
- [x] Remove unused services (beaver, grist, stirlingpdf, tasksmd, redlib)
|
- [x] Remove unused services (beaver, grist, stirlingpdf, tasksmd, redlib)
|
||||||
- [x] Clean up templates and files directories
|
- [x] Clean up templates and files directories
|
||||||
- [ ] Implement variable hierarchy
|
- [x] Implement variable hierarchy
|
||||||
- [ ] Create reusable template patterns
|
- [ ] Create reusable template patterns
|
||||||
|
|
||||||
### Week 2: Security & Monitoring
|
### Week 2: Security & Monitoring
|
||||||
@ -124,10 +124,12 @@
|
|||||||
- **Template Standardization**: Converted all static compose files to Jinja2 templates
|
- **Template Standardization**: Converted all static compose files to Jinja2 templates
|
||||||
- **Service Cleanup**: Removed 5 unused/broken services (beaver, grist, stirlingpdf, tasksmd, redlib)
|
- **Service Cleanup**: Removed 5 unused/broken services (beaver, grist, stirlingpdf, tasksmd, redlib)
|
||||||
- **Category-Based Deployment**: Can now deploy services by category using tags (infrastructure, media, etc.)
|
- **Category-Based Deployment**: Can now deploy services by category using tags (infrastructure, media, etc.)
|
||||||
- **Documentation Updates**: Updated CLAUDE.md to reflect new architecture
|
- **Variable Management**: Implemented comprehensive centralized variable hierarchy with proper secret organization
|
||||||
|
- **Service Tag Isolation**: Fixed service tags to deploy individual services only (not entire categories)
|
||||||
|
- **Documentation Updates**: Updated all README files and CLAUDE.md to reflect new architecture
|
||||||
|
|
||||||
### 📊 Current Stats
|
### 📊 Current Stats
|
||||||
- **22+ active services** organized into 6 categories
|
- **25 active services** organized into 6 categories
|
||||||
- **100% templated** compose files (no static files)
|
- **100% templated** compose files (no static files)
|
||||||
- **6 service directories** for logical organization
|
- **6 service directories** for logical organization
|
||||||
- **Clean file structure** with only essential static files
|
- **Clean file structure** with only essential static files
|
||||||
|
Reference in New Issue
Block a user