Documentation
Pertisk Gits Docs
Self-hosted Git platform with CI/CD pipelines and an OCI container registry.
Overview
Pertisk Gits is a Git platform built with Rust, React, and PostgreSQL — hosting, collaboration, CI/CD, and an org-scoped OCI registry behind a Pingora gateway (optional HTTP/3).
Live demo: gitdev.tools.pertisk.com
| Area | What you get |
|---|---|
| Git | Smart HTTP + SSH, file browser/editor, commits, branches/tags |
| Collab | Issues, labels, milestones, merge requests + reviews |
| CI/CD | .pertisk-ci.yaml, pertisk-runner, live logs, artifacts, PR checks |
| Registry | OCI /v2/* per org, token auth, UI, GC, S3/MinIO or local blobs |
| Edge | Pingora gateway; optional pertisk-h3-gateway (Quiche) |
Quick start
git clone https://github.com/pertisktech/pertisk-gits.git
cd pertisk-gits
cp .env.example .env
# Dev — Postgres + API + built UI on :8080
make dev
# Or hot-reload UI on :5173, API on :8080
make dev-vite
Requires Docker and cargo-watch (cargo install cargo-watch). Stop with make dev-stop.
Clone & push
- Open a project in the UI → Clone shows the HTTP URL
git clone http://localhost:8080/{group}/{project}.git- Push with your username + account password when prompted
Private projects require auth for clone and push. Git Smart HTTP is built into the API for local dev.
CI/CD
Pipelines are defined in .pertisk-ci.yaml (push / pull_request). Runners (pertisk-runner) execute shell steps, stream logs, and upload artifacts. Register runners from the UI or API with labels that match runs-on.
# Linux service (after registering a token)
sudo systemctl enable --now pertisk-runner
# Or Docker / Helm — see repo docs
make runner-image && make runner-compose-up
Deep dive: CICD.md
Container registry
OCI registry per organization (registry.host/org/image:tag) via pertisk-registry — push/pull manifests and blobs, token auth, group UI, and garbage collection. Storage: local REGISTRY_ROOT or S3/MinIO.
See REGISTRY.md
Deploy
Packages (DEB/RPM, amd64 + arm64) similar to Pertisk Proxy:
VERSION=0.1.0 ./scripts/build.sh
make deploy DEPLOY_HOST=user@host VERSION=0.1.0
Service pertisk-gits listens on 8080 (UI + API + Git HTTP). Config: /etc/pertisk-gits/pertisk-gits.conf — set DATABASE_URL, JWT_SECRET, GIT_PUBLIC_BASE_URL.
Screenshots
| Shot | File | Shows |
|---|---|---|
| Hero | repos.jpg |
Repo code browser |
| Runners | runners.jpg |
CI runners admin |
| Registry | registry.jpg |
OCI container registry |
Optional follow-ups: merge request + pipeline run detail.