Add comprehensive documentation for VPS setup and configuration including: - Project instructions - VPS1 starting point configuration - VPS1 current state documentation - VPS1 todo list Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4.2 KiB
Netbird OIDC Integration Guide
Overview
This guide explains how to integrate your applications (Gitea, Immich, Nextcloud) with Netbird's Zitadel identity provider for single sign-on (SSO) authentication.
Prerequisites
- Netbird is running and accessible at
nb.phiiiil.de - You have admin access to the Netbird dashboard
- DNS records are configured for your applications
Zitadel (Netbird Identity Provider)
Zitadel is running as part of Netbird and is accessible via Caddy reverse proxy.
Management Console: https://nb.phiiiil.de/ui
Step 1: Access Zitadel Console
- Go to
https://nb.phiiiil.de - Login with your Netbird admin credentials
- Click on "Zitadel" or access via
https://nb.phiiiil.de/ui
Step 2: Create OIDC Application for Gitea
In Zitadel Console:
-
Navigate to Projects → New Project
- Name:
Gitea - Project role: Click "Create"
- Name:
-
Go to the new Project → Settings → Note the Project ID
-
Create Application:
- Go to Applications → New
- Application Name:
gitea - Application Type: Web
- Redirect URIs:
https://git.phiiiil.de/user/oauth2/zitadel/callback
- Post Logout URIs:
- Auth Method: PKCE
- Click Continue
-
Note the following:
- Client ID
- Client Secret (click to reveal)
Step 3: Configure Gitea
Via Gitea Web UI (Initial Setup):
-
Access Gitea at
https://git.phiiiil.de(after DNS is configured) -
Create initial admin account
-
Go to Administration → Authentication Sources
-
Add OAuth2 Authentication:
- Authentication Name: Netbird Zitadel
- OAuth2 Provider: OpenID Connect
- Client ID: [From Zitadel]
- Client Secret: [From Zitadel]
- OpenID Connect Discovery Endpoint:
https://nb.phiiiil.de/.well-known/openid-configuration - Auto-discover Email Address: Enabled
- Scopes:
openid profile email - Email Authentication Field: Email
- Update Avatar: Enabled
-
Click Create Authentication Source
Via Gitea Configuration (Alternative):
Edit /home/phil/docker/gitea/.env or add to docker-compose.yml:
environment:
- GITEA__oauth2__ENABLE=true
- GITEA__oauth2__OPENID_CONNECT_SCOPES=openid,email,profile,groups
Then configure via web UI as above.
Step 4: Test SSO
- Logout of Gitea
- Login page should now show "Sign in with Netbird Zitadel"
- Click to authenticate via Netbird
Troubleshooting
Issue: Redirect URI mismatch
Solution: Ensure the redirect URI in Zitadel exactly matches: https://git.phiiiil.de/user/oauth2/zitadel/callback
Issue: Discovery endpoint fails
Solution: Check that Caddy is properly proxying OIDC requests:
docker logs netbird-caddy-1 | grep -i openid
Issue: User not created automatically
Solution: In Gitea admin settings, enable "Auto-create users for OAuth2"
Additional Applications
Immich
- Redirect URI:
https://immich.phiiiil.de/auth/login - Similar process via Immich Admin → Settings → Authentication
Nextcloud
- Redirect URI: `https://nc.phiiiil.de/index.php/apps/user_oidc/code*
- Requires Nextcloud OIDC app
- Configure in Nextcloud → Settings → Administration → Security
Security Notes
- Store credentials securely: Keep
.envfiles with proper permissions (600) - Use HTTPS only: All OAuth2 communication requires HTTPS
- Enable PKCE: Uses Proof Key for Code Exchange for security
- Limit scopes: Only request necessary user information
Netbird OIDC Endpoints
The OIDC discovery endpoint is: https://nb.phiiiil.de/.well-known/openid-configuration
This endpoint provides:
- Authorization endpoint
- Token endpoint
- JWKS URI
- Supported scopes
Current Status
- ✅ Zitadel running as part of Netbird
- ✅ Caddy configured to proxy OIDC requests
- ⏳ DNS records needed for git.phiiiil.de and immich.phiiiil.de
- ⏳ Manual OIDC configuration required in Gitea
Next Steps
- Update DNS records for
git.phiiiil.de→152.53.119.222 - Wait for DNS propagation (usually 1-24 hours)
- Access Gitea and complete initial setup
- Create OIDC application in Zitadel
- Configure Gitea with OIDC credentials
- Test SSO login