···1515- [Authentication](#authentication)
1616- [Object Storage](#object-storage)
1717- [Access Control](#access-control)
1818-- [GitHub SSO & Integration](#github-sso-&-integration)
1818+- [GitHub SSO](#github-sso)
1919+- [GitHub integration](#github-integration)
1920- [Google SSO](#google-sso)
2021- [Discord SSO](#discord-sso)
2122- [Custom OAuth/OIDC](#custom-oauth-oidc)
···8182| `DISABLE_REGISTRATION` | Disable public user registration. When set to `true`, the sign-up option will not be shown on the sign-in page and new user creation is blocked (including via SSO). **Note:** Users with valid workspace invitations can still register even when this is enabled. | `false` |
8283| `DISABLE_PASSWORD_REGISTRATION` | Disable password-based account creation. When set to `true`, email/password sign-up is blocked, but social/OIDC registration remains available unless `DISABLE_REGISTRATION=true`. | `false` |
83848484-### GitHub SSO & Integration
8585+### GitHub SSO
8686+8787+Sign in with GitHub uses a [GitHub OAuth App](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app). Set `GITHUB_OAUTH_CLIENT_ID` and `GITHUB_OAUTH_CLIENT_SECRET` (or rely on the legacy variables below).
85888689Name | Description |
8790--- | --- |
8888-| `GITHUB_CLIENT_ID` | The GitHub client ID.
8989-| `GITHUB_CLIENT_SECRET` | The GitHub client secret.
9090-| `GITHUB_APP_ID` | The GitHub app ID.
9191-| `GITHUB_WEBHOOK_SECRET` | The GitHub webhook secret.
9292-| `GITHUB_PRIVATE_KEY` | The GitHub private key.
9191+| `GITHUB_OAUTH_CLIENT_ID` | OAuth client ID for GitHub sign-in.
9292+| `GITHUB_OAUTH_CLIENT_SECRET` | OAuth client secret for GitHub sign-in.
9393+| `GITHUB_CLIENT_ID` | Legacy fallback for OAuth client ID when `GITHUB_OAUTH_*` is not set.
9494+| `GITHUB_CLIENT_SECRET` | Legacy fallback for OAuth client secret when `GITHUB_OAUTH_*` is not set.
9595+9696+### GitHub integration
9797+9898+Repository sync and webhooks use a [GitHub App](https://docs.github.com/en/apps/creating-github-apps/about-creating-github-apps). These variables do not enable GitHub sign-in; configure [GitHub SSO](#github-sso) separately if you want both.
9999+100100+Name | Description |
101101+--- | --- |
102102+| `GITHUB_APP_ID` | The GitHub App ID.
103103+| `GITHUB_WEBHOOK_SECRET` | Secret used to verify GitHub webhook payloads.
104104+| `GITHUB_PRIVATE_KEY` | PEM private key for the GitHub App (JWT authentication).
105105+| `GITHUB_APP_NAME` | (Optional) GitHub App slug, used for installation links in the UI.
9310694107### Google SSO
95108···134147135148## Key points
136149137137-- If you enable GitHub SSO, you need to set up the GitHub app which is used to authenticate users in the [GitHub Developer Settings](https://github.com/settings/developers). See the [GitHub SSO guide](/core/social-providers/github).
150150+- If you enable GitHub SSO, create a GitHub OAuth App in [GitHub Developer Settings](https://github.com/settings/developers) and set `GITHUB_OAUTH_CLIENT_ID` / `GITHUB_OAUTH_CLIENT_SECRET` (or the legacy `GITHUB_CLIENT_*` variables). See the [GitHub SSO guide](/core/social-providers/github).
151151+- If you use the GitHub repository integration, configure a GitHub App and set the integration variables in [GitHub integration](#github-integration). See the [GitHub integration configuration](/core/integrations/github/configuration) guide.
138152- If you enable Google SSO, you need to set up the Google app which is used to authenticate users in the [Google Cloud Console](https://console.cloud.google.com/). See the [Google SSO guide](/core/social-providers/google).
139153- If you enable Discord SSO, you need to set up the Discord application which is used to authenticate users in the [Discord Developer Portal](https://discord.com/developers/applications). See the [Discord SSO guide](/core/social-providers/discord).
140154- If you enable Custom OAuth/OIDC, you need to configure your identity provider with the appropriate redirect URI. See the [Custom OAuth/OIDC guide](/core/social-providers/custom-oauth).
···1515Add the following environment variables to your Kaneo deployment:
16161717```bash
1818-# GitHub App Configuration
1818+# GitHub App (integration only — repository sync, webhooks)
1919GITHUB_APP_ID=123456
2020-GITHUB_CLIENT_ID=Iv1.abc123def456
2121-GITHUB_CLIENT_SECRET=abc123def456ghi789jkl012mno345pqr678stu
2220GITHUB_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
2321MIIEpAIBAAKCAQEA...
2422[Full contents of your private key]
···2624-----END RSA PRIVATE KEY-----"
2725GITHUB_WEBHOOK_SECRET=your-webhook-secret-here
28262929-# Optional: GitHub App Name for installation URLs
2727+# Optional: GitHub App slug for installation URLs in the UI
3028GITHUB_APP_NAME=kaneo-your-instance-name
3129```
3030+3131+<Info>
3232+GitHub sign-in uses separate OAuth variables (`GITHUB_OAUTH_CLIENT_ID` / `GITHUB_OAUTH_CLIENT_SECRET`). You can run the integration without enabling GitHub SSO. See [GitHub SSO](/core/social-providers/github) and [Environment variables](/core/installation/environment-variables#github-sso).
3333+</Info>
32343335### Variable Reference
34363537| Variable | Description | Required | Example |
3638|----------|-------------|----------|---------|
3739| `GITHUB_APP_ID` | Your GitHub App's ID | ✅ | `123456` |
3838-| `GITHUB_CLIENT_ID` | OAuth client ID from your app | ✅ | `Iv1.abc123def456` |
3939-| `GITHUB_CLIENT_SECRET` | OAuth client secret | ✅ | `abc123def456ghi789jkl012mno345pqr678stu` |
4040| `GITHUB_PRIVATE_KEY` | Full private key content (with newlines) | ✅ | `-----BEGIN RSA...` |
4141| `GITHUB_WEBHOOK_SECRET` | Secret for webhook verification | ✅ | `your-secret` |
4242-| `GITHUB_APP_NAME` | App name for installation URLs | ⚠️ | `kaneo-mycompany` |
4242+| `GITHUB_APP_NAME` | App slug for installation URLs in the UI | ⚠️ | `kaneo-mycompany` |
43434444<Warning>
4545`GITHUB_APP_NAME` is optional but recommended. It's used to generate direct installation links in the UI.
···5858 environment:
5959 # ... other environment variables
6060 GITHUB_APP_ID: "123456"
6161- GITHUB_CLIENT_ID: "Iv1.abc123def456"
6262- GITHUB_CLIENT_SECRET: "abc123def456ghi789jkl012mno345pqr678stu"
6361 GITHUB_PRIVATE_KEY: |
6462 -----BEGIN RSA PRIVATE KEY-----
6563 MIIEpAIBAAKCAQEA...
···8886type: Opaque
8987stringData:
9088 GITHUB_APP_ID: "123456"
9191- GITHUB_CLIENT_ID: "Iv1.abc123def456"
9292- GITHUB_CLIENT_SECRET: "abc123def456ghi789jkl012mno345pqr678stu"
9389 GITHUB_PRIVATE_KEY: |
9490 -----BEGIN RSA PRIVATE KEY-----
9591 MIIEpAIBAAKCAQEA...
···125121```bash
126122# .env file
127123GITHUB_APP_ID=123456
128128-GITHUB_CLIENT_ID=Iv1.abc123def456
129129-GITHUB_CLIENT_SECRET=abc123def456ghi789jkl012mno345pqr678stu
130124GITHUB_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
131125MIIEpAIBAAKCAQEA...
132126[Full contents of your private key]
+3-3
apps/docs/core/integrations/github/setup.mdx
···137137From the app settings page, note down these important values:
138138139139- **App ID** (shown at the top of the page)
140140-- **Client ID** (in the "Basic information" section)
141141-- **Client Secret** (click "Generate a new client secret")
142140- **Webhook Secret** (the one you created earlier)
143141- **Private Key** (contents of the downloaded `.pem` file)
144142143143+The GitHub App also shows an OAuth **Client ID** and **Client Secret** under "Basic information". Kaneo’s **repository integration** does not use those environment variables; they are only relevant if you enable **Sign in with GitHub** using `GITHUB_OAUTH_CLIENT_ID` / `GITHUB_OAUTH_CLIENT_SECRET` (see [GitHub SSO](/core/social-providers/github)).
144144+145145<Info>
146146-You'll need all of these values for the [configuration step](/core/integrations/github/configuration).
146146+You need **App ID**, **private key**, and **webhook secret** for the [configuration step](/core/integrations/github/configuration).
147147</Info>
148148</Step>
149149</Steps>
···105105**Solutions**:
1061061. **Verify All Variables Are Set**
107107 ```bash
108108- # Check if environment variables are loaded
108108+ # Check if integration environment variables are loaded (do not print secrets)
109109 echo $GITHUB_APP_ID
110110- echo $GITHUB_CLIENT_ID
111111- # etc.
110110+ if [ -n "$GITHUB_WEBHOOK_SECRET" ]; then echo "GITHUB_WEBHOOK_SECRET is set"; else echo "GITHUB_WEBHOOK_SECRET is missing"; fi
112111 ```
1131121141132. **Check Private Key Format**
···2572562582571. **Verify Environment Variables**
259258 ```bash
260260- # Check that all required variables are set (don't print private key!)
259259+ # Check that all required integration variables are set (don't print private key or webhook secret!)
261260 echo "App ID: $GITHUB_APP_ID"
262262- echo "Client ID: $GITHUB_CLIENT_ID"
263263- echo "Webhook Secret: [REDACTED]"
264261 echo "App Name: $GITHUB_APP_NAME"
262262+ if [ -n "$GITHUB_WEBHOOK_SECRET" ]; then echo "GITHUB_WEBHOOK_SECRET is set"; else echo "GITHUB_WEBHOOK_SECRET is missing"; fi
265263 ```
2662642672652. **Test Repository Access**
+2-2
apps/docs/core/social-providers/github.mdx
···13132. Create a new OAuth app.
14143. Set the redirect URI to `KANEO_API_URL/api/auth/callback/github`.
15154. Copy the client ID and client secret.
1616-5. Set the `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` environment variables.
1616+5. Set `GITHUB_OAUTH_CLIENT_ID` and `GITHUB_OAUTH_CLIENT_SECRET` (or the legacy `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` if you prefer).
17171818-For more information on what your `KANEO_API_URL` is, see the [Environment variables](/core/installation/environment-variables#github-sso--integration) page.
1818+For more information on what your `KANEO_API_URL` is, see the [Environment variables](/core/installation/environment-variables#github-sso) page.
19192020## Usage
2121