selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
pwm logo

Self-host pwm

v2_0_8

LDAP password self-service web application

ReleaseOpen SourceOther
Updatedlast year
LanguageJava
Setup difficultyAdvanced
MobileResponsive
Stars
986
Port
8443 (HTTPS web interface)
Requires
Java, LDAP directory
Install with Docker

What is pwm?

PWM (Password Management Servlets) is an open-source web application that lets users manage their own LDAP directory credentials. Through a browser interface, people can change passwords, recover forgotten ones, unlock locked accounts, create new accounts, and look up colleagues. It works with Microsoft Active Directory, NetIQ eDirectory, 389 Directory Server, OpenLDAP, and generic LDAP. The system offers more than 500 settings, strong password rules with dictionary checks and regex, multi-factor options like TOTP and SMS, and single sign-on via CAS, OAuth, Basic Auth, or HTTP headers. You can run it as a Docker container, a WAR file on Tomcat, or a standalone JAR with Tomcat built in. It defaults to HTTPS on port 8443 and needs Java 11 through 17. All configuration lives in one exportable file managed through a web console.

Should you self-host pwm?

pwm scores 54/100 on selfhost.directory (how scoring works) and ranks #9 of 28 in Password Managers. It has 986 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is Other-licensed and written mostly in Java.

Its closest alternative on selfhost.directory is Vaultwarden (89/100, 69 809 stars). It scores higher overall, so compare the two before you pick. See pwm vs Vaultwarden side by side.

Features

  • Captcha Support
  • Forgotten Password Recovery
  • Helpdesk Password Reset
  • LDAP Failover
  • LDAP Password Self-Service
  • Multi-language Support
  • Multi-Vendor LDAP Support
  • New User Registration
  • Password Policy Enforcement
  • People Search (White Pages)
  • REST API
  • Single Sign-On (SSO)
  • Web-based Configuration Manager

pwm README

How to install pwm

Install pwm with Docker

Server running docker
Environment variables
PWM_APPLICATIONPATH (handled via /config volume)
  1. Load your docker image with image nae of default pwm/pwm-webapp:
docker load --input=pwm-docker-image-v2.0.0.tar
  1. Create docker image named mypwm, map to the server's 8443 port, and set the config volume to use the server's local file system /home/user/pwm-config folder:
docker create --name mypwm -p '8443:8443' --mount 'type=bind,source=/home/user/pwm-config,destination=/config' pwm/pwm-webapp
  1. Start the mypwm container:
docker start mypwm

Requires persistent volume mapped to /config for configuration retention

How to configure pwm

  • applicationPathServlet web.xml context parameter for application path

    Servlet web.xml context parameter for application path

    values: Absolute directory path on local filesystem

  • pwm.applicationPathJava system property for application path

    Java system property for application path

    values: Absolute directory path on local filesystem

  • PWM_APPLICATIONPATHPrimary configuration and working directory for PWM instance (environment variable)

    Primary configuration and working directory for PWM instance (environment variable)

    values: Absolute directory path on local filesystem

pwm releases & version history

More in Password Managers

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…