7.9 KiB
Authentik Setup Guide — Research Stack
Status: 2026-05-21
Authentik is deployed in LXC 100 with local PostgreSQL 16 and Redis.
Current State
- URL:
https://auth.researchstack.info(Caddy reverse proxy ->192.168.100.100:9000) - Default admin:
akadmin/authentik(CHANGE THIS IMMEDIATELY) - Backend: PostgreSQL 16 in Docker (
authentik-postgresql)
Step 1: First Login & Bootstrap
- Open
https://auth.researchstack.info(use SSH tunnel if netcup ports blocked) - Login with
akadmin/authentik - Go to Admin Interface (top right)
- Navigate to Directory -> Users -> akadmin
- Change password to a strong unique password
- (Optional) Add your email for recovery
Step 2: Create Forward Auth Provider (for Caddy)
This protects vault.researchstack.info and future ARR services.
- In Admin Interface, go to Applications -> Providers
- Click Create
- Select Proxy Provider
- Fill in:
- Name:
caddy-forward-auth - Authorization flow:
default-provider-authorization-implicit-consent - Internal host:
http://192.168.100.100:9100(vault service) - External host:
https://vault.researchstack.info - Mode:
Forward domain
- Name:
- Save
Step 3: Create Application
- Go to Applications -> Applications
- Click Create
- Fill in:
- Name:
Credential Vault - Slug:
vault - Provider:
caddy-forward-auth
- Name:
- Save
Step 4: Configure Outpost
- Go to Applications -> Outposts
- The authentik Embedded Outpost is already running
- Edit it, add
Credential Vaultto the list of applications - Save
The outpost listens on 192.168.100.100:9000 (same as Authentik).
Step 5: Update Caddy Forward Auth
On the VPS, edit /opt/caddy/Caddyfile:
vault.researchstack.info {
tls {
dns porkbun { ... }
}
forward_auth 192.168.100.100:9000 {
uri /outpost.goauthentik.io/auth/caddy
copy_headers X-Authentik-Username X-Authentik-Groups X-Authentik-Email X-Authentik-Name
}
reverse_proxy 192.168.100.100:9100
}
Then reload:
/opt/caddy/caddy reload --config /opt/caddy/Caddyfile
Step 6: Test
- Open
https://vault.researchstack.infoin an incognito window - You should be redirected to Authentik login
- After logging in, you should see the credential vault JSON response
Step 7: Add Users
- Go to Directory -> Users
- Create users for anyone who needs access
- (Optional) Add users to Directory -> Groups for role-based access
Next: ARR Stack Apps
For each ARR service, repeat Steps 2-5:
| Service | Internal Host | External Host | Provider Name |
|---|---|---|---|
| Sonarr | http://192.168.100.100:8989 |
https://sonarr.researchstack.info |
sonarr-forward-auth |
| Radarr | http://192.168.100.100:7878 |
https://radarr.researchstack.info |
radarr-forward-auth |
| Lidarr | http://192.168.100.100:8686 |
https://lidarr.researchstack.info |
lidarr-forward-auth |
| Readarr | http://192.168.100.100:8787 |
https://readarr.researchstack.info |
readarr-forward-auth |
| Prowlarr | http://192.168.100.100:9696 |
https://prowlarr.researchstack.info |
prowlarr-forward-auth |
| Bazarr | http://192.168.100.100:6767 |
https://bazarr.researchstack.info |
bazarr-forward-auth |
All can use the same embedded outpost.
Chat Subdomain (chat.researchstack.info)
Status: Caddy configured, placeholder deployed. Authentik provider+app pending.
Provider setup (repeat Steps 2-4 above):
| Field | Value |
|---|---|
| Provider name | research-stack-chat |
| Authorization flow | default-provider-authorization-implicit-consent |
| Internal host | http://100.101.247.127 (placeholder; will become Steam Deck Open WebUI) |
| External host | https://chat.researchstack.info |
| Mode | Forward domain |
Application setup:
| Field | Value |
|---|---|
| Name | Research Stack Chat |
| Slug | research-stack-chat |
| Provider | research-stack-chat |
Outpost: Add Research Stack Chat to the authentik Embedded Outpost.
Caddy (already deployed on microvm-racknerd):
chat.researchstack.info {
forward_auth * http://100.119.165.120:9000 {
uri /outpost.goauthentik.io/auth/caddy
copy_headers X-Authentik-Username X-Authentik-Email X-Authentik-Name X-Authentik-Uid X-Authentik-Jwt X-Authentik-Meta-Jwt X-Authentik-Meta-App X-Authentik-Meta-Version
}
root * /var/www/researchstack/chat
file_server
try_files {path} /index.html
}
When Steam Deck is onboarded: Change the Caddy site block from file_server to reverse_proxy <steam-deck-tailscale-ip>:8080.
Dashboard Subdomain (dash.researchstack.info)
Status: Deployed. Homer static files on microvm-racknerd. DNS pending.
Provider setup:
| Field | Value |
|---|---|
| Provider name | research-stack-dash |
| Authorization flow | default-provider-authorization-implicit-consent |
| Internal host | http://100.101.247.127 |
| External host | https://dash.researchstack.info |
| Mode | Forward domain |
Application setup:
| Field | Value |
|---|---|
| Name | Research Stack Dashboard |
| Slug | research-stack-dash |
| Provider | research-stack-dash |
Caddy:
dash.researchstack.info {
forward_auth * http://100.119.165.120:9000 {
uri /outpost.goauthentik.io/auth/caddy
copy_headers ...
}
root * /var/www/researchstack/dash
file_server
try_files {path} /index.html
}
Status Monitoring Subdomain (status.researchstack.info)
Status: Deployed. Uptime Kuma on nixos-laptop via podman. DNS pending.
Provider setup:
| Field | Value |
|---|---|
| Provider name | research-stack-status |
| Authorization flow | default-provider-authorization-implicit-consent |
| Internal host | http://100.119.165.120:3001 |
| External host | https://status.researchstack.info |
| Mode | Forward domain |
Application setup:
| Field | Value |
|---|---|
| Name | Research Stack Status |
| Slug | research-stack-status |
| Provider | research-stack-status |
Caddy:
status.researchstack.info {
forward_auth * http://100.119.165.120:9000 {
uri /outpost.goauthentik.io/auth/caddy
copy_headers ...
}
reverse_proxy http://100.119.165.120:3001
}
Auth Alias (auth.researchstack.info)
Status: Deployed. Clean alias redirect to main Authentik interface.
Provider setup:
| Field | Value |
|---|---|
| Provider name | research-stack-auth |
| Authorization flow | default-provider-authorization-implicit-consent |
| Internal host | http://100.119.165.120:9000 |
| External host | https://auth.researchstack.info |
| Mode | Forward domain |
Application setup:
| Field | Value |
|---|---|
| Name | Research Stack Auth |
| Slug | research-stack-auth |
| Provider | research-stack-auth |
Caddy:
auth.researchstack.info {
forward_auth * http://100.119.165.120:9000 {
uri /outpost.goauthentik.io/auth/caddy
copy_headers ...
}
redir / https://researchstack.info/ permanent
}
Behavior: Visiting https://auth.researchstack.info triggers Authentik login (if not authenticated), then redirects to https://researchstack.info/.
Troubleshooting
Certificate errors?
- Check
journalctl -u caddyon the VPS
Authentik not reachable?
- Verify Docker containers in LXC 100:
pct exec 100 -- docker ps - Check Authentik logs:
pct exec 100 -- docker logs authentik-server
Forward auth not working?
- Verify outpost application assignment
- Check Caddy logs for
forward_autherrors - Ensure
auth.researchstack.infois accessible (the outpost needs to redirect there)