diff --git a/README.md b/README.md index 25c315d..224147e 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,8 @@ It is **both** an OIDC client of the SSO (for login) **and** a direct LDAP client (for user lookups). Legacy apps can still bind to LDAPS on the SSO directly. +- **Multi-Site Support (Geo-Location Scaling):** Built-in support for N-Way Multi-Master LDAP replication, allowing you to deploy the stack across multiple physical locations for HA and low latency. + --- ## Before you begin diff --git a/docker-compose.yml b/docker-compose.yml index de7a5a8..0f40fa4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,6 +56,8 @@ services: # reads that are not part of its conf tree. - NODE_ENV=production - NODE_PORT=3001 + - LDAP_SERVER_ID=${LDAP_SERVER_ID:-} + - LDAP_REPLICATION_HOSTS=${LDAP_REPLICATION_HOSTS:-} volumes: # Operator-edited SSO secrets (sso-secrets.js). Read-WRITE so the bootstrap # can write the generated OAuth client creds into proxy-secrets.js. The diff --git a/docs/index.md b/docs/index.md index aab802e..939cc6a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -44,6 +44,7 @@ snapshots state before every rebuild. - **LDAPS** for legacy apps that bind directly. - **Self-service API tokens** in both apps' UIs, for scripting/CI without a browser session. +- **Multi-Site Support (Geo-Location Scaling)** — built-in support for N-Way Multi-Master LDAP replication across physical locations. ## Get it diff --git a/setup.env.example b/setup.env.example index 8aff21a..0df1564 100644 --- a/setup.env.example +++ b/setup.env.example @@ -58,4 +58,16 @@ CFG_DOMAIN=example.com # password is the exception — see ./config/proxy-secrets.js's auth.localAdminPass # comment for how to actually change it after the account exists). Do NOT set # CFG_LDAP_ADMIN_PASS / CFG_JWT_SECRET / CFG_ADMIN_PASS / CFG_SVC_PASS / -# CFG_PROXY_ADMIN_PASS here. \ No newline at end of file +# CFG_PROXY_ADMIN_PASS here. + +# ── Geo-Location Scaling (N-Way Multi-Master LDAP) ─────────────────────────── +# If deploying this stack across multiple physical sites to provide local HA +# for directory services, you can enable N-Way Multi-Master OpenLDAP replication. +# This requires assigning a unique ID to each site and listing the LDAPS URLs +# of all OTHER sites in the cluster. +# +# Each site MUST have a unique LDAP_SERVER_ID (e.g. 1, 2, 3). +# LDAP_REPLICATION_HOSTS is a space-separated list of the other sites' LDAP URLs. +# Example for Site 1: +#LDAP_SERVER_ID=1 +#LDAP_REPLICATION_HOSTS="ldaps://sso.site2.com:636 ldaps://sso.site3.com:636" \ No newline at end of file