06a93cde54
Captured from a fresh theta-env install with demo data, via headless Chrome + Playwright (scripted login, no manual UI interaction needed to reproduce). Also adds a top-of-README Documentation link pointing at GitHub Pages, matching theta42/proxy's README. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
layout, title
| layout | title |
|---|---|
| default | Home |
SSO Manager
A self-hosted OpenID Connect provider with a bundled OpenLDAP directory and a web management UI — for home labs and small businesses that want their own identity provider instead of a hosted one.
Screenshots
| Dashboard | Users |
|---|---|
![]() |
![]() |
| Groups | OAuth Apps |
|---|---|
![]() |
![]() |
Features
- OpenID Connect / OAuth 2.0 provider — issue your own access/refresh/id tokens; protect your apps with OIDC login.
- OpenLDAP directory — users, groups, POSIX accounts (
posixAccount/inetOrgPerson), SSH public keys, and sudo roles, withmemberOf+ referential-integrity overlays. - Web management UI — manage users, groups, and OAuth clients from a browser; invite/password-reset flows over email.
- LDAPS for legacy apps — apps that bind LDAP directly (Gitea, Emby, …) can use LDAPS (636) / StartTLS.
- All-in-one Docker image — app + OpenLDAP + Redis in one container, or
run each piece separately via
app_*env config.
Quick Start
Docker (all-in-one)
git clone https://github.com/theta42/sso-manager-node.git
cd sso-manager-node
cp secrets.js.example nodejs/conf/secrets.js # edit it, or use app_* env
docker compose up -d --build
The web UI comes up at http://localhost:3001. See the
Deployment Guide for the full set of app_* env vars.
Bare metal (Debian/Ubuntu)
sudo ./install.sh
Idempotent installer — installs Node.js, OpenLDAP, Redis, configures the app, and starts a systemd unit. Re-run to update.
Run it together with the proxy
The proxy (theta42/proxy) fronts this SSO under TLS and protects it with OIDC, while also binding LDAP directly. Run both with one command via theta-env:
git clone --recursive https://github.com/theta42/theta-env.git
cd theta-env && cp setup.env.example setup.env # set CFG_DOMAIN to your domain, then:
./setup.sh
Documentation
- Deployment Guide — Docker + bare metal, the config layers,
the
app_*env reference, backups. - Configuration — every
app_*env var and the conf merge order. - OAuth / OIDC — the provider: discovery, client management, token lifetimes, scopes.
- LDAP — directory layout, TLS, overlays, schema, direct-bind service accounts.
Architecture
┌─────────────┐
│ Browser / │
│ OIDC apps │
└──────┬──────┘
│ HTTP/HTTPS
▼
┌────────────────────────┐ ┌─────────────┐
│ Express SSO Manager │◄────►│ Redis │
│ - OIDC provider │ │ - sessions │
│ - web UI (:3001) │ │ - models │
│ - management API │ └─────────────┘
└────────┬───────────────┘
│ ldapi/ldap (localhost)
▼
┌────────────────────────┐
│ OpenLDAP (slapd) │
│ - users / groups │
│ - LDAPS :636 │─── legacy apps bind directly
│ - StartTLS :389 │
└────────────────────────┘
Community
License
MIT License — see the repository for details.



