[Quadlet] DefaultDependencies=false [Unit] Description=Vikunja After=network-online.target Wants=network-online.target [Container] Image=docker.io/vikunja/vikunja:{{ version['containers']['vikunja'] }} ContainerName=vikunja HostName=vikunja PublishPort={{ services['vikunja']['ports']['http'] }}:3456/tcp # Volumes Volume=%h/data/containers/vikunja:/app/vikunja/files:rw Volume=%h/containers/vikunja/ssl:/etc/ssl/vikunja:ro # General Environment="TZ=Asia/Seoul" Environment="VIKUNJA_DEFAULTSETTINGS_TIMEZONE=Asia/Seoul" Environment="VIKUNJA_SERVICE_TIMEZONE=Asia/Seoul" Environment="VIKUNJA_SERVICE_PUBLICURL=https://{{ services['vikunja']['domain']['public'] }}.{{ domain['public'] }}" Environment="VIKUNJA_SERVICE_ENABLEREGISTRATION=false" Secret=VIKUNJA_SERVICE_JWTSECRET,type=env # Database Environment="VIKUNJA_DATABASE_TYPE=postgres" Environment="VIKUNJA_DATABASE_HOST={{ services['postgresql']['domain'] }}.{{ domain['internal'] }}" Environment="VIKUNJA_DATABASE_USER=vikunja" Environment="VIKUNJA_DATABASE_DATABASE=vikunja_db" Environment="VIKUNJA_DATABASE_SSLMODE=verify-full" Environment="VIKUNJA_DATABASE_SSLROOTCERT=/etc/ssl/vikunja/{{ root_cert_filename }}" Secret=VIKUNJA_DATABASE_PASSWORD,type=env # OIDC Environment="VIKUNJA_AUTH_OPENID_ENABLED=true" Environment="VIKUNJA_AUTH_OPENID_PROVIDERS_authelia_NAME=Authelia" Environment="VIKUNJA_AUTH_OPENID_PROVIDERS_authelia_AUTHURL=https://{{ services['authelia']['domain'] }}.{{ domain['public'] }}" Environment="VIKUNJA_AUTH_OPENID_PROVIDERS_authelia_CLIENTID=vikunja" # Environment="VIKUNJA_AUTH_OPENID_PROVIDERS_authelia_SCOPE=" default value = openid email profile # Vikunja doesn't support OIDC and local dual login. # Environment="VIKUNJA_AUTH_OPENID_PROVIDERS_authelia_USERNAMEFALLBACK=true" # Environment="VIKUNJA_AUTH_OPENID_PROVIDERS_authelia_EMAILFALLBACK=true" Secret=VIKUNJA_AUTH_OPENID_PROVIDERS_authelia_CLIENTSECRET,type=env [Service] ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }} Restart=always RestartSec=10s TimeoutStopSec=120 [Install] WantedBy=default.target