- Seed postfix-accounts.cf before mailserver start to satisfy Dovecot's requirement for at least one account on first boot - Add failed_when: false to mail user/alias list tasks (files don't exist on first run) - Add forgejo_runner_version (was undefined); default to 12 - Create /srv/forgejo/data/gitea/conf before deploying app.ini - Decouple goaccess sync from restic: new enable_goaccess_sync flag with its own goaccess_sync_* variables - Move Docker installation to bootstrap exclusively; rename docker.yml to networks.yml (runs docker_network role only) - Add radicale_password to vault template and setup.sh - Fix goaccess sync tasks gated on enable_goaccess_sync - Add upstream bug comment to authorized_key deprecation warning - Update CLAUDE.md and README.md throughout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
68 lines
1.6 KiB
Django/Jinja
68 lines
1.6 KiB
Django/Jinja
services:
|
|
caddy:
|
|
image: caddy:{{ caddy_version }}
|
|
container_name: caddy
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
- "443:443/udp"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -q -O /dev/null http://localhost:{{ caddy_metrics_port }}/metrics || exit 1"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
volumes:
|
|
- /srv/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- /srv/caddy/data:/data
|
|
- /srv/caddy/config:/config
|
|
- /srv/caddy/sites:/srv/sites:ro
|
|
- /srv/goaccess/reports:/srv/goaccess/reports:ro
|
|
- /var/www/acme:/var/www/acme:ro
|
|
environment:
|
|
{% if enable_goaccess | default(true) %}
|
|
GOACCESS_USER: "{{ goaccess_user }}"
|
|
GOACCESS_HASH: "{{ caddy_goaccess_hash_stdout | replace('$', '$$') }}"
|
|
{% endif %}
|
|
networks:
|
|
- caddy
|
|
{% if enable_mail | default(true) %}
|
|
- webmail
|
|
{% endif %}
|
|
{% if enable_forgejo | default(true) %}
|
|
- git
|
|
{% endif %}
|
|
{% if enable_monitoring | default(true) %}
|
|
- monitoring
|
|
{% endif %}
|
|
{% if enable_tuwunel | default(true) %}
|
|
- tuwunel
|
|
{% endif %}
|
|
{% if enable_radicale | default(false) %}
|
|
- radicale
|
|
{% endif %}
|
|
|
|
networks:
|
|
caddy:
|
|
external: true
|
|
{% if enable_mail | default(true) %}
|
|
webmail:
|
|
external: true
|
|
{% endif %}
|
|
{% if enable_forgejo | default(true) %}
|
|
git:
|
|
external: true
|
|
{% endif %}
|
|
{% if enable_monitoring | default(true) %}
|
|
monitoring:
|
|
external: true
|
|
{% endif %}
|
|
{% if enable_tuwunel | default(true) %}
|
|
tuwunel:
|
|
external: true
|
|
{% endif %}
|
|
{% if enable_radicale | default(false) %}
|
|
radicale:
|
|
external: true
|
|
{% endif %}
|