Compose Templates
These are the Docker Compose files as Jinja2 templates. Ansible fills in the variables and places them on the target host.
roles/stacks_infra/templates/npm-compose.yml.j2
# Managed by Ansible
services:
npm:
image: jc21/nginx-proxy-manager:latest
container_name: npm
restart: unless-stopped
dns:
- {{ docker_dns }}
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- {{ appdata_dir }}/npm/data:/data
- {{ appdata_dir }}/npm/letsencrypt:/etc/letsencrypt
roles/stacks_infra/templates/monitoring-compose.yml.j2
# Managed by Ansible
services:
beszel-hub:
image: henrygd/beszel
container_name: beszel-hub
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- {{ appdata_dir }}/beszel/hub-data:/beszel_data
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- {{ appdata_dir }}/uptime-kuma:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
autokuma:
image: ghcr.io/bigboot/autokuma:latest
container_name: autokuma
restart: unless-stopped
environment:
AUTOKUMA__KUMA__URL: http://uptime-kuma:3001
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- {{ appdata_dir }}/autokuma:/data
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
ports:
- "8081:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
glances:
image: nicolargo/glances:latest
container_name: glances
restart: unless-stopped
pid: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
GLANCES_OPT: "-w"
roles/stacks_infra/templates/vaultwarden-compose.yml.j2
# Managed by Ansible
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.domain.me"
SIGNUPS_ALLOWED: "false"
ADMIN_TOKEN: "{{ vault_vaultwarden_admin_token }}"
ports:
- "8222:80"
volumes:
- {{ appdata_dir }}/vaultwarden/data:/data
roles/stacks_apps/templates/paperless-compose.yml.j2
# Managed by Ansible
services:
paperless-redis:
image: redis:alpine
container_name: paperless-redis
restart: unless-stopped
paperless-db:
image: postgres:15-alpine
container_name: paperless-db
restart: unless-stopped
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
volumes:
- {{ appdata_dir }}/paperless/pgdata:/var/lib/postgresql/data
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless
restart: unless-stopped
depends_on:
- paperless-db
- paperless-redis
ports:
- "8000:8000"
environment:
PAPERLESS_REDIS: redis://paperless-redis:6379
PAPERLESS_DBHOST: paperless-db
PAPERLESS_DBNAME: paperless
PAPERLESS_DBUSER: paperless
PAPERLESS_DBPASS: paperless
PAPERLESS_OCR_LANGUAGE: eng
PAPERLESS_TIME_ZONE: {{ timezone }}
PAPERLESS_URL: "https://docs.domain.me"
volumes:
- {{ appdata_dir }}/paperless/data:/usr/src/paperless/data
- {{ appdata_dir }}/paperless/media:/usr/src/paperless/media
- {{ appdata_dir }}/paperless/export:/usr/src/paperless/export
- {{ appdata_dir }}/paperless/consume:/usr/src/paperless/consume
roles/stacks_apps/templates/forgejo-compose.yml.j2
# Managed by Ansible
services:
forgejo:
image: codeberg.org/forgejo/forgejo:latest
container_name: forgejo
restart: unless-stopped
environment:
USER_UID: "1000"
USER_GID: "1000"
FORGEJO__security__SECRET_KEY: "{{ vault_forgejo_secret_key }}"
ports:
- "3000:3000"
- "2222:22"
volumes:
- {{ appdata_dir }}/forgejo/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro