| Method | Best For | Requires |
|---|---|---|
| GitHub OAuth | Teams using GitHub | GitHub OAuth App |
| Google OAuth | Google Workspace orgs | Google Cloud project |
| Email/Password | Air-gapped environments | Nothing extra |
GitHub OAuth
Create GitHub OAuth App
- Go to GitHub Developer Settings
- Click New OAuth App
- Fill in:
- Application name: Proliferate
- Homepage URL:
https://your-domain.com - Authorization callback URL:
https://your-domain.com/api/auth/callback/github
- Click Register application
GitHub App (repo access)
For private repo access and GitHub‑based triggers, set up a GitHub App. See Self‑hosting → GitHub App for the full checklist (URLs, permissions, webhooks, and env vars).Current behavior: GitHub App credentials are required unless
NEXT_PUBLIC_USE_NANGO_GITHUB=true.Google OAuth
Create Google Cloud project
- Go to Google Cloud Console
- Create a new project or select existing
- Go to APIs & Services → Credentials
Configure OAuth consent screen
- Click Configure Consent Screen
- Choose Internal (for Google Workspace) or External
- Fill in app name, support email, and authorized domains
Create OAuth client
- Click Create Credentials → OAuth client ID
- Choose Web application
- Add authorized redirect URI:
https://your-domain.com/api/auth/callback/google
Email/Password Authentication
For environments without OAuth, Proliferate supports local email/password authentication.Configuration
Without Email Verification
If you don’t want email verification, set:EMAIL_ENABLED=false and NEXT_PUBLIC_ENFORCE_EMAIL_VERIFICATION=false, email is disabled and Resend is not required.
With Email Verification
Configure Resend to require email verification:- Sign up at resend.com
- Verify your domain
- Create an API key
- Add to
.env:
Multiple Providers
You can enable multiple authentication methods simultaneously:Auth Secrets
These secrets are required for all authentication methods:Troubleshooting
OAuth callback error
OAuth callback error
- Verify the callback URL matches exactly (including trailing slashes)
- Check that your domain is accessible from the internet
- Ensure the OAuth app is not in development mode (Google)
Users can't sign in
Users can't sign in
- Check
docker-compose logs webfor auth errors - Verify BETTER_AUTH_SECRET is set
- Ensure the database is accessible
Email verification not working
Email verification not working
- Verify RESEND_API_KEY is correct
- Check that your domain is verified in Resend
- Check
docker-compose logs webfor email errors
