// self-hosted, private git — on your own server

thecrux❯

The crux is in the code.

A keyboard-first, self-hosted home for your code — private by default, push over Smart-HTTP or SSH, issues and pull requests included. No telemetry, no database, no sprawl. Your code never leaves your server.

open source · MIT · no account, no download gate · runs anywhere Docker does

01 What it does

⚿

Private by default

New repos are private — browsing and cloning are gated to the people you choose. Flip to public when you want.

⇅

Git over HTTP & SSH

Clone, fetch and push over Smart-HTTP or with your SSH keys. No daemons, no special client — just git.

◈

Revocable tokens

Push with per-device access tokens instead of your password. Shown once, stored hashed, revoked in a click.

◇

Issues & pull requests

Real diffs, labels and assignees, server-side merges (fast-forward or a true merge commit) with conflict detection.

◫

Organizations

Shared namespaces with owners and members. Group repos for a team — everyone in the org can push.

↯

Webhooks & audit log

Fire HMAC-signed post-receive payloads at your CI. Every security-relevant action lands in an append-only log.

⌘

Keyboard-first UI

A ⌘K command palette, vim-style navigation, light/dark themes. Server-rendered — works without JS.

⬡

One box, no database

A single Node app + Docker. Everything is files under one data dir, so a backup is a tar. No telemetry.

02 See it

Keyboard-first, server-rendered, private by default — here's the actual UI.

Browse a repo — file tree, rendered README, syntax highlighting.
Open a pull request — compare refs, review the diff, merge server-side.

03 Run your own

Free and self-hosted — no product account, no email gate. The only account you make is the admin account on your instance.

the headline path — Docker
docker run -p 3000:3000 -p 2222:2222 -v crux-data:/data thecrux
→ http://localhost:3000. Put a reverse proxy in front for HTTPS. Prefer source? git clone, npm install, npm run dev.

crux❯ start

Get to the crux of your code.