Modern web-based management UI for OpenLDAP, multi-cluster, secure password caching
586
Modern web-based management interface for OpenLDAP servers with a React + TypeScript frontend and FastAPI Python backend.
|
|
| LDAP Manager | Directory Data |
|
|
| Users | Groups |
| Resource | Minimum | Recommended | Production (High Traffic) |
|---|---|---|---|
| CPU | 1 core | 2 cores | 4 cores |
| RAM | 512 MB | 1 GB | 2 GB |
| Disk | 500 MB | 1 GB | 2 GB |
# Download the config template
wget https://raw.githubusercontent.com/VibhuviOiO/ldap-manager/main/config.example.yml -O config.yml
# Edit config with your LDAP details
nano config.yml
# Run the Docker Hub image
docker run -d \
--name ldap-manager \
-p 8000:8000 \
-v $(pwd)/config.yml:/app/config.yml:ro \
vibhuvioio/ldap-manager:latest
# Access the UI at http://localhost:8000
# Download the production compose file and config template
wget https://raw.githubusercontent.com/VibhuviOiO/ldap-manager/main/docker-compose.prod.yml
wget https://raw.githubusercontent.com/VibhuviOiO/ldap-manager/main/config.example.yml -O config.yml
# Edit config with your LDAP details
nano config.yml
# Start the application
docker compose -f docker-compose.prod.yml up -d
# Access the UI at http://localhost:8000
Registry note: The primary image is hosted on Docker Hub at
vibhuvioio/ldap-manager. The same image is also available on GHCR atghcr.io/vibhuvioio/ldap-managerif you prefer GitHub's registry.
config.yml)clusters:
- name: "Production LDAP"
host: "ldap.example.com"
port: 389
bind_dn: "cn=Manager,dc=example,dc=com"
clusters:
- name: "LDAP Cluster"
nodes:
- host: "ldap1.company.com"
port: 389
- host: "ldap2.company.com"
port: 389
bind_dn: "cn=Manager,dc=company,dc=com"
# Production
CONTEXT_PATH=/ldap-manager docker compose -f docker-compose.prod.yml up -d
# Development
CONTEXT_PATH=/ldap-manager docker compose up
Frontend: React 18, TypeScript, Vite, shadcn/ui, Tailwind CSS
Backend: FastAPI, Python 3.11+, python-ldap, PyYAML
# Backend
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
# Frontend
cd frontend
npm install
npm run dev
The project uses two automated test suites:
backend/tests/frontend/tests/e2e/Both suites run in GitHub Actions on every push. Run them locally:
# Backend tests
cd backend
pytest
# Frontend E2E tests
cd frontend
npm install
npx playwright install
npx playwright test
/app/.cache/ and encryption keys in /app/.secrets/ with 0600 permissionsldaps://)โ Tested: OpenLDAP 2.4+, OpenLDAP 2.6+
๐ Should work (RFC 4511 compliant): 389 Directory Server, ApacheDS, Active Directory
Requirements: LDAP v3 protocol, RFC 2696 (paged results) support recommended for large directories
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - See LICENSEโ file
Developed by Vibhuvi OiOโ
Content type
Image
Digest
sha256:04ae5c7e3โฆ
Size
141.7 MB
Last updated
3 months ago
docker pull vibhuvioio/ldap-manager