# Infrastructure Services ## Overview The **Infrastructure Services** stack provides the management, monitoring, and operational tools needed to maintain your homelab. These services enhance the core infrastructure with advanced management capabilities. ## Services Included ### 🐳 Dockge **Purpose**: Primary stack management interface - **URL**: `https://dockge.yourdomain.duckdns.org` - **Function**: Visual Docker Compose stack management - **Features**: Web UI for deploying/managing stacks - **Authentication**: Protected by Authelia SSO ### 🐳 Portainer **Purpose**: Advanced container management - **URL**: `https://portainer.yourdomain.duckdns.org` - **Function**: Detailed container and image management - **Features**: Container logs, exec, resource monitoring - **Authentication**: Protected by Authelia SSO ### 🛡️ Authentik (Alternative SSO) **Purpose**: Advanced identity management system - **URL**: `https://authentik.yourdomain.duckdns.org` - **Function**: Full-featured SSO with web UI management - **Components**: Server, Worker, PostgreSQL, Redis - **Features**: User groups, policies, integrations ### 🛡️ Pi-hole **Purpose**: Network-wide ad blocking and DNS - **URL**: `http://pihole.yourdomain.duckdns.org` - **Function**: DNS server with ad blocking - **Features**: Query logging, client management - **Authentication**: Protected by Authelia SSO ### 👁️ Dozzle **Purpose**: Real-time Docker log viewer - **URL**: `https://dozzle.yourdomain.duckdns.org` - **Function**: Live container log streaming - **Features**: Multi-container log viewing, search - **Authentication**: Protected by Authelia SSO ### 👁️ Glances **Purpose**: System monitoring dashboard - **URL**: `https://glances.yourdomain.duckdns.org` - **Function**: Real-time system resource monitoring - **Features**: CPU, memory, disk, network stats - **Authentication**: Protected by Authelia SSO ### 🔄 Watchtower **Purpose**: Automatic container updates - **URL**: No web interface (background service) - **Function**: Monitors and updates Docker containers - **Features**: Scheduled updates, notifications - **Configuration**: Cron-based update scheduling ### 🔌 Docker Proxy **Purpose**: Secure Docker socket access - **URL**: No web interface (background service) - **Function**: Provides secure API access to Docker - **Features**: Token-based authentication - **Security**: Protects Docker socket from unauthorized access ## Deployment Strategy ### Recommended Order 1. **Dockge** (primary management interface) 2. **Portainer** (advanced container management) 3. **Pi-hole** (network services) 4. **Monitoring** (Dozzle, Glances) 5. **Automation** (Watchtower, Docker Proxy) ### Stack Location ``` /opt/stacks/infrastructure/ ├── docker-compose.yml ├── dockge/ ├── portainer/ ├── pihole/ ├── dozzle/ ├── glances/ └── .env ``` ## Configuration ### Environment Variables ```bash # User permissions PUID=1000 PGID=1000 TZ=America/New_York # Pi-hole configuration PIHOLE_PASSWORD=secure-admin-password # Watchtower settings WATCHTOWER_CLEANUP=true WATCHTOWER_POLL_INTERVAL=3600 ``` ### Network Integration - **traefik-network**: Web interface access - **dockerproxy-network**: Secure Docker API access - **homelab-network**: Internal communication ## Security Features ### Authentication Integration - **Authelia SSO**: All web interfaces protected - **Role-based Access**: Different permission levels - **Session Management**: Secure session handling ### Network Security - **Internal Access**: Services not exposed externally - **Firewall Rules**: Restricted network access - **API Security**: Token-based Docker access ## Management Workflows ### Stack Deployment ```bash # Deploy infrastructure stack cd /opt/stacks/infrastructure docker compose up -d # Access management interfaces # Dockge: https://dockge.yourdomain.duckdns.org # Portainer: https://portainer.yourdomain.duckdns.org ``` ### Container Monitoring ```bash # View logs with Dozzle # https://dozzle.yourdomain.duckdns.org # System monitoring with Glances # https://glances.yourdomain.duckdns.org ``` ### Updates Management ```bash # Watchtower handles automatic updates # Manual update check docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once ``` ## Performance Considerations ### Resource Allocation ```yaml # Recommended resource limits dockge: cpus: '0.5' memory: 256M portainer: cpus: '0.5' memory: 512M pihole: cpus: '0.25' memory: 128M dozzle: cpus: '0.25' memory: 128M glances: cpus: '0.25' memory: 128M ``` ### Scaling Guidelines - **CPU**: Portainer may need more CPU for large deployments - **Memory**: Pi-hole benefits from additional memory for query logging - **Storage**: Minimal storage requirements for configurations ## Integration Points ### Core Infrastructure - **Traefik**: Provides routing and SSL termination - **Authelia**: Handles authentication for all services - **Networks**: Connected to traefik-network for access ### Other Stacks - **All Stacks**: Can be managed through Dockge interface - **Monitoring**: Provides monitoring for all services - **Security**: Enhances security through Pi-hole ad blocking ## Troubleshooting ### Common Issues #### Dockge Not Accessible ```bash # Check container status docker compose -f /opt/stacks/infrastructure/docker-compose.yml ps # View logs docker compose -f /opt/stacks/infrastructure/docker-compose.yml logs dockge ``` #### Portainer Connection Issues ```bash # Verify Docker socket access docker exec portainer docker version # Check Docker Proxy logs docker logs dockerproxy ``` #### Pi-hole DNS Issues ```bash # Check DNS resolution nslookup google.com 127.0.0.1 # View Pi-hole logs docker logs pihole ``` #### Watchtower Not Updating ```bash # Check Watchtower logs docker logs watchtower # Manual update test docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once --debug ``` ## Backup & Recovery ### Configuration Backup - **Dockge**: Stack configurations in `/opt/stacks/` - **Portainer**: Settings stored in named volumes - **Pi-hole**: Configuration in `/etc/pihole/` - **All Services**: YAML configurations in stack directories ### Automated Backups - **Watchtower**: No persistent data to backup - **Monitoring Data**: Logs and metrics (ephemeral) - **Settings**: Include in regular backup strategy ## Best Practices ### Operational Guidelines 1. **Use Dockge** as primary management interface 2. **Monitor regularly** with Glances and Dozzle 3. **Keep updated** via Watchtower automation 4. **Secure access** through Authelia SSO 5. **Network protection** via Pi-hole ad blocking ### Maintenance Schedule - **Daily**: Check system monitoring - **Weekly**: Review container logs - **Monthly**: Update base images manually - **Quarterly**: Security audit and cleanup This infrastructure stack provides comprehensive management and monitoring capabilities for your homelab environment. c:\Users\kelin\Documents\Apps\GitHub\AI-Homelab\wiki\Infrastructure-Services.md