--- title: using cgit on tilde.club author: deepend category: tutorials --- `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/~/git/ ``` Below is the quick‑start plus a few tips. --- ## 1  Create the **public\_git** directory (once) ```bash $ 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). ```bash # create a brand‑new bare repository $ cd ~/public_git $ git init --bare hello.git ``` or push an existing project: ```bash $ cd ~/my/project # add tilde as a remote and mirror‑push everything $ git remote add tilde ssh://@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/~/git/ Single repo : https://tilde.club/~/git/.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. ```bash $ git push tilde main # normal $ git push --mirror tilde # full mirror (branches + tags) ``` --- ## 5  Remove a repository Simply delete or rename the directory: ```bash $ 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://@tilde.club/~/public_git/.git ``` or plain HTTPS for read‑only: ``` https://tilde.club/~/git/.git ``` --- Happy hacking, and show off your code! Questions? `#club` on irc.newnet.net or mail **[root@tilde.club](mailto:root@tilde.club)**.