60 lines
2.1 KiB
Django/Jinja
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
|