otisk
A small, self-hosted git forge.
otisk is Czech for imprint, as in a fingerprint — which is how git names everything it stores, and how otisk recognises you.
The object store is the source of truth for every repository. Local disk is a cache that can be deleted at any time; a repository reaches disk only by being hydrated from durable storage, so a cold node is a routine state rather than a recovery path.
There is no web interface. Everything is driven from the command line over SSH, using the same key you already push with — there is nothing to log into.
Start here
- Concepts — how this differs from GitHub and GitLab, and what it borrows from Gerrit. Read this one first.
- Installing —
pacman -S otisk,brew install otisk, or building from a clone. - Getting started — point the client at a host, create a repository, push to it, clone it back.
Using it
- Reviewing — changes, revisions, comments, landing, and the terminal interface.
- Commands — every command, and what it takes.
- Configuring — the client's settings, and the gateway's.
Running it
- Self-hosting — running a gateway of your own.
- How it works — what happens when you push, and where it ends up.
Reading this as an agent
Every page is published twice: as HTML, and as the Markdown it was rendered
from. Add .md to any address to get the text.
https://docs.otisk.dev/commands the page
https://docs.otisk.dev/commands.md the same file, as Markdown
They are the same file, not a copy of one — the build serves the repository's
docs/ directory, and a test compares what is served with what is committed.
If you have the repository, read docs/ directly.
What this is not
No CI, packages, pages, wikis, project boards, discussions, organizations, branch protection, merge queues, or code search. Issues, HTTPS transport, LFS, webhooks, and a web interface are planned; each will arrive on its own terms.