63 lines
2.0 KiB
Django/Jinja
63 lines
2.0 KiB
Django/Jinja
[Quadlet]
|
|
DefaultDependencies=false
|
|
|
|
[Unit]
|
|
Description=Tandoor Recipes
|
|
|
|
[Container]
|
|
Image=docker.io/vabene1111/recipes:{{ version['containers']['tandoor'] }}
|
|
|
|
ContainerName=tandoor
|
|
HostName=tandoor
|
|
|
|
PublishPort={{ services['tandoor']['ports']['http'] }}:80/tcp
|
|
|
|
# Volumes
|
|
Volume=%h/data/containers/tandoor/mediafiles:/opt/recipes/mediafiles:rw
|
|
Volume=%h/containers/tandoor/ssl:/etc/ssl/tandoor:ro
|
|
|
|
# General
|
|
Environment="TZ={{ timezone }}"
|
|
Environment="ALLOWED_HOSTS={{ services['tandoor']['domain']['public'] }}.{{ domain['public'] }}"
|
|
Environment="CSRF_TRUSTED_ORIGINS=https://{{ services['tandoor']['domain']['public'] }}.{{ domain['public'] }}"
|
|
# auth Caddy -> app Caddy -> Tandoor built-in nginx
|
|
Environment="ALLAUTH_TRUSTED_PROXY_COUNT=3"
|
|
# Set Django gunicorn worker as 1, and threads as 2
|
|
Environment="GUNICORN_WORKERS=1"
|
|
Environment="GUNICORN_THREADS=2"
|
|
|
|
# Secrets
|
|
Secret=TANDOOR_SECRET_KEY,type=env,target=SECRET_KEY
|
|
|
|
# Database (PostgreSQL)
|
|
Environment="DB_ENGINE=django.db.backends.postgresql"
|
|
Environment="POSTGRES_HOST={{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }}"
|
|
Environment="POSTGRES_PORT={{ services['postgresql']['ports']['tcp'] }}"
|
|
Environment="POSTGRES_USER=tandoor"
|
|
Environment="POSTGRES_DB=tandoor_db"
|
|
Environment="PGSSLMODE=verify-full"
|
|
Environment="PGSSLROOTCERT=/etc/ssl/tandoor/{{ root_cert_filename }}"
|
|
Secret=TANDOOR_POSTGRES_PASSWORD,type=env,target=POSTGRES_PASSWORD
|
|
|
|
# Login
|
|
Environment="HIDE_LOGIN_FORM=1"
|
|
Environment="ENABLE_SIGNUP=0"
|
|
|
|
# OIDC
|
|
Environment="SOCIAL_PROVIDERS=allauth.socialaccount.providers.openid_connect"
|
|
Environment="SOCIALACCOUNT_AUTO_SIGNUP=1"
|
|
Environment="SOCIALACCOUNT_LOGIN_ON_GET=1"
|
|
Environment="SOCIAL_DEFAULT_ACCESS=1"
|
|
Environment="SOCIAL_DEFAULT_GROUP=user"
|
|
Secret=TANDOOR_SOCIALACCOUNT_PROVIDERS,type=env,target=SOCIALACCOUNT_PROVIDERS
|
|
|
|
[Service]
|
|
MemoryKSM=yes
|
|
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
|