site/wiki/source/cgit.md

2.7 KiB
Raw Blame History

title author category
using cgit on tilde.club deepend tutorials

cgit gives every tilde.club member a simple, readonly 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 quickstart plus a few tips.


1Create 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.


2Add a repository

Only bare repos are accepted (they have no working tree inside them).

# create a brandnew bare repository
$ cd ~/public_git
$ git init --bare hello.git

or push an existing project:

$ cd ~/my/project
# add tilde as a remote and mirrorpush 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.


3Browse 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.


4Update 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)

5Remove 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 nonbare. cgit only scans ~/public_git/*.git.

Why bare repos only?

Internal .git/ directories inside nonbare repos confuse cgits 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 readonly:

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.