using cgit on tilde.club
authors:
table of contents
cgit
gives every tilde.club member a simple, read‑only
web view of their public Git repositories. Any repo you put in
~/public_git/
and end with .git
is
automatically shown at
https://tilde.club/~<username>/git/
Below is the quick‑start plus a few tips.
1 Create the public_git directory (once) §
$ mkdir -p ~/public_git
The web server is already allowed to traverse
~/public_git
, so you do not have to chmod
anything manually.
2 Add a repository §
Only bare repos are accepted (they have no working tree inside them).
# create a brand‑new bare repository
$ cd ~/public_git
$ git init --bare hello.git
or push an existing project:
$ cd ~/my/project
# add tilde as a remote and mirror‑push everything
$ git remote add tilde ssh://<username>@tilde.club/~/public_git/project.git
$ git push --mirror tilde
You can repeat for as many repos as you like; just keep each one
directly in ~/public_git/
and make sure the name ends with
.git
.
3 Browse your repos §
Index page : https://tilde.club/~<username>/git/
Single repo : https://tilde.club/~<username>/git/<repo>.git/
Example for user deepend:
https://tilde.club/~deepend/git/ # lists everything
https://tilde.club/~deepend/git/hello.git/ # specific repo
The header will say ~deepend Git Repositories
, commits
are clickable, diffs are highlighted, and the cloning URL is shown near
the top right.
4 Update a repository §
Because the repo is bare you push into it; cgit shows the new state immediately.
$ git push tilde main # normal
$ git push --mirror tilde # full mirror (branches + tags)
5 Remove a repository §
Simply delete or rename the directory:
$ rm -rf ~/public_git/oldstuff.git
The entry disappears from the index on the next page load.
FAQ §
Can I hide a repo from the list? §
Move it somewhere else in your home directory or make it non‑bare.
cgit
only scans ~/public_git/*.git
.
Why bare repos only? §
Internal .git/
directories inside non‑bare repos confuse
cgit’s scanner and produce broken links like
/repo.git/.git/
. Bare repos avoid that and are the normal
way to publish Git over HTTP.
Clone / pull URL? §
Use SSH for write access:
ssh://<username>@tilde.club/~/public_git/<repo>.git
or plain HTTPS for read‑only:
https://tilde.club/~<username>/git/<repo>.git
Happy hacking, and show off your code! Questions? #club
on irc.newnet.net or mail root@tilde.club.