A web-based LDAP testing utility that allows users to test LDAP server connections and perform basic directory operations.
- Test LDAP server connections
- Support for multiple LDAP server types (OpenLDAP, Active Directory, FreeIPA, 389DS)
- User search functionality
- Dark/Light mode with system preference detection
- Secure connection options (TLS/SSL)
- Advanced LDAP options
- Docker support for easy deployment
- Responsive design with Bootstrap 5
- Google Roboto font integration
- Node.js >= 14.0.0
- npm >= 6.0.0
- Docker (optional, for containerized deployment)
- Clone the repository:
git clone https://github.com/xhorizont/ldap-test-tool.git
cd ldap-test-tool- Install dependencies:
npm install- Create
.envfile:
cp .env.example .env- Start the server:
npm start- Open http://localhost:3000 in your browser
Copy .env.example to .env and adjust the following variables:
#Server Configuration
PORT=3000
NODE_ENV=development
#LDAP Default Configuration
DEFAULT_LDAP_URI=ldap://localhost:389
DEFAULT_BIND_DN=cn=admin,dc=example,dc=com
DEFAULT_BASE_DN=dc=example,dc=com- Enter your LDAP server details
- Test the connection
- Search for users
- View detailed user information
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- ldapjs - LDAP client and server implementation
- Bootstrap - Frontend framework
- Express - Web framework
If you're having issues, please:
For security issues, please email security@yourdomain.com instead of using the issue tracker.
- Clone the repository:
git clone https://github.com/yourusername/ldap-test-tool.git- Start the application:
docker-compose up -dThe application will be available at http://localhost:3000
- Build the image:
docker build -t ldap-test-tool .- Run the container:
docker run -d -p 3000:3000 --name ldap-test-tool ldap-test-toolFor development with hot-reload:
docker-compose up ldap-test-tool-devWhen running with Docker, you can pass environment variables:
docker run -d \
-p 3000:3000 \
-e PORT=3000 \
-e NODE_ENV=production \
--name ldap-test-tool \
ldap-test-tool# Docker
.docker/
docker-compose.override.ymlThis setup provides:
- Multi-stage Docker build for smaller production images
- Development environment with hot-reload
- Docker Compose for easy deployment
- GitHub Actions for Docker image builds
- Security best practices:
- Non-root user
- Multi-stage builds
- Health checks
- Production optimization
- Development convenience features:
- Volume mounts for hot-reload
- Easy-to-use npm scripts
- Separate dev and prod configurations
Would you like me to add any additional Docker features or configurations?
# Development
npm run dev # Start development server with hot reload
npm run lint # Run ESLint
npm run format # Format code with Prettier
npm test # Run tests
# Docker
npm run docker:build # Build Docker image
npm run docker:run # Run Docker container
npm run docker:stop # Stop Docker container
npm run docker:compose # Start with Docker Compose
npm run docker:compose:dev # Start development environment with Docker Compose
npm run docker:compose:down # Stop Docker Compose servicesldap-test-tool/
├── .github/ # GitHub specific files
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ └── workflows/ # GitHub Actions
├── public/ # Static files
│ ├── css/ # Stylesheets
│ ├── js/ # Client-side JavaScript
│ └── index.html # Main HTML file
├── src/ # Source code
│ ├── config/ # Configuration files
│ ├── services/ # Business logic
│ └── server.js # Express server
├── tests/ # Test files
└── docker/ # Docker related files
-
Forumsys LDAP Test Server
- URI:
ldap://ldap.forumsys.com:389 - Bind DN:
cn=read-only-admin,dc=example,dc=com - Password:
password - Base DN:
dc=example,dc=com - Test Users: einstein, newton, tesla, galieleo
- URI:
-
Local OpenLDAP Server (Docker)
docker run -d -p 389:389 --name openldap osixia/openldap:latest- TLS Support
- SSL Support
- Certificate verification options
- SASL Authentication
- Kerberos Authentication
- Multiple search scopes (Base, One Level, Subtree)
- Size limits
- Time limits
- Attribute selection
- Server-specific optimizations
- Dark/Light mode toggle
- Responsive design
- Field-specific help tooltips
- Error handling and display
- Result formatting
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
For security issues, please email security@yourdomain.com instead of using the issue tracker.
See SECURITY.md for our security policy.
This project is licensed under the MIT License - see the LICENSE file for details.
