Base image for yadd/lemonldap-ng-* dockers. Does nothing except configuring
LemonLDAP::NG.
lts-2.21: LTS version until 2030stable: latest lemonldap-ng* packages from Debian backports with stable patchesstable-no-s6: the same without S6-overlay2.x.x-y: versioned lemonldap-ng* packages from Debian backports with patches version "y"2.x.x-y-no-s6: the same without S6-overlayThere are also date-based tags.
SSODOMAIN)PORTAL)LOGLEVEL)REDIS_SERVER is set, change globalStorage to Apache::Session::Browseable::Redis
and configure it (indexes given by REDIS_INDEXES, default: "uid mail")PG_SERVER is given ANDFORCE_KEY_REGENERATION is set to yesIt is generaly a good idea to set this value to
yes
STRICT_SERVER_NAME = (any value will set the Debian default website to catch requests without good Host header, this ensure respect of manager rules)SSODOMAIN = example.comCROWDSEC_SERVER = (full base url, example: http://myserver:8080)CROWDSEC_POLICY = reject (possible values: warn, reject)CROWDSEC_KEY = (required, given by cscli bouncers add mylemon)CROWDSEC_IGNORE_FAILURES = (possible values: 1)FORWARDED_BY = (set here the IP address of reverse proxy if any)FORWARDED_HEADER = X-Forwarded-ForPORTAL = http://auth.example.com/ (full URL needed here)LISTEN = (set :PORTNUMBER here if you want to access directly to FastCGI server)LLNG_AUDITLOGGER = Lemonldap::NG::Common::AuditLogger::UserLoggerJSON
(alternative value: Lemonldap::NG::Common::AuditLogger::UserLoggerCompat to keep logs as text)LOGLEVEL = info (possible values: debug, info, notice, warn, error)LOGGER = syslog (possible values: stderr, syslog, loki)USERLOGGER = syslog (possible values: stderr, syslog, loki)AUDITLOGGER =NGINX_LOG_JSON = (if a value is set, then default llng format is changed into JSON)LOKIURL = http://localhost:3100/loki/api/v1/pushLOKITENANT =FORCE_KEY_REGENERATION = noLANGUAGES = default LLNG list (set here the wanted languages separated by comma. Example: fr,en)PG_SERVER =PG_DATABASE = lemonldapngPG_USER = lemonldapPG_PASSWORD = lemonldapPG_TABLE = lmConfigPG_OPTIONS =DBI_CHAIN = if $PG_SERVER then DBI:Pg:database=$PG_DATABASE;host=$PG_SERVER;$PG_OPTIONS else ""DBI_USER = $PG_USERDBI_PASSWORD = $PG_PASSWORDREDIS_SERVER =REDIS_INDEXES = _whatToTrace _session_kind _utime ipAddr _httpSessionType _user (see Apache::Session::Browseable::Redis)REDIS_SERVER is empty and configuration database is empty:
PG_PERSISTENT_SESSIONS_TABLE = psessionsPG_SESSIONS_TABLE = sessionsPG_SAML_TABLE = samlsessionsPG_OIDC_TABLE = oidcsessionsPG_CAS_TABLE = cassessionsHANDLER_CRON = yesPORTAL_CRON = yesLemonLDAP::NG logs: when using default values (syslog), logs are stored in /var/log/syslogd/ (default S6 behavior)
Use PG_OPTIONS to set additional parameters. Examples:
PG_OPTIONS=port=23456PG_OPTIONS=sslmode=requirePG_OPTIONS=port=23456;PG_OPTIONS=sslmode=requireOr use DBI_CHAIN directly (and then DBI_USER and DBI_PASSWORD):
DBI_CHAIN=dbi:Pg:dbname=lemonldapng;host=postgresql.host.tld;port=23456;sslmode=require
DBI_USER=pguser
DBI_PASSWORD=pgpassword
You can easily override any Lemonldap::NG configuration parameter using the
overlay system
(starting from 2.19.0-1 tag). Simply push files into /over directory:
You can also easily override any Lemonldap::NG configuration parameter using a
environment variable set to OVERRIDE_<parameter name>. For example, to set
checkXSSto 0 and exportedVars to {"Name":"cn"} in a docker-compose.yml
file, use:
environment:
- OVERRIDE_checkXSS=0
- OVERRIDE_exportedVars={"Name":"cn"}
Note that JSON notation is supported only for objects and arrays.
To modify subkeys, use "_" separator. For example to set the subkey "uid" of key "ldapExportedVars" to "cn", use:
environment:
- OVERRIDE_ldapExportedVars_uid=cn
Note that the container key (here ldapExportedVars) must exist.
Example with yadd/lemonldap-ng-portal and crowdesc enabled
version: "3.4"
services:
pgdb:
image: yadd/lemonldap-ng-pg-database
environment:
- POSTGRES_PASSWORD=zz
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis
base:
image: yadd/lemonldap-ng-portal
environment:
- PG_SERVER=pgdb
- REDIS_SERVER=redis:6379
- LOGGER=stderr
- USERLOGGER=stderr
- OVERRIDE_exportedVars={"cn":"cn","mail":"mail","uid":"uid"}
- CROWDSEC_SERVER=http://crowdsec:8080
- CROWDSEC_KEY=myrandomstring
- CROWDSEC_ACTION=reject
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
crowdsec:
image: crowdsecurity/crowdsec
environment:
- BOUNCER_KEY_llng=myrandomstring
Copyright:
License: GNU General Public License v2.0
Content type
Image
Digest
sha256:71773cc24…
Size
82.4 MB
Last updated
20 days ago
docker pull yadd/lemonldap-ng-base:2026-07-02-no-s6-lts