Thanks for your interest in improving VortexUI! This guide covers how to set up a dev environment, the project layout, and the conventions we follow.
git clone https://github.com/iPmartNetwork/VortexUI && cd VortexUI
# Backend deps (PostgreSQL/TimescaleDB + Redis)
docker compose up -d
# Configure
cp .env.example .env
# set VORTEX_JWT_SECRET: openssl rand -hex 32
# Run the control plane
make certs # dev mTLS chain
make run-panel
# Frontend (separate terminal)
cd web
npm install
npm run dev -- --host 127.0.0.1For a UI-only demo without a database, run the in-memory mock API:
go run ./tools/mockapi # serves :8080
cd web && npm run dev -- --host 127.0.0.1| Path | Purpose |
|---|---|
cmd/panel, cmd/node |
Binaries: control plane and node agent |
internal/core/{xray,singbox} |
Engine drivers behind a common interface |
internal/panel/{api,service,hub,port} |
HTTP API, services, node hub, ports |
internal/platform/postgres |
sqlc-generated DB access (queries/*.sql) |
internal/transport |
gRPC server/client + generated protobufs |
proto/ |
gRPC definitions (regenerate with make proto) |
migrations/ |
goose migrations (schema mirror in schema.sql) |
web/ |
React + Vite frontend |
deploy/, install.sh, scripts/ |
Deployment and installer |
- Commits follow Conventional Commits:
feat:,fix:,docs:,refactor:,chore:, etc. - Go: keep it idiomatic; run
go build ./...,go vet ./..., andgo test ./...before pushing. Match the surrounding style. - Codegen: after editing
proto/runmake proto; after editingqueries/*.sqlrunmake sqlc. Commit the generated files. - Migrations: add a new
migrations/000N_*.sqland mirror the change ininternal/platform/postgres/schema.sql(sqlc reads the latter). - Frontend:
npm run buildmust pass (it type-checks). Add any new i18n key to all 8 languages inweb/src/i18n/dict.ts.
- Fork and branch from
master(git checkout -b feat/amazing). - Keep changes focused; update docs/tests alongside code.
- Ensure CI is green (build, vet, test, lint, web build).
- Open the PR with a clear description of what and why.
Include the version/commit, your platform, repro steps, and relevant logs
(vortexui logs). For security issues, please disclose privately rather than via a
public issue.
By contributing, you agree that your contributions are licensed under the project's GPL-3.0 license.