/
/
Comprehensive multi-service deployment role that sets up production-ready containerized services with NFS storage integration and proper networking.
Immich - High-performance photo management
Ghost CMS - Headless content management system
Forgejo - Self-hosted Git service
Stirling-PDF - PDF processing service
/mnt/rstorage/cctv-data
â Frigate recordings/mnt/rstorage/media/pictures
â Immich photo library/mnt/rstorage/code-repo
â Forgejo repositories/mnt/rstorage/registry-data
â Harbor registry (manual setup)Store sensitive data in group_vars/vault.yml
:
vault_runner:
# Database passwords
postgres_password: "secure_password"
mysql_password: "secure_password"
mysql_root_password: "secure_root_password"
# API keys and tokens
frigate_mqtt_password: "mqtt_password"
# Camera credentials (RTSP)
camera_credentials:
front_door:
username: "camera_user"
password: "camera_pass"
host: "192.168.1.100"
Configure per-host in host_vars/runner-host.yml
:
runner_enabled: true
# Network settings
runner_network_subnet: "192.168.1.0/24"
runner_nas_host: "192.168.1.200"
# Service configuration
frigate_cameras:
- name: "front_door"
host: "{{ vault_runner.camera_credentials.front_door.host }}"
immich_enable_ml: true
immich_enable_facial_recognition: true
ghost_site_url: "https://blog.example.com"
/docker/runner/
(service configurations)/docker/runner-data/
(databases, caches)/mnt/docker/
(bulk data storage)Generated scripts for service management:
runner-status.sh
- Check all service statusrunner-logs.sh
- View service logsrunner-restart.sh
- Restart all servicesrunner-update.sh
- Update container imagesServices designed for integration with website containers:
# Deploy all services
ansible-playbook runner.yml -i inventory/hosts
# Deploy specific service
ansible-playbook runner.yml -i inventory/hosts --tags frigate
# Update service configuration
ansible-playbook runner.yml -i inventory/hosts --tags config