Remove Organizr dashboard and Netdata monitoring: - Delete stacks/organizr.yml and stacks/netdata.yml - Delete organizr-widgets/ directory and npm forward-auth config - Remove organizr database references from postgres-shared docs Promote Tatlock UI as primary dashboard: - Move from port 8092 to 9999 (Organizr's port) - Enable external access at home.schweitz.net - Update all documentation references Update service counts: 26 containers across 20 stacks 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
NPM Forward Auth Configuration Files
This directory contains Nginx configuration snippets for Nginx Proxy Manager (NPM) forward authentication with Authentik.
Deployment Strategy
Services to protect with forward auth (in order):
- Core API (api.schweitz.net) - Use OIDC instead of forward auth
- Nextcloud (cloud.schweitz.net)
- Gitea (git.schweitz.net)
- Jellyfin (media.schweitz.net)
- Open WebUI, etc.
Rule: Deploy to ONE service at a time, test for 24 hours before proceeding to next.
Important Notes
Services That Should NOT Have Forward Auth
- ❌ auth.schweitz.net - The Authentik server itself (causes redirect loops)
- ❌ Any service not listed in the gradual rollout plan
Before Applying Configuration
- Create backup of NPM database
- Have rollback procedure ready
- Test in incognito window first
- Monitor logs actively
Configuration Template Structure
All forward auth configs follow this structure:
# 1. Buffer sizes (required for large auth headers)
proxy_buffers 8 16k;
proxy_buffer_size 32k;
# 2. Auth request directive
auth_request /outpost.goauthentik.io/auth/nginx;
error_page 401 = @goauthentik_proxy_signin;
# 3. Capture auth response headers
auth_request_set $auth_cookie $upstream_http_set_cookie;
# ... (other headers)
# 4. Forward headers to application
add_header Set-Cookie $auth_cookie;
proxy_set_header X-authentik-username $authentik_username;
# ... (other headers)
# 5. Outpost proxy location
location /outpost.goauthentik.io {
proxy_pass https://authentik-proxy:9443/outpost.goauthentik.io;
# ... (proxy settings)
}
# 6. Signin redirect handler
location @goauthentik_proxy_signin {
internal;
return 302 https://auth.schweitz.net/outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri;
}
Monitoring During Rollout
After applying forward auth to any service, monitor:
-
Authentik Proxy Logs:
docker logs authentik-proxy -f -
NPM Logs:
docker logs npm -f -
Service-Specific Logs:
docker logs <service-name> -f -
Memory Usage:
docker stats authentik-proxy --no-stream
Success Criteria
Before proceeding to next service:
- ✅ No redirect loops
- ✅ Authentication works consistently
- ✅ Logout works correctly
- ✅ No errors in logs
- ✅ No memory leaks or performance issues
- ✅ SSO cookie persists across sessions
Rollback Procedure
If issues occur with ANY service:
- Edit the proxy host in NPM
- Go to Advanced tab
- Delete the forward auth configuration
- Save
- Service will be accessible without authentication again
- Investigate logs and fix issues before re-applying
Last Updated: 2025-11-21 Authentik Version: 2024.8.4 Outpost Type: Standalone (authentik-proxy container)