Files
sso-manager-node/docs/index.md
T
wmantly cedef0ed09 Redesign docs site: match the app's own look, add SEO, mobile-ready
The GitHub Pages site used the generic jekyll-theme-cayman theme --
purple gradient hero, no site nav, no per-page SEO. Replaced with a
custom layout that mirrors the actual app UI: dark fixed navbar with
the theta42 logo, Bootstrap 5 + Font Awesome (same stack the app
uses), content in a card, dark footer matching bottom.ejs
(copyright, MIT license, GitHub, Changelog links).

- New cross-page nav (Home/Deployment/Configuration/OAuth/LDAP/
  Changelog) -- there was previously no way to get from one docs
  page to another except a single "Back to Home" link per page.
- SEO: jekyll-seo-tag + jekyll-sitemap (both GitHub-Pages-supported
  plugins, no custom build needed) -- real per-page meta description,
  Open Graph/Twitter card tags, canonical URLs, JSON-LD, sitemap.xml,
  and a robots.txt referencing it. Added a real description to every
  page's front matter (none existed before).
- Mobile: Bootstrap's responsive grid + collapsible navbar; the
  screenshot pairs in index.md (inline width="49%" for a two-up
  desktop layout) now stack to full-width below 576px instead of
  squeezing illegibly small.

Verified with a real Jekyll build (jekyll/jekyll Docker image, no
Ruby available locally) + Playwright: desktop and mobile (375px)
screenshots of the home and deployment pages, mobile nav toggle
open/close, active-link highlighting per page, zero console/page
errors, and confirmed real SEO output (meta description, OG/Twitter
tags, canonical, JSON-LD, sitemap.xml, robots.txt) via curl against
the served site.
2026-07-16 19:52:26 -04:00

3.6 KiB

layout, title, description
layout title description
default Home A self-hosted OpenID Connect provider with a bundled OpenLDAP directory and a web management UI. One login for your modern apps, one LDAP directory for the rest, no phone-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.

One place to manage your users and groups, one login (OIDC) your modern apps can use, and one LDAP directory your older or odder apps can bind to directly. Everything runs on your own hardware; no phone-home, no hosted control plane, no per-user pricing.

Part of the theta42 self-hosted identity stack, alongside Proxy (an OIDC + LDAP-aware reverse proxy) and theta-env (the two composed with one command).

Screenshots

Dashboard User list Groups OAuth clients

(click any screenshot to view full size)

Why this over the alternatives

Tools like Keycloak, Authentik, Authelia, or Zitadel are OIDC providers, but LDAP is either a paid feature, a federation target you have to run separately, or absent. If your stack already has apps that speak LDAP directly — or you just want one real directory as the source of truth — you end up running two identity systems and keeping them in sync.

SSO Manager bundles the OpenLDAP directory with the OIDC provider, so OIDC apps and LDAP apps read from the same users and groups. The trade-off is scope: it's intentionally small and self-hosted, not an enterprise IAM suite. If you want a lightweight, self-contained identity provider with a real LDAP backend, that's the niche.

Features

  • OpenID Connect / OAuth 2.0 provider — your own access/refresh/ID tokens; standard discovery document at /.well-known/openid-configuration.
  • Bundled OpenLDAP directory — users, groups, POSIX accounts, SSH public keys, and sudo roles, with memberOf + referential-integrity overlays.
  • Web management UI — users, groups, and OAuth clients from a browser; invite and password-reset flows over email; self-service profile + API tokens.
  • LDAPS for legacy apps — anything that binds LDAP directly (Gitea, Emby, …) uses LDAPS/StartTLS against the same directory.
  • All-in-one Docker image — app + OpenLDAP + Redis in one container, or run the pieces separately via app_* env config.

Get it

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

That's the standalone quick start. For the full set of install options (Docker, bare-metal, or as part of the combined SSO + proxy stack), the app_* env reference, and the OAuth/LDAP internals, see the GitHub repository.

  • Proxy — an OIDC + LDAP-aware reverse proxy, designed to sit in front of this SSO.
  • theta-env — runs this SSO Manager and the proxy together with one command.