Free self-service password reset for Active Directory. Secure SSPR with MFA and no user limits.
6.1K
Free self-service password reset for Active Directory. No user limits.
Password Express gives users a simple, secure way to reset forgotten Active Directory passwords and unlock their accounts without contacting the help desk.
Deploy it yourself with Docker, connect it to Active Directory, and give users a browser-based self-service password reset experience protected by multi-factor authentication.
No per-user licensing. No artificial user limits.
Password Express enables users to:
For IT teams, that means fewer password-related help desk calls, less employee downtime, and a self-hosted password recovery service that remains under your control.
Run Password Express for as many users as you need.
There are no artificial user limits and no registration or trial period. Download it, deploy it and use it.
Forgotten passwords and locked accounts shouldn't require somebody from IT to intervene.
Password Express lets users resolve common password and account problems themselves while maintaining appropriate identity verification.
Password Express is designed for organisations using Microsoft Active Directory, providing self-service password reset (SSPR) and account recovery directly against your existing directory.
Password Express runs inside your own infrastructure. You retain control over your directory integration, authentication and user data rather than handing password recovery to another cloud service.
Protect password resets and account recovery with additional identity verification rather than relying solely on information an attacker may already know.
Password Express is ideal for organisations that:
Run Password Express with MongoDB using Docker Compose.
Create a docker-compose.yml using the Compose file below and start Password Express:
docker compose -f "docker-compose.yml" up -d
This starts:
56017 with a replica set enabled5644356222Access the Password Express web UI at:
https://localhost:56443
Your browser may display a certificate warning when accessing a new local installation over HTTPS.
To stop Password Express and MongoDB:
docker compose -f "docker-compose.yml" down
Edit docker-compose.yml to change ports or other settings.
Key environment variables for the Password Express container:
| Variable | Default | Description |
|---|---|---|
PASSEX_HTTPS_SERVER_PORT | 56443 | HTTPS port for the web UI |
PASSEX_MONGODB_URL | mongodb://127.0.0.1:56017 | MongoDB connection string |
PASSEX_WINDOWS_CONNECT_PORT | 56222 | Port for Windows Connect (for AD connections) |
The supplied Docker Compose configuration overrides the MongoDB URL so Password Express connects to the MongoDB container using:
mongodb://mongodb:56017
| Path | Description |
|---|---|
/opt/password-express/conf | Main configuration directory |
/opt/password-express/conf.d | Additional configuration fragments |
/opt/password-express/user-plugins | User-installed plugins |
These are persisted as Docker volumes so configuration survives container restarts.
MongoDB data is stored in the mongodb_data Docker volume.
To reset all data:
docker compose -f "docker-compose.yml" down
docker volume rm nodal-community_mongodb_data
Warning: Removing the MongoDB data volume permanently deletes the data stored by Password Express. Make sure this is what you intend before running the command.
services:
mongodb:
image: mongo:8.3.8
container_name: password-express-mongodb
command: ["--replSet", "rs0", "--bind_ip_all", "--port", "56017"]
networks:
- password-express-net
volumes:
- mongodb_data:/data/db
mongodb-init:
image: mongo:8.3.8
container_name: password-express-mongodb-init
networks:
- password-express-net
depends_on:
- mongodb
restart: "no"
entrypoint: >
bash -c "
echo 'Waiting for MongoDB to be ready...';
until mongosh --host mongodb --port 56017 --quiet --eval 'db.runCommand({ping:1})' >/dev/null 2>&1; do
sleep 1;
done;
echo 'Initialising replica set...';
mongosh --host mongodb --port 56017 --quiet --eval '
try { rs.status() }
catch (err) { rs.initiate({_id:\"rs0\",members:[{_id:0,host:\"mongodb:56017\"}]}) }
';
echo 'MongoDB replica set ready.';
sleep 99999d
"
password-express:
image: jadaptive/password-express:stable
container_name: password-express
networks:
- password-express-net
ports:
- "56443:56443/tcp"
- "56222:56222/tcp"
depends_on:
- mongodb-init
environment:
- PASSEX_HTTPS_SERVER_PORT=56443
- PASSEX_MONGODB_URL=mongodb://mongodb:56017
- PASSEX_WINDOWS_CONNECT_PORT=56222
volumes:
- password_express_conf:/opt/password-express/conf
- password_express_conf_d:/opt/password-express/conf.d
- password_express_plugins:/opt/password-express/user-plugins
networks:
password-express-net:
volumes:
mongodb_data:
password_express_conf:
password_express_plugins:
password_express_conf_d:
Full documentation is available at:
Learn more about Jadaptive and our other free, self-hosted infrastructure and security software:
Questions, feedback and community support:
https://www.reddit.com/r/jadaptive/
Password Express is part of Jadaptive's growing collection of free, self-hosted infrastructure and security software, including:
Explore the Jadaptive Docker Hub namespace to discover more.
The software is the gift. Our expertise is the paywall.
Use it. Scale it. No artificial limits.
Content type
Image
Digest
sha256:a1777d90c…
Size
556.9 MB
Last updated
5 days ago
docker pull jadaptive/password-express