Create cgit.md

This commit is contained in:
deepend-tildeclub 2025-05-28 18:35:43 -06:00 committed by GitHub
parent fafe495957
commit 5e2e1d71bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 126 additions and 0 deletions

126
wiki/source/cgit.md Normal file
View File

@ -0,0 +1,126 @@
---
title: using cgit on tilde.club
author: deepend
category: tilde.club
--------------------
`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)
```bash
$ 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).
```bash
# create a brandnew 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 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.
```bash
$ git push tilde main # normal
$ git push --mirror tilde # full mirror (branches + tags)
```
---
## 5Remove 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 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](mailto:root@tilde.club)**.