Files
ilnmors-homelab/config/services/containers/app/bookstack/bookstack.container.j2
T
2026-08-25 23:08:55 +09:00

61 lines
2.2 KiB
Django/Jinja

[Quadlet]
DefaultDependencies=false
[Unit]
Description=Bookstack
[Container]
Image=docker.io/solidnerd/bookstack:{{ version['containers']['bookstack'] }}
ContainerName=bookstack
HostName=bookstack
PublishPort={{ services['bookstack']['ports']['http'] }}:8080/tcp
# Volumes
Volume=%h/data/containers/bookstack/public:/var/www/bookstack/public/uploads:rw
Volume=%h/data/containers/bookstack/storage:/var/www/bookstack/storage/uploads:rw
Volume=%h/containers/bookstack/ssl:/etc/ssl/bookstack:ro
# General
Environment="TZ={{ timezone }}"
Environment="APP_ENV=production"
Environment="APP_DEBUG=false"
Environment="APP_URL=https://{{ services['bookstack']['domain']['public'] }}.{{ domain['public'] }}"
# 169.254.1.2 is podman pasta APIPA ip address to communicate the other container in the same host
Environment="APP_PROXIES={{ hostvars['fw']['network']['podman']['ipv4']['lla'] }},{{ hostvars['fw']['network']['auth']['ipv4']['server'] }},{{ hostvars['fw']['network']['auth']['ipv6']['server'] }}"
# Secrets
Secret=BOOKSTACK_SECRET_KEY,type=env,target=APP_KEY
# Database (MariaDB)
Environment="DB_HOST={{ services['mariadb']['domain']['internal'] }}.{{ domain['internal'] }}:{{ services['mariadb']['ports']['tcp'] }}"
Environment="DB_DATABASE=bookstack_db"
Environment="DB_USERNAME=bookstack"
Environment="MYSQL_ATTR_SSL_CA=/etc/ssl/bookstack/{{ root_cert_filename }}"
Secret=BOOKSTACK_DB_PASSWORD,type=env,target=DB_PASSWORD
# OIDC
Environment="AUTH_METHOD=oidc"
Environment="AUTH_AUTO_INITIATE=false"
Environment="OIDC_NAME=Authelia"
Environment="OIDC_ISSUER=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}"
Environment="OIDC_ISSUER_DISCOVER=true"
Environment="OIDC_CLIENT_ID=bookstack"
Environment="OIDC_ADDITIONAL_SCOPES=groups"
Environment="OIDC_DISPLAY_NAME_CLAIMS=name"
Environment="OIDC_GROUPS_CLAIM=groups"
Environment="OIDC_USER_TO_GROUPS=true"
Environment="OIDC_REMOVE_FROM_GROUPS=true"
Environment="OIDC_END_SESSION_ENDPOINT=false"
Secret=BOOKSTACK_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
[Service]
ExecStartPre=/usr/bin/nc -zv {{ services['mariadb']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['mariadb']['ports']['tcp'] }}
Restart=always
RestartSec=10s
TimeoutStopSec=120
[Install]
WantedBy=default.target