LDAP Password Change
A lightweight, self-hosted web service that allows users to change their LDAP password
through a secure, modern browser interface — no admin intervention required.

Features
- Self-service password change via Material Design V3 web UI
- Dark / Light / System theme switching
- Fully configurable via YAML or environment variables
- Custom branding: background image, favicon, logo, CSS
- Structured JSON logging with request IDs
Docker
docker pull ghcr.io/marcel2603/ldap-password-change/ldap-password-change:latest
docker run \
-p 3000:3000 \
-v $PWD/app.yml:/app/app.yml \
ghcr.io/marcel2603/ldap-password-change/ldap-password-change:latest
Configuration
Copy and edit cmd/config/app.default.yml:
ldap:
host: ldap.mycompany.com:636
userDn: cn=svc-ldap,dc=mycompany,dc=com
password: s3cr3t
baseDn: ou=employees,dc=mycompany,dc=com
ignoreTLS: false
Tip: Avoid storing the bind password in app.yml. Use the LDAP_PASSWORD environment variable instead:
docker run -e LDAP_PASSWORD=s3cr3t ...
Full reference → docs/Configuration
Contributing
See CONTRIBUTING.md and the docs.
# Install pre-commit hooks
make init-precommit
# Run tests
make test
# Run linter
make lint
Documentation
Full documentation is available at: https://marcel2603.github.io/ldap-password-change/
Acknowledgements
Project default images are generated using Gemini 3 Pro.