411 Commits

Author SHA1 Message Date
wmantly dacd65602c README: add a Logs section for the Docker stack
Both services (sso-manager, proxy) run under Compose; document how to get
logs via docker compose logs, the proxy's nginx access/error logs (which go
to /var/log/nginx on the proxy-logs volume, not docker logs), and a direct
ldapsearch health check for the SSO.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-11 21:02:03 -04:00
wmantly 8947b422bc Merge pull request #3 from theta42/setup-auto-update-submodules
setup.sh: update submodules to latest before building
2026-07-11 20:53:01 -04:00
wmantly 8377b6eda5 Merge pull request #2 from theta42/bump-proxy-submodule
Bump proxy submodule to cca5e48 (per-host SSO, host modal, basic auth)
2026-07-11 20:52:54 -04:00
wmantly 87c7d7bc82 setup.sh: update submodules to latest before building
Add a first step to setup.sh that runs `git submodule update --init --remote
--recursive`, so each ./setup.sh builds from the newest sso-manager-node + proxy
upstream rather than whatever was pinned at clone time. --init also populates
the submodules if the repo was cloned without --recursive.

Behavior:
- If the fetch is unreachable (offline), warn and continue building the
  currently checked-out code instead of hard-failing.
- SKIP_SUBMODULE_UPDATE=1 locks to the pinned commits (offline rebuild /
  deliberate pin).
- Verifies the build contexts (Dockerfile.openldap, Dockerfile) exist and
  dies with a clear message if a submodule was never initialized.
- Requires git (added to the Requires line); git absent is fatal unless
  SKIP_SUBMODULE_UPDATE=1.

Renumbered the subsequent step headers (env -> 2, sso-manager -> 3, ...).
README repo-layout note updated to say setup.sh auto-updates submodules.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-11 20:48:51 -04:00
wmantly fb7a7559b7 Bump proxy submodule to cca5e48 (per-host SSO, host modal, basic auth)
Updates the pinned proxy submodule from 94ad614 to cca5e48, bringing in:
- per-host SSO (#57): OpenResty gate + Node auth endpoints + Redis sessions
- host modal redesign (tabbed), wildcard-child default, allow-list autocomplete
- per-host HTTP basic auth (#57)
- user-creation + password-policy fixes (#48)
- scheduler DNS-domain-list refresh (#69)
- removal of unused invite / SSH-key user features

sso-manager-node unchanged (already at its master tip, fe9b7c1).

Config compatibility: the proxy's oidc / auth / ldap conf shape is unchanged,
so the proxy.env setup.sh generates (app_oidc__*, app_ldap__*, app_auth__*) is
still consumed as-is. New optional sections (hostSso, service.hostScheduler,
dynamicDns) ship with defaults and need no proxy.env entries.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-11 20:45:06 -04:00
wmantly 89aa6d1f50 Merge pull request #1 from theta42/expose-admin-uis-lan
Expose SSO (3001) + proxy mgmt (3000) UIs on the LAN by default
2026-07-11 20:41:09 -04:00
wmantly ca0ddb1997 Expose SSO (3001) + proxy mgmt (3000) UIs on the LAN by default
The SSO web UI and the proxy management UI were bound to 127.0.0.1, so they
were only reachable from the host running the stack — inconvenient during
first-run setup from another machine. Make the bind address configurable
(SSO_BIND / MGMT_BIND, default 0.0.0.0) so both are LAN-reachable by default,
with a one-line flip back to 127.0.0.1 once the proxy fronts them under TLS.

Also: friendlier README with an upfront prerequisites section (domain, >=2 DNS
records to the public IP, port-forward 80/443) and a note that .env values with
spaces should be quoted.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-11 20:38:11 -04:00
wmantly 5ec951a683 Fixed issues with password 2026-07-11 18:46:20 -04:00
wmantly f7edc5b672 Fixed env template 2026-07-11 18:42:05 -04:00
wmantly 391eca17da Fixed env template 2026-07-11 18:31:46 -04:00
wmantly 9fb240ff45 theta-env: unified SSO Manager + Proxy stack with one-command setup
Composes theta42/sso-manager-node and theta42/proxy (as git submodules) on a
single Docker network and automates first-run wiring.

- docker-compose.yml: sso-manager (build ./sso-manager-node/Dockerfile.openldap)
  + proxy (build ./proxy/Dockerfile) on theta-net; SSO UI + mgmt port bound to
  localhost, LDAPS published, proxy 80/443/4443 published.
- setup.sh: idempotent one-command bring-up — validates .env, starts SSO, runs
  the bootstrap, writes ./proxy.env, starts the proxy, prints admin login.
- bootstrap/bootstrap.js: runs inside the sso-manager container (self-contained,
  Node built-ins + fetch only) — creates the LDAP service account, first admin
  (+ app_sso_admin/app_sso_oauth_admin membership), registers the proxy as an
  OIDC client via the SSO HTTP API, emits CLIENT_ID/CLIENT_SECRET.
- .env.example: all tunables (LDAP_BASE_DN, LDAP_ADMIN_PASS, JWT_SECRET,
  SSO_HOST, PROXY_HOST, BOOTSTRAP_ADMIN_*, LDAP_SERVICE_PASS, SMTP_*, ports).
- README.md + docs/ (Jekyll site for GitHub Pages): quickstart, architecture,
  standalone usage.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-11 17:04:36 -04:00