DevHub is an internal developer platform control plane for scaffolding services, creating releases, and deploying those releases through a plugin-driven workflow.
Built with Go, Vue 3, TypeScript, Python plugins, PostgreSQL, Redis, Gitea, and Argo CD.
- Register projects with environment ownership and lifecycle metadata
- Scaffold new services from platform templates
- Create releases for a selected service
- Deploy a chosen release version into
dev,staging, orprod - Track deployment and release history from the control plane UI
- Drive automation through plugin types:
scaffolderreleaserdeployer
The current control-plane UI is organized around this lifecycle:
Projectslists registered projects with ownership and environment filters.- Clicking a project opens project details with services, recent releases, and recent deployments.
- From project details, you can open a service.
- From service details, you can:
- create a release
- select a release
- deploy based on that release version
- inspect deployments filtered by the selected release tag
The current DevHub console looks like this:
Detailed docs live in docs/:
This keeps the main project page readable on GitHub while still exposing the deeper documentation from the README.
# Clone the repo
git clone https://github.com/phamphihungbk/devhub.git
cd devhub
# Discover available commands
make help
# Prepare local environment files
make bootstrap
# Start the local platform stack
make up
# Run database migrations
make migrateLocal access points after startup:
- DevHub UI: https://devhub.local
- DevHub API host: https://api.devhub.local
- Gitea UI: https://gitea.devhub.local
- Argo CD UI: https://argocd.devhub.local
To configure those local domains and trust the generated certificate on macOS:
make setup-local-httpsUseful follow-up commands:
# Backend with file watch
make backend-watch
# Frontend watch
make frontend-watch
# Argo CD local UI
make argocd-ui
# Recreate minikube with the local registry enabled
make minikube-registrymake minikube-registry starts devhub-registry, recreates the Minikube cluster with host.minikube.internal:5001 allowed as an insecure registry, and verifies the registry is reachable from inside Minikube.
devhub/
βββ backend/ # Go API, workers, domain logic, migrations
βββ frontend/ # Vue admin console
βββ plugins/ # Python scaffold, release, and deploy plugins
βββ infra/ # Helm charts, Argo CD manifests, Docker assets
βββ scripts/ # Local development helpers
βββ docs/ # Project documentation
- Local Postgres is exposed on
localhost:5433by default. - The backend and worker rely on
.envfor Argo CD, SCM, and CI/CD integration settings. - GitOps and Argo CD setup details are documented in Getting Started.
