website/integrations/chat-communication-collaboration/vikunja/index.mdx
import TabItem from "@theme/TabItem"; import Tabs from "@theme/Tabs";
Vikunja is an Open-Source, self-hosted To-Do list application for all platforms.
:::info This guide is based on authentik 2026.2.0 and Vikunja v1.1.0 using the Docker Compose install. Instructions may differ between versions. Vikunja versions before 1.0 use different OpenID configuration syntax. :::
The following placeholders are used in this guide:
vikunja.company is the FQDN of the Vikunja installation.authentik.company is the FQDN of the authentik installation.authentik is the provider key set in config.yml under auth.openid.providers. This key is used as the path segment in the redirect URI.:::info This documentation lists only the settings that you need to change from their default values. Be aware that any changes other than those explicitly mentioned in this guide could cause issues accessing your application. :::
To support the integration of Vikunja with authentik, you need to create an application/provider pair in authentik.
Strict redirect URI to https://vikunja.company/auth/openid/authentik.Regex redirect URI such as ^http://127\\.0\\.0\\.1:[0-9]+/auth/openid/authentik$ to allow loopback redirects to 127.0.0.1.Configure Vikunja using either a config file or environment variables.
<Tabs defaultValue="config-file" values={[ { label: "Config File", value: "config-file" }, { label: "Env File", value: "env-file" }, ]}> <TabItem value="config-file">
Set the following values in config.yml:
auth:
local:
enabled: true
openid:
enabled: true
providers:
authentik:
name: "authentik Login"
authurl: https://authentik.company/application/o/<application_slug>/
clientid: <client_id>
clientsecret: <client_secret>
scope: openid email profile
Set the following values in your .env file:
VIKUNJA_AUTH_OPENID_ENABLED=true
VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHENTIK_NAME="authentik Login"
VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHENTIK_AUTHURL=https://authentik.company/application/o/<application_slug>/
VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHENTIK_CLIENTID=<client_id>
VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHENTIK_CLIENTSECRET=<client_secret>
VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHENTIK_SCOPE=openid email profile
# Optional: disable local auth if all users must sign in through authentik
VIKUNJA_AUTH_LOCAL_ENABLED=false
When using environment variables for providers, define the provider key in config.yml:
auth:
openid:
providers:
authentik: {}
:::info
The key under auth.openid.providers (for example, authentik) must match the path segment in the redirect URI configured in authentik.
If the key contains uppercase letters, Vikunja converts it to lowercase and removes spaces. :::
:::info
The Vikunja frontend expects redirects at /auth/openid/<provider_key>.
:::
:::info
If all users must sign in through authentik, disable local auth (auth.local.enabled: false or VIKUNJA_AUTH_LOCAL_ENABLED=false).
:::
Restart the Vikunja API after applying the OpenID configuration.
To verify that authentik is correctly integrated with Vikunja, log out of Vikunja and sign in again using the configured OpenID provider. You should be redirected to authentik for authentication and then redirected back to Vikunja.