01 Identity
Passkeys, not passwords.
PocketID issues OIDC to every service on the platform. Passkey-first. Admin-scoped API keys. SSO loops configured in one line of the wizard.
- OAuth2 / OIDC provider
- WebAuthn, FIDO2, platform authenticators
- Forward-auth gateway for every subdomain
02 Automation
N8N, pre-wired.
Webhooks, schedules, queue workers. Uses the platform Postgres and inherits SSO — no separate user store.
03 Multi-tenant Chat
OpenWebUI × LiteLLM.
Per-tenant LLM workspaces with OpenAI-compatible APIs. OpenRouter, Anthropic, OpenAI, or your own endpoints.
04 Observability
Prometheus + Kuma.
Every service scraped. Uptime, response-time, node, cgroup, container metrics. Alert to Slack or email.
05 Reverse Proxy
Caddy with wildcard TLS.
DNS-01 via Cloudflare. Auto-renewing wildcards across multiple zones. Single-host or fleet.
06 Shared Data
One Postgres, tenants isolated.
A single hardened Postgres 16 with per-app databases, per-app roles, nightly backups. PocketID, N8N, Kuma, and each AI-Chat tenant share the cluster but never each other's rows.
obs_platform / pocketid / n8n / uptimekuma / <tenant>_db / <tenant>_litellm
07 Post-install
Day-2 is already done.
DNS records, OIDC clients, Kuma monitors — all driven headlessly by install.sh configure-* once you've enrolled the first admin passkey.