- Create standardized group_vars directory structure - Add domains.yml with centralized subdomain mappings - Add infrastructure.yml with network, SMTP, and path config - Reorganize vault.yml secrets by service with consistent naming - Update 15+ Docker compose templates to use new variable structure - Simplify playbook commands by removing --extra-vars requirement - Replace hardcoded domains/IPs with template variables - Standardize secret references across all services 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
46 lines
1.1 KiB
Django/Jinja
46 lines
1.1 KiB
Django/Jinja
services:
|
|
mmdl:
|
|
image: intriin/mmdl:latest
|
|
container_name: mmdl
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- mmdl_db
|
|
env_file:
|
|
- .env.local
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
- "{{ subdomains.auth }}:{{ docker.hairpin_ip }}"
|
|
- "{{ subdomains.cal }}:{{ docker.hairpin_ip }}"
|
|
labels:
|
|
glance.name: MMDL
|
|
glance.icon: si:task
|
|
glance.url: https://{{ subdomains.tasks }}/
|
|
glance.description: Task and calendar management
|
|
glance.id: mmdl
|
|
|
|
mmdl_db:
|
|
image: mysql:8.0
|
|
container_name: mmdl_db
|
|
restart: unless-stopped
|
|
command: --default-authentication-plugin=mysql_native_password
|
|
environment:
|
|
MYSQL_DATABASE: mmdl
|
|
MYSQL_USER: mmdl
|
|
MYSQL_PASSWORD: "{{ vault_mmdl.mysql_password }}"
|
|
MYSQL_ROOT_PASSWORD: "{{ vault_mmdl.mysql_root_password }}"
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
|
|
MYSQL_ROOT_HOST: "%"
|
|
volumes:
|
|
- mmdl_db:/var/lib/mysql
|
|
labels:
|
|
glance.parent: mmdl
|
|
glance.name: DB
|
|
|
|
volumes:
|
|
mmdl_db:
|
|
driver: local
|
|
|
|
networks:
|
|
default:
|
|
external: true
|
|
name: {{ docker.network_name }} |