Set up the file
The environment variables are used to configure the application. We will use a.env file to store the variables.
For the sample environment file, see the example .env file.
The variables are split up into the following sections:
- General URLs
- Database
- Authentication
- Object Storage
- Access Control
- GitHub SSO
- GitHub integration
- Google SSO
- Discord SSO
- Custom OAuth/OIDC
- Redis
- SMTP Configuration
Required variables
General URLs
This section will cover all the variables related to the general URLs.Database
This section will cover all the variables related to the database.Authentication
This section will cover all the variables related to the authentication.Optional variables
Object Storage
Kaneo uses S3-compatible object storage for private uploads in task descriptions and task comments. MinIO is the easiest local option and the primary tested target. You can also use other S3-compatible storage backends such as AWS S3, Cloudflare R2, orfs.
Access Control
Notifications
GitHub SSO
Sign in with GitHub uses a GitHub OAuth App. SetGITHUB_OAUTH_CLIENT_ID and GITHUB_OAUTH_CLIENT_SECRET (or rely on the legacy variables below).
GitHub integration
Repository sync and webhooks use a GitHub App. These variables do not enable GitHub sign-in; configure GitHub SSO separately if you want both.Google SSO
Discord SSO
Custom OAuth/OIDC
Redis
Kaneo supports Redis for horizontal scaling of WebSocket broadcasts. When any Redis mode is configured, multiple API instances can relay real-time updates via Redis Pub/Sub. When none are set, an in-memory adapter is used (single-instance only). Three deployment modes are supported: Standalone, Sentinel, and Cluster. Only one mode should be configured at a time. If multiple are set, the priority is: Cluster > Sentinel > Standalone.Standalone (single server)
Sentinel (high-availability with automatic failover)
Cluster (horizontal sharding)
Shared (used by Sentinel and Cluster modes)
SMTP Configuration
Key points
- If you enable GitHub SSO, create a GitHub OAuth App in GitHub Developer Settings and set
GITHUB_OAUTH_CLIENT_ID/GITHUB_OAUTH_CLIENT_SECRET(or the legacyGITHUB_CLIENT_*variables). See the GitHub SSO guide. - If you use the GitHub repository integration, configure a GitHub App and set the integration variables in GitHub integration. See the GitHub integration configuration guide.
- If you enable Google SSO, you need to set up the Google app which is used to authenticate users in the Google Cloud Console. See the Google SSO guide.
- If you enable Discord SSO, you need to set up the Discord application which is used to authenticate users in the Discord Developer Portal. See the Discord SSO guide.
- If you enable Custom OAuth/OIDC, you need to configure your identity provider with the appropriate redirect URI. See the Custom OAuth/OIDC guide.
- If you have enabled SMTP, sign-in uses email verification codes by default. Set
DISABLE_EMAIL_OTP_SIGN_IN=trueto use email/password sign-in instead. - If you need device authorization for clients beyond the defaults (
kaneo-cli,kaneo-mcpwhenDEVICE_AUTH_CLIENT_IDSis unset), setDEVICE_AUTH_CLIENT_IDSto the full comma-separated list of trusted client IDs for your deployment.