docs: Add Immich and Headscale client examples (#191)

This commit is contained in:
Jeffrey Garcia
2025-01-31 16:00:54 -08:00
committed by GitHub
parent 28346da731
commit 75f531fbc6
3 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
---
id: headscale
---
# Headscale
## Create OIDC Client in Pocket ID
1. Create a new OIDC Client in Pocket ID (e.g., `Headscale`).
2. Set the callback URL: `https://<HEADSCALE-DOMAIN>/oidc/callback`
3. Enable `PKCE`.
4. Copy the **Client ID** and **Client Secret**.
## Configure Headscale
> Refer to the example [`config.yaml`](https://github.com/juanfont/headscale/blob/main/config-example.yaml) for full OIDC configuration options.
Add the following to `config.yaml`:
```yaml
oidc:
issuer: "https://<POCKET-ID-DOMAIN>"
client_id: "<CLIENT-ID>"
client_secret: "<CLIENT-SECRET>"
pkce:
enabled: true
method: S256
```
### (Optional) Restrict Access to Certain Groups
To allow only specific groups, add:
```yaml
scope: ["openid", "profile", "email", "groups"]
allowed_groups:
- <POCKET-ID-GROUP-NAME> #example: headscale
```

View File

@@ -0,0 +1,26 @@
---
id: immich
---
# Immich
## Create OIDC Client in Pocket ID
1. Create a new OIDC Client in Pocket ID (e.g., `immich`).
2. Set the callback URLs:
```
https://<IMMICH-DOMAIN>/auth/login
https://<IMMICH-DOMAIN>/user-settings
app.immich:///oauth-callback
```
4. Copy the **Client ID**, **Client Secret**, and **OIDC Discovery URL**.
## Configure Immich
1. Open Immich and navigate to:
**`Administration > Settings > Authentication Settings > OAuth`**
2. Enable **Login with OAuth**.
3. Fill in the required fields:
- **Issuer URL**: Paste the `Authorization URL` from Pocket ID.
- **Client ID**: Paste the `Client ID` from Pocket ID.
- **Client Secret**: Paste the `Client Secret` from Pocket ID.
4. *(Optional)* Change `Button Text` to `Login with Pocket ID`.
5. Save the settings.
6. Test the OAuth login to ensure it works.

View File

@@ -61,7 +61,9 @@ const sidebars: SidebarsConfig = {
items: [
"client-examples/cloudflare-zero-trust",
"client-examples/grist",
"client-examples/headscale",
"client-examples/hoarder",
"client-examples/immich",
"client-examples/jellyfin",
"client-examples/netbox",
"client-examples/open-webui",