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>
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
# Docker Role
|
||||
|
||||
## Purpose
|
||||
Deploys and manages a comprehensive self-hosted infrastructure with 25+ containerized services, transforming a server into a personal cloud platform with authentication, media management, productivity tools, and development services.
|
||||
Deploys and manages a comprehensive self-hosted infrastructure with 22+ containerized services organized into logical categories, transforming a server into a personal cloud platform with authentication, media management, productivity tools, and development services.
|
||||
|
||||
## Architecture Overview
|
||||
|
||||
@ -17,43 +17,44 @@ Deploys and manages a comprehensive self-hosted infrastructure with 25+ containe
|
||||
- **Container Hardening**: Non-root users, capability dropping, security options
|
||||
- **Secret Management**: Ansible vault for sensitive configuration
|
||||
|
||||
## Services Deployed
|
||||
## Services Deployed (Organized by Category)
|
||||
|
||||
### Core Infrastructure
|
||||
### Infrastructure (`infrastructure/`)
|
||||
- **Caddy** - Reverse proxy with automatic HTTPS (static IP: 172.20.0.5)
|
||||
- **Dockge** - Docker compose stack management UI
|
||||
- **Authentik** - Enterprise authentication server (OIDC/SAML SSO)
|
||||
- **Dockge** - Docker compose stack management UI
|
||||
|
||||
### Development & Code Management
|
||||
### Development (`development/`)
|
||||
- **Gitea** - Self-hosted Git with CI/CD runners
|
||||
- **Code Server** - VS Code in the browser
|
||||
- **Conduit** - Matrix homeserver for communication
|
||||
|
||||
### Media & Content Management
|
||||
### Media (`media/`)
|
||||
- **Audiobookshelf** - Audiobook and podcast server
|
||||
- **Calibre** - E-book management and conversion
|
||||
- **Ghost** - Modern blogging platform
|
||||
- **Hoarder** - Bookmark management with AI tagging
|
||||
- **Pinry** - Pinterest-like image board
|
||||
- **Pingvin Share** - File sharing service
|
||||
- **Syncthing** - Decentralized file sync
|
||||
|
||||
### Productivity & Organization
|
||||
- **Paperless-ngx** - Document management with OCR
|
||||
- **Baikal** - CalDAV/CardDAV server
|
||||
- **Glance** - Customizable dashboard with monitoring
|
||||
- **Heyform** - Form builder and surveys
|
||||
- **Postiz** - Social media management
|
||||
- **Dawarich** - Location tracking
|
||||
- **Change Detection** - Website monitoring
|
||||
- **Manyfold** - 3D model file organization
|
||||
- **MMDL** - Task and calendar management with CalDAV integration
|
||||
|
||||
### Utilities & Tools
|
||||
- **Stirling PDF** - PDF manipulation (internal network only)
|
||||
- **Pinchflat** - YouTube video archiving
|
||||
- **Apprise API** - Unified notifications
|
||||
- **Pinry** - Pinterest-like image board
|
||||
- **Hoarder** - Bookmark management with AI tagging
|
||||
- **Manyfold** - 3D model file organization
|
||||
|
||||
### Productivity (`productivity/`)
|
||||
- **Paperless-ngx** - Document management with OCR
|
||||
- **MMDL** - Task and calendar management with CalDAV integration
|
||||
- **Baikal** - CalDAV/CardDAV server
|
||||
- **Syncthing** - Decentralized file sync
|
||||
- **Heyform** - Form builder and surveys
|
||||
- **Dawarich** - Location tracking
|
||||
- **Pingvin Share** - File sharing service
|
||||
|
||||
### Communication (`communication/`)
|
||||
- **GoToSocial** - Lightweight ActivityPub server
|
||||
- **Postiz** - Social media management
|
||||
|
||||
### Monitoring (`monitoring/`)
|
||||
- **Glance** - Customizable dashboard with monitoring
|
||||
- **Change Detection** - Website monitoring
|
||||
- **Apprise API** - Unified notifications
|
||||
|
||||
## Deployment Patterns
|
||||
|
||||
@ -79,22 +80,32 @@ The role also configures the shell environment:
|
||||
```
|
||||
roles/docker/
|
||||
├── tasks/
|
||||
│ ├── main.yml # Orchestrates all deployments
|
||||
│ ├── shell.yml # Shell environment setup
|
||||
│ ├── caddy.yml # Reverse proxy
|
||||
│ ├── authentik.yml # Authentication
|
||||
│ ├── mmdl.yml # Task management
|
||||
│ └── [25+ service files] # Individual service deployments
|
||||
│ ├── main.yml # Orchestrates all deployments
|
||||
│ ├── shell.yml # Shell environment setup
|
||||
│ ├── infrastructure/
|
||||
│ │ ├── main.yml # Infrastructure category orchestrator
|
||||
│ │ ├── caddy.yml # Reverse proxy
|
||||
│ │ └── authentik.yml # Authentication
|
||||
│ ├── development/
|
||||
│ │ ├── main.yml # Development category orchestrator
|
||||
│ │ ├── gitea.yml # Git hosting
|
||||
│ │ ├── codeserver.yml # VS Code server
|
||||
│ │ └── conduit.yml # Matrix server
|
||||
│ ├── media/ # Media services (7 services)
|
||||
│ ├── productivity/ # Productivity services (7 services)
|
||||
│ ├── communication/ # Communication services (2 services)
|
||||
│ └── monitoring/ # Monitoring services (3 services)
|
||||
├── templates/
|
||||
│ ├── [service]-compose.yml.j2 # Docker Compose templates
|
||||
│ ├── [service]-env.j2 # Environment variable templates
|
||||
│ └── mmdl-*.j2 # MMDL-specific templates
|
||||
│ ├── [service]-compose.yml.j2 # Docker Compose templates (all templated)
|
||||
│ ├── [service]-env.j2 # Environment variable templates
|
||||
│ └── [service]-*.j2 # Service-specific templates
|
||||
├── files/
|
||||
│ ├── Caddyfile # Caddy configuration
|
||||
│ ├── ufw-docker.sh # Firewall integration script
|
||||
│ └── [various configs] # Static configuration files
|
||||
│ ├── Caddyfile # Caddy configuration
|
||||
│ ├── ufw-docker.sh # Firewall integration script
|
||||
│ ├── client # Matrix well-known client file
|
||||
│ └── server # Matrix well-known server file
|
||||
└── handlers/
|
||||
└── main.yml # Service restart handlers
|
||||
└── main.yml # Service restart handlers
|
||||
```
|
||||
|
||||
## Usage
|
||||
@ -104,24 +115,26 @@ roles/docker/
|
||||
ansible-playbook site.yml -i hosts.yml --tags docker
|
||||
```
|
||||
|
||||
### Deploy Specific Services
|
||||
### Deploy by Service Category
|
||||
```bash
|
||||
# Deploy only authentication stack
|
||||
ansible-playbook site.yml -i hosts.yml --tags authentik
|
||||
# Deploy entire service categories
|
||||
ansible-playbook site.yml -i hosts.yml --tags infrastructure
|
||||
ansible-playbook site.yml -i hosts.yml --tags development
|
||||
ansible-playbook site.yml -i hosts.yml --tags media
|
||||
ansible-playbook site.yml -i hosts.yml --tags productivity
|
||||
ansible-playbook site.yml -i hosts.yml --tags communication
|
||||
ansible-playbook site.yml -i hosts.yml --tags monitoring
|
||||
|
||||
# Deploy media services
|
||||
ansible-playbook site.yml -i hosts.yml --tags audiobookshelf,calibre
|
||||
|
||||
# Deploy development tools
|
||||
ansible-playbook site.yml -i hosts.yml --tags gitea,codeserver
|
||||
|
||||
# Deploy task management
|
||||
ansible-playbook site.yml -i hosts.yml --tags mmdl
|
||||
# Deploy multiple categories
|
||||
ansible-playbook site.yml -i hosts.yml --tags infrastructure,monitoring
|
||||
```
|
||||
|
||||
### Deploy Core Infrastructure Only
|
||||
### Deploy Individual Services
|
||||
```bash
|
||||
ansible-playbook site.yml -i hosts.yml --tags caddy,authentik,glance
|
||||
# Deploy specific services
|
||||
ansible-playbook site.yml -i hosts.yml --tags authentik
|
||||
ansible-playbook site.yml -i hosts.yml --tags gitea,codeserver
|
||||
ansible-playbook site.yml -i hosts.yml --tags mmdl
|
||||
```
|
||||
|
||||
## Service-Specific Notes
|
||||
|
Reference in New Issue
Block a user