From 7e74a039122aef922d1619e636de3497ffcf7c60 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Sat, 25 Jun 2022 10:56:36 -0400 Subject: convert to hugo --- cgit.html | 143 -------------------------------------------------------------- 1 file changed, 143 deletions(-) delete mode 100644 cgit.html (limited to 'cgit.html') diff --git a/cgit.html b/cgit.html deleted file mode 100644 index b750a48..0000000 --- a/cgit.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Setting up Cgit – LandChad.net - - - - - - - - -
-

Setting up Cgit

- -
-
-

- Once you have your server hosting your git repositories, you might want to allow others to browse - your repositories on the web. Cgit is a Free Software that allows browsing git repositories through - the web.

- -

- Note that Cgit is a read-only frontend for Git repositories and doesn't have issues, pull requests - or user management. If that's what you want, consider installing Gitea instead.

- -

Installing cgit and fcgiwrap

-

Install fcgiwrap

-

- NGINX doesn't have the capability to run CGI scripts by itself, it depends on an intermediate layer - like fcgiwrap to run CGI scripts like cgit:

- -
apt install fcgiwrap
- -

And now we can install cgit itself with:

- -
apt install cgit
- -

Setting up NGINX

-

- You should have an NGINX server running with a TLS certificate by now. Add the following configuration - to your server to pass the requests to Cgit, while serving static files directly:

- -
server {
-	listen 443 ssl;
-	listen [::]:443 ssl;
-	ssl_certificate /etc/ssl/nginx/git.example.org.crt;
-	ssl_certificate_key /etc/ssl/nginx/git.example.org.key;
-	server_name git.example.org;
-
-	root /usr/share/cgit ;
-	try_files $uri @cgit ;
-
-	location @cgit {
-		include fastcgi_params;
-		fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi;
-		fastcgi_param PATH_INFO $request_uri;
-		fastcgi_param QUERY_STRING $query_string;
-		fastcgi_pass unix:/run/fcgiwrap.socket;
-	}
-}
- -

Then get NGINX to reload your configuration.

- -

Configuring cgit

-

You've got cgit up and running now, but you'll probably see it without any style and without any repository. - To change this, we need to configure Cgit to our liking, by editing /etc/cgitrc. -

- -
css=/cgit.css
-logo=/cgit.svg
-virtual-root=/
-
-# Title and description shown on top of each page
-root-title=Chad's git server
-root-desc=A web interface to LandChad's git repositories, powered by Cgit
-
-# The location where git repos are stored on the server
-scan-path=/srv/git/
- -

This configuration assumes you followed the git hosting guide and store your repositories - on the /srv/git/ directory.

- -

Cgit's configuration allows changing many settings, as documented on the cgitrc(5) manpage installed with - Cgit.

- -

Changing the displayed repository owner

- -

Cgit's main page shows each repo's owner, which is "git" in case you followed the git hosting guide, but you - might want to change the name to yours. Cgit shows the owner's system name, so you need to modify the git - user - to give it your name:

- -
usermod -c "Your Name" git
- -

Changing the repository description

- -

Navigate to your bare repository on the server and edit the description file inside it

- -

Displaying the repository idle time

- -

To do this, we need to create a post-receive hook for each repository that updates the file cgit uses - to determine the idle time. Inside your repository, create a file hooks/post-receive and add - the following contents:

- -
#!/bin/sh
-
-agefile="$(git rev-parse --git-dir)"/info/web/last-modified
-
-mkdir -p "$(dirname "$agefile")" &&
-git for-each-ref \
-	--sort=-authordate --count=1 \
-	--format='%(authordate:iso8601)' \
-	>"$agefile"
- -

And give it execution permissions with:

- -
chmod +x hooks/post-receive
- -

Next time you push to that repository, the idle time should reset and show the correct value.

- -

Contribution

- -
- - - - -- cgit v1.2.3