{"id":25839673,"url":"https://github.com/netresearch/ldap-manager","last_synced_at":"2026-01-17T23:44:58.378Z","repository":{"id":197764918,"uuid":"699289712","full_name":"netresearch/ldap-manager","owner":"netresearch","description":"Web frontend for LDAP","archived":false,"fork":false,"pushed_at":"2025-02-24T13:49:05.000Z","size":1459,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-24T14:42:11.336Z","etag":null,"topics":["activedirectory","golang","ldap"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netresearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-02T10:38:21.000Z","updated_at":"2025-02-24T13:49:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"23892861-d6a1-44b7-aa75-261f67947ffe","html_url":"https://github.com/netresearch/ldap-manager","commit_stats":null,"previous_names":["netresearch/ldap-manager"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fldap-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fldap-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fldap-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fldap-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netresearch","download_url":"https://codeload.github.com/netresearch/ldap-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241317607,"owners_count":19943199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activedirectory","golang","ldap"],"created_at":"2025-03-01T04:34:00.903Z","updated_at":"2026-01-17T23:44:58.364Z","avatar_url":"https://github.com/netresearch.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LDAP Manager\n\n\u003cdiv align=center\u003e\n\n  \u003cimg src=\"./internal/web/static/logo.webp\" height=\"256\" alt=\"\"\u003e\n\n\u003cspan\u003eLDAP Manager is a web frontend that allows your users to administrate the their users.\u003c/span\u003e\n\n\u003c/div\u003e\n\n## Prerequisites\n\n- **Go 1.25.1+** - Backend application language\n- **Node.js v22+** - Frontend asset building (Tailwind CSS)\n- **pnpm 10.17.1+** - JavaScript package manager (via corepack)\n- **Docker with BuildKit** - For containerized deployment (requires `DOCKER_BUILDKIT=1`)\n- **Docker Compose v2+** - Modern `docker compose` CLI for local development\n- **templ CLI** - Template generation (`go install github.com/a-h/templ/cmd/templ@latest`)\n\n## Running\n\n### Docker Compose (Recommended for Development)\n\nThe project includes a complete Docker Compose setup with OpenLDAP server, phpLDAPadmin, and profiles for different environments:\n\n```bash\n# Copy environment template\ncp .env.example .env\n\n# Build and run development environment (with live reload)\nexport DOCKER_BUILDKIT=1\ndocker compose --profile dev build\ndocker compose --profile dev up\n\n# Run tests in containerized environment\ndocker compose --profile test up\n\n# Run production build\ndocker compose --profile prod up\n```\n\n**Development Features:**\n\n- 🔄 Live reload - source code mounted at runtime\n- 📦 Cache optimization - BuildKit cache mounts for 60% faster builds\n- 🏥 Health checks - automatic dependency ordering (LDAP ready before app starts)\n- 🔒 Built-in OpenLDAP - pre-configured test server on port 389\n- 🌐 phpLDAPadmin - web-based LDAP browser on port 8080\n\n### Traefik Integration (Optional)\n\nFor production deployments with Traefik reverse proxy, the project includes automatic Traefik configuration via Docker Compose override.\n\n**Prerequisites:**\n\n1. Create external Traefik network:\n\n   ```bash\n   docker network create traefik\n   ```\n\n2. Configure environment variables in `.env`:\n   ```bash\n   TRAEFIK_ENABLE=true                    # Enable Traefik integration\n   TRAEFIK_NETWORK=traefik                # External network name (default: traefik)\n   TRAEFIK_HOST=localhost                 # Domain suffix (e.g., localhost, sobol.nr)\n   ```\n\n**Usage Examples:**\n\n```bash\n# Local development with Traefik\nTRAEFIK_ENABLE=true\nTRAEFIK_HOST=localhost\n# Access: https://ldap-manager.localhost\n\n# Production with global Traefik\nTRAEFIK_ENABLE=true\nTRAEFIK_HOST=sobol.nr\n# Access: https://ldap-manager.sobol.nr\n\n# Without Traefik (default)\nTRAEFIK_ENABLE=false\n# Access: http://localhost:3000\n```\n\nThe `.envrc` file automatically configures the correct Docker Compose file chain based on `TRAEFIK_ENABLE`. When enabled, the application switches from host networking to bridge mode with Traefik labels.\n\n### Natively\n\nIf you want to run this service without a Docker container, you have to build it yourself.\n\nPrerequisites: Go 1.25.1+, Node.js v22+, Corepack, templ CLI\n\nYou can configure this via a `.env.local` file or via command options (for more information you can run `./ldap-manager --help`).\n\n\u003c!-- Multiline comment idea taken from https://stackoverflow.com/a/12797512 --\u003e\n\n```bash\ncorepack enable\npnpm i\npnpm build\n\n./ldap-manager \\\n  `# You can also configure these via environment variables,` \\\n  `# please see the .env file for available options.` \\\n  -ldap-server ldaps://dc1.example.com:636 -active-directory \\\n  -readonly-password readonly -readonly-user readonly \\\n  -base-dn DC=example,DC=com\n```\n\n### Docker (Production)\n\nWe publish optimized production images to [GitHub Container Registry](https://github.com/netresearch/ldap-manager/pkgs/container/ldap-manager):\n\n**Image Features:**\n\n- 📦 **13.1MB** - Minimal distroless runtime (70% smaller than Alpine)\n- 🛡️ **Security hardened** - Nonroot user (UID 65532), read-only filesystem, no shell\n- ⚡ **Fast builds** - BuildKit cache mounts reduce rebuild time by 60%\n- 🏷️ **OCI compliant** - Full metadata labels and multi-platform support (amd64, arm64, arm/v7)\n\n\u003c!-- Multiline comment idea taken from https://stackoverflow.com/a/12797512 --\u003e\n\n```bash\ndocker run \\\n  `# Run the container detached from the current terminal` \\\n  -d --name ldap-manager \\\n  `# You might want to mount your host SSL certificate directory,` \\\n  `# if you have a self-signed certificate for your LDAPS connection` \\\n  -v /etc/ssl/certs:/etc/ssl/certs:ro \\\n  -p 3000:3000 \\\n  ghcr.io/netresearch/ldap-manager:latest \\\n  `# You can also configure these via environment variables,` \\\n  `# please see the .env file for available options.` \\\n  -ldap-server ldaps://dc1.example.com:636 -active-directory \\\n  -readonly-password readonly -readonly-user readonly \\\n  -base-dn DC=example,DC=com\n```\n\n**Note:** You can ignore the warning that the service could not load a `.env` file when running in production.\n\n## Screenshots\n\n**Users List** - Browse, search, and filter all LDAP users\n\n\u003cimg src=\"./docs/assets/ldap_manager_users.png\" width=\"425\" alt=\"Users List\" style=\"border: 1px solid #ccc; border-radius: 4px;\"\u003e\n\n\u003cbr\u003e\n\n**User Detail** - View email, description, group memberships, and last logon\n\n\u003cimg src=\"./docs/assets/ldap_manager_user_detail.png\" width=\"425\" alt=\"User Detail\" style=\"border: 1px solid #ccc; border-radius: 4px;\"\u003e\n\n\u003cbr\u003e\n\n**Groups List** - Browse and search all groups\n\n\u003cimg src=\"./docs/assets/ldap_manager_groups.png\" width=\"425\" alt=\"Groups List\" style=\"border: 1px solid #ccc; border-radius: 4px;\"\u003e\n\n\u003cbr\u003e\n\n**Group Detail** - Manage members, view parent groups, add/remove users\n\n\u003cimg src=\"./docs/assets/ldap_manager_group_detail.png\" width=\"425\" alt=\"Group Detail\" style=\"border: 1px solid #ccc; border-radius: 4px;\"\u003e\n\n## Documentation\n\n**📌 [Complete Documentation Index](docs/INDEX.md)** - Navigate all documentation with cross-references and quick links\n\nComprehensive documentation is available in the [`docs/`](docs/) directory:\n\n### For Users\n\n- **[Installation Guide](docs/user-guide/installation.md)** - Setup and deployment instructions\n- **[Configuration Reference](docs/user-guide/configuration.md)** - Complete configuration options\n- **[API Documentation](docs/user-guide/api.md)** - REST API endpoints and usage\n\n### For Developers\n\n- **[Development Setup](docs/development/setup.md)** - Local development environment\n- **[Contributing Guidelines](docs/development/contributing.md)** - Code standards and workflow\n- **[Architecture Overview](docs/development/architecture.md)** - System design and patterns\n\n### For Operations\n\n- **[Deployment Guide](docs/operations/deployment.md)** - Production deployment strategies\n- **[Monitoring \u0026 Troubleshooting](docs/operations/monitoring.md)** - Operational procedures\n\n## Quick Start\n\n### For Users\n\n```bash\n# Docker deployment (recommended)\ndocker run -d --name ldap-manager \\\n  -e LDAP_SERVER=ldaps://dc1.example.com:636 \\\n  -e LDAP_BASE_DN=\"DC=example,DC=com\" \\\n  -e LDAP_READONLY_USER=readonly \\\n  -e LDAP_READONLY_PASSWORD=password \\\n  -e LDAP_IS_AD=true \\\n  -p 3000:3000 \\\n  ghcr.io/netresearch/ldap-manager:latest\n```\n\n### For Developers\n\n```bash\n# Setup development environment with Docker Compose\nexport DOCKER_BUILDKIT=1\ncp .env.example .env\ndocker compose --profile dev up\n\n# Or use Makefile commands\nmake setup\nmake dev\n\n# See full development guide: docs/development/setup.md\n```\n\n## License\n\nLDAP Manager is licensed under the MIT license, for more information please refer to the [included LICENSE file](LICENSE).\n\n## Contributing\n\nFeel free to contribute by creating a Pull Request!\n\nThis project uses [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit messages and the default `gofmt` and `prettier` formatting rules.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Fldap-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetresearch%2Fldap-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Fldap-manager/lists"}