A comprehensive self-hosted DevOps platform that can be run locally using Docker Desktop with Kubernetes enabled. This platform simulates a full production DevOps stack with all essential tools for modern software development and operations.
The DevOps Lab includes the following components:
- Gitea - Git server for source code management
- ArgoCD - GitOps continuous deployment
- Argo Workflows - CI/CD pipeline automation
- HashiCorp Vault - Secrets management
- Harbor - Container registry
- SonarQube - Code quality analysis
- NetBox - Infrastructure inventory management
- Prometheus - Metrics collection and monitoring
- Grafana - Metrics visualization and dashboards
- Loki - Log aggregation
- Alertmanager - Alert management
- Beyla - eBPF-based application monitoring
- Alloy - Observability data collection
- Authelia - Single Sign-On (SSO) and authentication
- Nginx Ingress Controller - Load balancing and routing
- Docker Desktop with Kubernetes enabled
- kubectl (Kubernetes CLI)
- helm (Helm package manager)
-
Clone the repository:
git clone <repository-url> cd devops-lab
-
Deploy the entire platform:
./deploy.sh
-
Start port forwarding:
./port-forward.sh
-
Access the services:
- Grafana: http://localhost:3001 (admin/admin123)
- ArgoCD: http://localhost:8080 (admin/g6hgu4t0utsTn1eR)
- Harbor: http://localhost:8082 (admin/admin123)
- Authelia: http://localhost:8084 (admin/authelia)
- Vault: http://localhost:8200 (token: devops-lab-root-token)
- Gitea: http://localhost:4000 (first-time setup)
- Prometheus: http://localhost:9090 (no auth)
| Service | URL | Username | Password | Status |
|---|---|---|---|---|
| Grafana | http://localhost:3001 | admin | admin123 | ✅ Working |
| ArgoCD | http://localhost:8080 | admin | g6hgu4t0utsTn1eR | ✅ Working |
| Harbor | http://localhost:8082 | admin | admin123 | ✅ Working |
| Authelia | http://localhost:8084 | admin | authelia | ✅ Working |
| Vault | http://localhost:8200 | - | devops-lab-root-token | ✅ Working |
| Gitea | http://localhost:4000 | root | (first-time setup) | ✅ Working |
| Prometheus | http://localhost:9090 | - | (no auth) | ✅ Working |
| Service | Status | Issue | Solution |
|---|---|---|---|
| NetBox | PostgreSQL image issues | Use simplified configuration | |
| SonarQube | Image pull issues | Use simplified configuration | |
| Beyla | eBPF compatibility | Check system requirements | |
| Alloy | Image pull issues | Use stable image versions |
./port-forward.shpkill -f "kubectl port-forward"kubectl get pods -A | grep -E "gitea|argocd|grafana|prometheus|vault|harbor|authelia"./reset-passwords.sh./test-credentials.shdevops-lab/
├── deploy.sh # Main deployment script
├── port-forward.sh # Port forwarding script
├── reset-passwords.sh # Password reset script
├── test-credentials.sh # Credential testing script
├── CREDENTIALS.md # Complete credentials reference
├── k8s/ # Kubernetes manifests
│ ├── gitea/ # Git server
│ ├── argocd/ # GitOps
│ ├── vault/ # Secrets management
│ ├── harbor/ # Container registry
│ ├── sonarqube/ # Code quality
│ ├── monitoring/ # Prometheus, Grafana, Loki
│ ├── ingress/ # Nginx Ingress
│ ├── argo-workflows/ # CI/CD
│ ├── netbox/ # Infrastructure inventory
│ └── authelia/ # SSO
└── README.md # This file
All services are accessible via localhost with the following ports:
- 3001 - Grafana
- 4000 - Gitea
- 8080 - ArgoCD
- 8082 - Harbor
- 8084 - Authelia
- 8200 - Vault
- 9090 - Prometheus
The following services use persistent storage:
- Gitea - Git repositories and data
- Harbor - Container images and metadata
- Vault - Secrets and configuration
- Grafana - Dashboards and configuration
- NetBox - Infrastructure data
- SonarQube - Code analysis data
- Authelia provides SSO for all services
- Vault manages secrets and certificates
- Harbor provides secure container registry
- All services use self-signed certificates for local development
-
"Connection Refused"
- Check if port forwarding is running:
lsof -i :PORT - Restart port forwarding:
./port-forward.sh
- Check if port forwarding is running:
-
"Invalid Credentials"
- Use the exact credentials from
FINAL_CREDENTIALS.md - Reset passwords:
./reset-passwords.sh
- Use the exact credentials from
-
"Page Not Found"
- Use root paths (e.g., http://localhost:8082, not http://localhost:8082/harbor)
- Check service status:
kubectl get pods -A
-
"Loading Forever"
- Wait 2-3 minutes for services to fully start
- Check pod logs:
kubectl logs -n NAMESPACE deployment/SERVICE-NAME
- Wait for Harbor to fully restart (2-3 minutes)
- Use username:
admin, password:admin123 - Clear browser cache
- Clear browser cache and cookies
- Try incognito/private mode
- Wait for Authelia to fully restart
- Use username:
admin, password:admin123 - Wait for Grafana to fully restart (1-2 minutes)
- Use Gitea for Git repositories
- Set up webhooks for automatic builds
- SonarQube analyzes code quality
- Argo Workflows runs CI/CD pipelines
- Harbor stores container images
- ArgoCD deploys applications
- Prometheus collects metrics
- Grafana visualizes data
- Loki aggregates logs
- Beyla provides eBPF monitoring
- Authelia provides SSO
- Vault manages secrets
- NetBox tracks infrastructure
CREDENTIALS.md- Complete credentials reference
deploy.sh- Main deployment scriptport-forward.sh- Port forwarding managementreset-passwords.sh- Password reset utilitytest-credentials.sh- Credential testing
- Change all default passwords
- Configure proper SSL certificates
- Set up external DNS
- Configure backup strategies
- Implement proper RBAC
- Set up Git repositories in Gitea
- Configure ArgoCD applications
- Create monitoring dashboards
- Set up CI/CD pipelines
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter issues:
- Check the troubleshooting section above
- Review the service logs:
kubectl logs -n NAMESPACE deployment/SERVICE-NAME - Check service status:
kubectl get pods -A - Verify port forwarding:
lsof -i :PORT
🎉 Enjoy your complete DevOps platform!
Last Updated: October 2025
Status: Core services operational ✅
Platform: Docker Desktop Kubernetes