In this week’s issue of README Highlight (#46, 2023), we are taking a look at the following project: lldap.
The project is a lightweight authentication server that provides a simplified LDAP interface for authentication. It is designed to integrate with various backends, including KeyCloak, Authelia, Nextcloud, and more. The server comes with a user-friendly web interface that makes user management easy. Users can edit their own details and reset their password by email.
It is important to note that lldap is not a full LDAP server. It is a user management system that is simple to set up and manage, with low resource requirements. It is specifically designed for self-hosting servers and integrates well with open-source components like Nextcloud and Airsonic that only support LDAP as a source of external authentication.
The project uses SQLite as the default backend for data storage, but it can be easily swapped with MySQL/MariaDB or PostgreSQL. Installation options include Docker, Kubernetes, and installation from a package repository. The project also provides detailed instructions for cross-compilation.
For client configuration, lldap is compatible with most services that can use LDAP as an authentication provider. The server uses a specific user DN for authentication and stores users in the
ou=people directory by default. The project provides sample client configurations for various services, including Airsonic, Apache Guacamole, Authelia, Bookstack, and many more.
Migrating from SQLite to MySQL/MariaDB or PostgreSQL is also supported, and the project provides detailed instructions for this process.
Comparisons with other services are provided as well. lldap is compared to OpenLDAP, FreeIPA, and Kanidm, highlighting the differences in features, complexity, and resource requirements.
In case of any issues or difficulties logging in, the project provides troubleshooting steps and encourages users to join their Discord server for support.
Contributions to the project are welcome, and the project maintains an open and respectful community.