Buttons appear only for providers you’ve configured. A fresh self-host shows no
social buttons at all (not dead ones) — email + password just works.
How it works
For each provider you register an OAuth app, then set two environment variables:<PROVIDER>_CLIENT_ID and <PROVIDER>_CLIENT_SECRET. Restart the API and the
“Continue with …” button shows up on the login and sign-up screens.
The callback URL you register with the provider is always:
https://api.example.com:
- Google →
https://api.example.com/v1/auth/oauth/google/callback - GitHub →
https://api.example.com/v1/auth/oauth/github/callback - GitLab →
https://api.example.com/v1/auth/oauth/gitlab/callback
GitHub
1
Create an OAuth app
GitHub → Settings → Developer settings → OAuth Apps → New OAuth App.
Set the Authorization callback URL to
<API_BASE_URL>/v1/auth/oauth/github/callback.2
Set the env vars
1
Create OAuth credentials
Google Cloud Console → APIs & Services → Credentials → Create credentials →
OAuth client ID → Web application. Add
<API_BASE_URL>/v1/auth/oauth/google/callback under Authorized redirect
URIs.2
Set the env vars
GitLab
1
Create an application
GitLab → Preferences → Applications (or a group/instance application).
Redirect URI:
<API_BASE_URL>/v1/auth/oauth/gitlab/callback. Scope: read_user.2
Set the env vars
In Docker
Add the variables to your.env — the compose file already passes them through to
the API: