Skip to content

phamphihungbk/devhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

71 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DevHub

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.

What It Does

  • 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, or prod
  • Track deployment and release history from the control plane UI
  • Drive automation through plugin types:
    • scaffolder
    • releaser
    • deployer

Frontend Flow

The current control-plane UI is organized around this lifecycle:

  1. Projects lists registered projects with ownership and environment filters.
  2. Clicking a project opens project details with services, recent releases, and recent deployments.
  3. From project details, you can open a service.
  4. 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

Demo

The current DevHub console looks like this:

DevHub dashboard demo

Documentation

Detailed docs live in docs/:

This keeps the main project page readable on GitHub while still exposing the deeper documentation from the README.

Quick Start

# 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 migrate

Local access points after startup:

To configure those local domains and trust the generated certificate on macOS:

make setup-local-https

Useful 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-registry

make 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.

Project Layout

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

Notes

  • Local Postgres is exposed on localhost:5433 by default.
  • The backend and worker rely on .env for Argo CD, SCM, and CI/CD integration settings.
  • GitOps and Argo CD setup details are documented in Getting Started.

About

🏎 A central platform for developers to scaffold, deploy, and manage services with ease. Built with Go, Vue.js, and TypeScript. Containerized with Docker. Powered by Kubernetes.

Resources

Stars

Watchers

Forks