Self-hosted git host

Host every repo.
Hand out exactly the access you mean.

GitFork is a self-hostable, multi-tenant git host built on real git — with hierarchical access keys, smart-HTTP clone and push, and non-destructive mirroring to and from anywhere.

Own the server. Own the keys. Own the source.

git over smart-HTTP
$ git clone https://gitfork/acme/atlas.git
Cloning into 'atlas'...
Username: gfk_live_3f9c…
remote: ✓ read+write · expires 29d · 142 uses left
Receiving objects: 100% (1287/1287), done.
Real git
clone · fetch · push
Bidirectional
mirror & sync
Scoped keys
expiry · caps · delegation
Multi-tenant
one box, many teams

Everything a git host should do — and nothing it shouldn't.

Three tightly-built subsystems: hierarchical access, real transport, and safe external sync. Each one does exactly what it says.

Hierarchical access keys

Company → user → repo → branch. Grant read or write, set expiry and usage caps, delegate over the API, mark public or private — access scoped to exactly what you mean, nothing wider.

Real git over HTTP

Native smart-HTTP transport. clone, fetch and push with the git you already have installed — no custom client, no agent, no lock-in. It is just git, hosted by you.

Safe mirror & sync

Mirror to or from GitHub and beyond — pull, push, or both; manual, timed, or on every commit. A merge only applies when it is fully clean; conflicts are recorded in a throwaway worktree and never touch your repo.

Trigger commits

Push a commit whose message says PULL REQUEST and a pull request opens itself. Turn push-time intent into action without ever leaving the command line.

Durable storage

Bare repositories live on disk for speed, with optional write-through S3 snapshots for durability. Cold-start hydration is built in — lose the box, keep the repos.

Multi-tenant by design

Opt-in tenancy isolates companies, users and repositories cleanly. Self-host a single team or a thousand from one install, and turn it on only when you need it.

Access that nests, the way your org does.

One key model from the company down to a single tag. Issue a key at any level; it can never grant more than the level above it.

CompanyUserRepositoryBranch / Tag
read / writeexpirymax-usesAPI delegationpublic / private

Built for operators: OpenTelemetry tracing on every action, soft-delete tombstones, and the radical simplicity of a single SQLite file you can back up by copying it.

Spin up your own git host. Keep your source where it belongs.

Self-host GitFork in one container and run git on your terms — keys, mirrors, tenants and all.