{"id":33235907,"url":"https://github.com/infrastructure-alexson/ldap-infrastructure-suite","last_synced_at":"2026-05-13T21:33:14.085Z","repository":{"id":322381044,"uuid":"1089261333","full_name":"infrastructure-alexson/ldap-infrastructure-suite","owner":"infrastructure-alexson","description":"Turnkey LDAP infrastructure suite: unified container deployment of 389 DS, Kea DHCP, BIND 9 DNS, and web-based management. Deploy complete infrastructure with one command.","archived":false,"fork":false,"pushed_at":"2025-11-04T05:54:55.000Z","size":28,"stargazers_count":0,"open_issues_count":10,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-16T18:03:07.599Z","etag":null,"topics":["389-directory-service","bind9","containerization","docker-compose","high-availability","infrastructure-as-code","kea-dhcp","kubernetes","ldap-infrastructure","openshift","service-orchestration","turnkey-solution"],"latest_commit_sha":null,"homepage":null,"language":null,"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/infrastructure-alexson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-04T05:21:15.000Z","updated_at":"2025-11-04T05:54:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/infrastructure-alexson/ldap-infrastructure-suite","commit_stats":null,"previous_names":["infrastructure-alexson/ldap-infrastructure-suite"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/infrastructure-alexson/ldap-infrastructure-suite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infrastructure-alexson%2Fldap-infrastructure-suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infrastructure-alexson%2Fldap-infrastructure-suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infrastructure-alexson%2Fldap-infrastructure-suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infrastructure-alexson%2Fldap-infrastructure-suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infrastructure-alexson","download_url":"https://codeload.github.com/infrastructure-alexson/ldap-infrastructure-suite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infrastructure-alexson%2Fldap-infrastructure-suite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33000945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["389-directory-service","bind9","containerization","docker-compose","high-availability","infrastructure-as-code","kea-dhcp","kubernetes","ldap-infrastructure","openshift","service-orchestration","turnkey-solution"],"created_at":"2025-11-16T18:01:47.809Z","updated_at":"2026-05-13T21:33:14.067Z","avatar_url":"https://github.com/infrastructure-alexson.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# LDAP Infrastructure Suite\n\n**Version**: 1.0.0 (Development)  \n**Status**: 🚧 In Planning  \n**License**: MIT  \n\n[![Project](https://img.shields.io/badge/Project-Infrastructure%20Suite-blue)](https://github.com/infrastructure-alexson/ldap-infrastructure-suite)\n[![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker)](https://hub.docker.com/u/infrastructure-alexson)\n[![Kubernetes](https://img.shields.io/badge/Kubernetes-Ready-326CE5?logo=kubernetes)](https://kubernetes.io)\n[![OpenShift](https://img.shields.io/badge/OpenShift-Compatible-EE0000?logo=redhat)](https://www.redhat.com/en/technologies/cloud-computing/openshift)\n\n---\n\n## Overview\n\n**LDAP Infrastructure Suite** is a turnkey, containerized infrastructure solution that deploys and manages a complete LDAP-based infrastructure stack as a single, unified application. Deploy DNS, DHCP, LDAP, and web-based management with a single command.\n\n### What's Included\n\n- **🌐 LDAP Web Manager** - Modern web UI for infrastructure management\n- **📂 389 Directory Service** - Enterprise LDAP with multi-master replication\n- **🔌 Kea DHCP** - High-performance DHCP with LDAP backend\n- **🌍 BIND 9 DNS** - DNS server with LDAP DLZ integration\n- **🗄️ PostgreSQL** - Database for IPAM and audit logging\n- **⚡ Redis** - Session management and caching\n\n### Key Features\n\n✅ **One-Command Deployment** - Deploy entire infrastructure with Docker Compose or Helm  \n✅ **Unified Management** - Single web interface for all services  \n✅ **High Availability** - Built-in HA for all critical components  \n✅ **Cloud Native** - Kubernetes and OpenShift ready  \n✅ **Service Discovery** - Automatic configuration between components  \n✅ **GitOps Ready** - Infrastructure as code with version control  \n✅ **Production Ready** - Security hardened and performance optimized  \n\n---\n\n## Architecture\n\n```mermaid\ngraph TB\n    subgraph \"Ingress Layer\"\n        LB[Load Balancer / Ingress]\n    end\n    \n    subgraph \"Web Layer\"\n        WEB[LDAP Web Manager\u003cbr/\u003eFrontend + Backend]\n    end\n    \n    subgraph \"Data Layer\"\n        PG[(PostgreSQL\u003cbr/\u003eIPAM + Audit)]\n        REDIS[(Redis\u003cbr/\u003eSessions + Cache)]\n    end\n    \n    subgraph \"Core Services\"\n        LDAP[389 Directory Service\u003cbr/\u003eMulti-Master HA\u003cbr/\u003ePort 389/636]\n        DHCP[Kea DHCP\u003cbr/\u003eHot-Standby HA\u003cbr/\u003ePort 67/68]\n        DNS[BIND 9 DNS\u003cbr/\u003ePrimary/Secondary\u003cbr/\u003ePort 53]\n    end\n    \n    LB --\u003e WEB\n    WEB --\u003e PG\n    WEB --\u003e REDIS\n    WEB --\u003e LDAP\n    DHCP --\u003e LDAP\n    DNS --\u003e LDAP\n    \n    style WEB fill:#4CAF50\n    style LDAP fill:#2196F3\n    style DHCP fill:#FF9800\n    style DNS fill:#9C27B0\n    style PG fill:#00BCD4\n    style REDIS fill:#F44336\n```\n\n---\n\n## Quick Start\n\n### Docker Compose (Recommended for Testing)\n\n```bash\n# Clone the repository\ngit clone https://github.com/infrastructure-alexson/ldap-infrastructure-suite.git\ncd ldap-infrastructure-suite\n\n# Copy and configure environment\ncp .env.example .env\n# Edit .env with your settings\n\n# Deploy the full stack\ndocker-compose up -d\n\n# Access web interface\nopen https://localhost\n```\n\n### Kubernetes with Helm (Production)\n\n```bash\n# Add Helm repository\nhelm repo add ldap-suite https://charts.infrastructure-alexson.org\nhelm repo update\n\n# Install the suite\nhelm install infrastructure ldap-suite/ldap-infrastructure-suite \\\n  --namespace infrastructure \\\n  --create-namespace \\\n  --values my-values.yaml\n\n# Check status\nkubectl get pods -n infrastructure\n```\n\n### OpenShift Template\n\n```bash\n# Create project\noc new-project infrastructure\n\n# Deploy from template\noc process -f openshift/suite-template.yaml \\\n  -p LDAP_ADMIN_PASSWORD=$(openssl rand -base64 32) \\\n  -p DOMAIN=svc.eh168.alexson.org \\\n  | oc create -f -\n\n# Get route\noc get route ldap-manager -n infrastructure\n```\n\n---\n\n## Components\n\n### 1. LDAP Web Manager\n\nModern web-based management interface for all infrastructure services.\n\n- **Frontend**: React SPA with Tailwind CSS\n- **Backend**: FastAPI (Python) with async support\n- **Features**:\n  - User and group management (SSSD compatible)\n  - DNS zone and record management\n  - DHCP subnet and reservation management\n  - IPAM with visual allocation maps\n  - Audit logging and reporting\n  - Role-based access control\n\n**Ports**: 80 (HTTP), 443 (HTTPS), 8000 (API)\n\n### 2. 389 Directory Service\n\nEnterprise-grade LDAP server with comprehensive schema support.\n\n- **Replication**: Multi-master for high availability\n- **Schemas**: DHCP, DNS, POSIX users/groups, custom schemas\n- **Features**:\n  - Password policies and account lockout\n  - Access control lists (ACLs)\n  - TLS/SSL encryption\n  - Replication monitoring\n  - Backup and restore\n\n**Ports**: 389 (LDAP), 636 (LDAPS)  \n**Replicas**: 2+ for HA\n\n### 3. Kea DHCP\n\nModern, high-performance DHCP server with LDAP backend.\n\n- **HA Mode**: Hot-standby configuration\n- **Backend**: LDAP for configuration storage\n- **Features**:\n  - IPv4 and IPv6 support\n  - Static host reservations\n  - Option definitions\n  - Lease statistics via API\n  - HA failover (sub-second)\n\n**Ports**: 67/UDP (DHCP), 68/UDP (DHCP Client), 8000 (Control Agent API)  \n**Replicas**: 2 (Primary + Standby)\n\n### 4. BIND 9 DNS\n\nIndustry-standard DNS server with LDAP zone storage.\n\n- **DLZ**: Dynamically Loadable Zones from LDAP\n- **HA Mode**: Primary/secondary with zone transfers\n- **Features**:\n  - Forward and reverse zones\n  - DNSSEC support (optional)\n  - Dynamic updates\n  - Zone transfers (AXFR/IXFR)\n  - Query logging\n\n**Ports**: 53/TCP and 53/UDP (DNS), 953 (rndc control)  \n**Replicas**: 2+ (Primary + Secondaries)\n\n### 5. PostgreSQL\n\nRelational database for IPAM data and audit logs.\n\n- **Version**: 16\n- **Storage**: IPAM allocations, audit trail, session data\n- **Features**:\n  - Streaming replication (optional)\n  - Point-in-time recovery\n  - Connection pooling\n  - Full-text search\n  - JSON storage for flexible metadata\n\n**Port**: 5432  \n**Storage**: PersistentVolume\n\n### 6. Redis\n\nIn-memory data store for sessions and caching.\n\n- **Version**: 7\n- **Mode**: Standalone or Sentinel (HA)\n- **Features**:\n  - Session storage\n  - LDAP query caching\n  - Statistics caching\n  - TTL-based expiration\n  - Persistence (AOF)\n\n**Port**: 6379  \n**Storage**: PersistentVolume (optional)\n\n---\n\n## Deployment Scenarios\n\n### Scenario 1: Development/Lab Environment\n\n**Docker Compose** with single replicas, minimal resources.\n\n```bash\ndocker-compose -f docker-compose.yml up -d\n```\n\n- Rapid deployment (\u003c 5 minutes)\n- Low resource requirements\n- Easy testing and development\n- No persistent storage by default\n\n### Scenario 2: Production On-Premises\n\n**Kubernetes** with Helm chart, full HA configuration.\n\n```bash\nhelm install infrastructure ldap-suite/ldap-infrastructure-suite \\\n  --set replicaCount.ldap=3 \\\n  --set replicaCount.dns=3 \\\n  --set replicaCount.dhcp=2 \\\n  --set postgresql.replication.enabled=true \\\n  --set redis.sentinel.enabled=true\n```\n\n- High availability\n- Automatic failover\n- Persistent storage\n- Monitoring and alerting\n- Backup automation\n\n### Scenario 3: Cloud/OpenShift\n\n**OpenShift Template** with cloud-native features.\n\n```bash\noc process -f openshift/suite-template.yaml | oc create -f -\n```\n\n- Native cloud integration\n- Auto-scaling\n- Service mesh integration\n- Cloud storage (EBS, Azure Disk, etc.)\n- Cloud DNS integration\n\n---\n\n## Configuration\n\n### Environment Variables\n\n**Required Variables** (`.env` file):\n\n```bash\n# LDAP Configuration\nLDAP_ADMIN_PASSWORD=your_secure_password\nLDAP_DOMAIN=eh168.alexson.org\nLDAP_BASE_DN=dc=eh168,dc=alexson,dc=org\n\n# Database Configuration\nDB_PASSWORD=your_database_password\n\n# Application Security\nJWT_SECRET=your_jwt_secret_key\nSECRET_KEY=your_application_secret\n\n# Network Configuration\nDOMAIN=svc.eh168.alexson.org\nENABLE_TLS=true\n```\n\n**Optional Variables**:\n\n```bash\n# High Availability\nLDAP_REPLICAS=2\nDHCP_REPLICAS=2\nDNS_REPLICAS=2\n\n# Resource Limits\nLDAP_MEMORY_LIMIT=2Gi\nDHCP_MEMORY_LIMIT=512Mi\nDNS_MEMORY_LIMIT=512Mi\n\n# Feature Flags\nENABLE_DNSSEC=false\nENABLE_MONITORING=true\nENABLE_BACKUPS=true\n```\n\n---\n\n## Management\n\n### Web Interface\n\nAccess the LDAP Web Manager at:\n- **Docker Compose**: https://localhost\n- **Kubernetes**: https://ldap-manager.svc.eh168.alexson.org\n- **OpenShift**: https://ldap-manager-infrastructure.apps.ocp.example.com\n\n**Default Credentials**:\n- Username: `admin`\n- Password: Set during deployment or in `.env` file\n\n### Command Line Tools\n\n**Docker Compose**:\n```bash\n# View logs\ndocker-compose logs -f\n\n# Restart services\ndocker-compose restart\n\n# Scale services\ndocker-compose up -d --scale web-backend=3\n\n# Stop all services\ndocker-compose down\n```\n\n**Kubernetes**:\n```bash\n# View pods\nkubectl get pods -n infrastructure\n\n# View logs\nkubectl logs -f deployment/ldap-web-manager-backend -n infrastructure\n\n# Scale deployment\nkubectl scale deployment web-backend --replicas=5 -n infrastructure\n\n# Delete deployment\nhelm uninstall infrastructure -n infrastructure\n```\n\n---\n\n## Monitoring\n\n### Built-in Metrics\n\nThe suite exposes metrics for monitoring:\n\n- **Prometheus Endpoint**: `/metrics` on each service\n- **Health Checks**: `/health` for readiness/liveness probes\n- **LDAP Monitoring**: Connection pool, query performance\n- **DHCP Stats**: Lease utilization, pool statistics\n- **DNS Stats**: Query rates, zone transfers\n\n### Grafana Dashboards\n\nPre-built Grafana dashboards included:\n\n1. **Infrastructure Overview** - All services at a glance\n2. **LDAP Performance** - Query latency, connection pools\n3. **DNS Analytics** - Query types, top domains\n4. **DHCP Statistics** - Lease utilization, subnet health\n5. **Application Performance** - API response times, error rates\n\n---\n\n## Security\n\n### Authentication\n\n- **Web UI**: JWT-based with refresh tokens\n- **LDAP**: TLS/LDAPS encryption\n- **API**: Bearer token authentication\n- **Services**: Mutual TLS between components (optional)\n\n### Network Security\n\n- **Firewall**: Minimal exposed ports\n- **Network Policies**: Kubernetes network isolation\n- **TLS**: All external traffic encrypted\n- **Secrets**: Kubernetes Secrets or Docker Secrets\n\n### Compliance\n\n- **Audit Logging**: All operations logged to PostgreSQL\n- **RBAC**: Role-based access control\n- **Password Policies**: Configurable complexity requirements\n- **Session Management**: Automatic timeout and invalidation\n\n---\n\n## Backup and Recovery\n\n### Automated Backups\n\n```bash\n# Backup all data\n./scripts/backup-all.sh\n\n# Restore from backup\n./scripts/restore-all.sh backup-2025-11-04.tar.gz\n```\n\n**What's Backed Up**:\n- 389 DS LDAP data\n- PostgreSQL database\n- Configuration files\n- Certificates and keys\n\n### Disaster Recovery\n\n**Recovery Time Objective (RTO)**: \u003c 15 minutes  \n**Recovery Point Objective (RPO)**: Last backup (configurable)\n\n---\n\n## Troubleshooting\n\n### Common Issues\n\n**Issue**: Services not starting\n```bash\n# Check logs\ndocker-compose logs\nkubectl logs -f \u003cpod-name\u003e\n\n# Verify configuration\ndocker-compose config\nhelm template infrastructure ldap-suite/ldap-infrastructure-suite\n```\n\n**Issue**: LDAP connection failures\n```bash\n# Test LDAP connectivity\nldapsearch -x -H ldap://ldap1.infra.local -b \"dc=eh168,dc=alexson,dc=org\"\n\n# Check replication status\ndsconf localhost replication get-status\n```\n\n**Issue**: DNS not resolving\n```bash\n# Test DNS\ndig @localhost example.com\n\n# Check BIND logs\ndocker-compose logs dns-primary\nkubectl logs -f deployment/bind9-primary\n```\n\nSee [TROUBLESHOOTING.md](doc/TROUBLESHOOTING.md) for detailed troubleshooting guides.\n\n---\n\n## Documentation\n\n- **[Product Roadmap](doc/ROADMAP.md)** - Feature roadmap and release timeline\n- [Installation Guide](doc/INSTALLATION.md) - Complete installation instructions (Coming Soon)\n- [Architecture Guide](doc/ARCHITECTURE.md) - Detailed system architecture (Coming Soon)\n- [Configuration Guide](doc/CONFIGURATION.md) - All configuration options (Coming Soon)\n- [Operations Guide](doc/OPERATIONS.md) - Day-to-day operations (Coming Soon)\n- [Troubleshooting](doc/TROUBLESHOOTING.md) - Common issues and solutions (Coming Soon)\n- [Development Guide](doc/DEVELOPMENT.md) - Contributing to the project (Coming Soon)\n- [API Documentation](https://your-server/api/docs) - Interactive API docs (Coming Soon)\n\n---\n\n## Use Cases\n\n### Enterprise Infrastructure\n\nDeploy complete LDAP-based infrastructure for:\n- User authentication (SSSD)\n- IP address management (IPAM)\n- DNS zone management\n- DHCP server management\n- Centralized directory services\n\n### Development Environments\n\nQuick infrastructure setup for:\n- Application testing\n- CI/CD pipelines\n- Developer workstations\n- Training environments\n\n### Service Providers\n\nMulti-tenant infrastructure for:\n- Managed services\n- Hosting providers\n- Cloud platforms\n- Educational institutions\n\n---\n\n## Roadmap\n\nSee [ROADMAP.md](doc/ROADMAP.md) for the complete feature roadmap.\n\n### v1.0.0 - Foundation (Q2 2026) 🏗️\n- Docker Compose deployment for full stack\n- Service integration and discovery\n- Custom container images (389 DS, Kea DHCP, BIND 9)\n- Web Manager integration\n- Monitoring and health checks\n- Complete documentation\n- Backup/restore automation\n- Container registry publication\n\n### v1.1.0 - Production Ready (Q3 2026) 🚀\n- Kubernetes manifests and Helm chart\n- Production HA configuration\n- Monitoring integration (Prometheus, Grafana)\n- Automated backups to object storage\n- Security hardening and RBAC\n\n### v1.2.0 - Enterprise Features (Q4 2026) 🏢\n- OpenShift support with templates\n- GitOps integration (ArgoCD, Flux)\n- Multi-site deployment\n- Compliance and governance features\n- Advanced performance optimization\n\n### v2.0.0 - Cloud Native (Q1 2027) ☁️\n- Kubernetes Operator for lifecycle management\n- Service mesh integration (Istio, Linkerd)\n- Cloud provider integration (AWS, Azure, GCP)\n- Multi-cluster and geographic distribution\n- AI-powered monitoring\n\n### v2.1.0+ - Advanced Features (2027+) 🤖\n- Advanced automation and self-healing\n- Workflow engine for provisioning\n- AI/ML for intelligent operations\n- Advanced networking (BGP, SD-WAN)\n- Edge computing and IoT integration\n\n---\n\n## Community\n\n### Support\n\n- **GitHub Issues**: https://github.com/infrastructure-alexson/ldap-infrastructure-suite/issues\n- **Discussions**: https://github.com/infrastructure-alexson/ldap-infrastructure-suite/discussions\n- **Feature Requests**: Use the Feature Release Tracker project\n\n### Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n### License\n\nThis project is licensed under the MIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n## Acknowledgments\n\nBuilt with:\n- [389 Directory Service](https://www.port389.org/)\n- [ISC Kea DHCP](https://www.isc.org/kea/)\n- [ISC BIND 9](https://www.isc.org/bind/)\n- [FastAPI](https://fastapi.tiangolo.com/)\n- [React](https://react.dev/)\n- [PostgreSQL](https://www.postgresql.org/)\n- [Redis](https://redis.io/)\n\n---\n\n**LDAP Infrastructure Suite**  \n**Version**: 1.0.0-dev  \n**Release Date**: TBD (2026)  \n**Repository**: https://github.com/infrastructure-alexson/ldap-infrastructure-suite  \n**Documentation**: https://docs.infrastructure-alexson.org/suite\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfrastructure-alexson%2Fldap-infrastructure-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfrastructure-alexson%2Fldap-infrastructure-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfrastructure-alexson%2Fldap-infrastructure-suite/lists"}