Files
ilnmors-homelab/docs/archives/services/app/bonfire/bonfire.container.j2
T
2026-07-05 23:25:42 +09:00

60 lines
2.1 KiB
Django/Jinja

[Quadlet]
DefaultDependencies=false
[Unit]
Description=Bonfire
[Container]
Image=docker.io/bonfirenetworks/bonfire:{{ version['containers']['bonfire'] }}
ContainerName=bonfire
HostName=bonfire
PublishPort={{ services['bonfire']['ports']['http'] }}:4000
# Volumes
Volume=%h/data/containers/bonfire/uploads:/opt/app/data/uploads:rw
Volume=%h/containers/bonfire/ssl:/etc/ssl/bonfire:ro
Volume=%h/containers/bonfire/config/runtime.exs:/opt/app/releases/{{ version['containers']['bonfire'] | replace('-amd64', '') }}/runtime.exs:ro
# Environment
Environment="TZ={{ timezone }}"
Environment="MIX_ENV=prod"
Environment="FLAVOUR=social"
Environment="WITH_DOCKER=true"
Environment="HOSTNAME={{ services['bonfire']['domain']['public'] }}.{{ domain['public'] }}"
Environment="PUBLIC_PORT=443"
Environment="SERVER_PORT={{ services['bonfire']['ports']['http'] }}"
# Secrets
Secret=BONFIRE_SESSION_SECRET,type=env,target=SECRET_KEY_BASE
Secret=BONFIRE_SESSION_SALT,type=env,target=SIGNING_SALT
Secret=BONFIRE_ENCRYPT_SALT,type=env,target=ENCRYPTION_SALT
Secret=BONFIRE_RELEASE_COOKIE,type=env,target=RELEASE_COOKIE
# Database
Environment="POSTGRES_HOST={{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }}"
Environment="POSTGRES_PORT={{ services['postgresql']['ports']['tcp'] }}"
Environment="POSTGRES_USER=bonfire"
Environment="POSTGRES_DB=bonfire_db"
Environment="DB_SSL=true"
Environment="DB_CA_CERT_FILE=/etc/ssl/bonfire/{{ root_cert_filename }}"
Secret=BONFIRE_DB_PASSWORD,type=env,target=POSTGRES_PASSWORD
# OIDC
Environment="OPENID_1_DISCOVERY=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}/.well-known/openid-configuration"
Environment="OPENID_1_CLIENT_ID=bonfire"
Environment="OPENID_1_DISPLAY_NAME=Authelia"
Environment="OPENID_1_SCOPE=openid email profile groups"
Environment="OPENID_1_ENABLE_SIGNUP=true"
Secret=BONFIRE_OIDC_CLIENT_SECRET,type=env,target=OPENID_1_CLIENT_SECRET
[Service]
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target