aboutsummaryrefslogtreecommitdiff
path: root/blog/2023-09-15-gitweb.org
diff options
context:
space:
mode:
Diffstat (limited to 'blog/2023-09-15-gitweb.org')
-rw-r--r--blog/2023-09-15-gitweb.org74
1 files changed, 74 insertions, 0 deletions
diff --git a/blog/2023-09-15-gitweb.org b/blog/2023-09-15-gitweb.org
new file mode 100644
index 0000000..3da82f8
--- /dev/null
+++ b/blog/2023-09-15-gitweb.org
@@ -0,0 +1,74 @@
++++
+date = 2023-09-16T03:10:37+00:00
+title = "GitWeb via Nginx"
+description = "A short guide on how to serve GitWeb via Nginx."
++++
+
+## Overview
+
+[GitWeb](https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb) is a simple
+web-based visualizer for git repositories.
+By default, GitWeb will only run with the `lighttpd` or `webrick` web servers.
+
+However, this guide will show you how to keep GitWeb running in the background
+and display information for all repositories in a chosen directory.
+
+See below for the final result:
+
+![Gitweb](https://img.0x4b1d.org/blog/20230915-gitweb/gitweb.png "Gitweb")
+
+## Install Dependencies
+
+To start, you'll need install the following packages:
+
+```sh
+sudo apt install git gitweb fcgiwrap nginx
+```
+
+## Configure Nginx
+
+Once installed, create an Nginx configuration file.
+
+```sh
+sudo nano /etc/nginx/sites-available/git.example.com
+```
+
+```conf
+server {
+ listen 80;
+ server_name example.com;
+
+ location /index.cgi {
+ root /usr/share/gitweb/;
+ include fastcgi_params;
+ gzip off;
+ fastcgi_param SCRIPT_NAME $uri;
+ fastcgi_param GITWEB_CONFIG /etc/gitweb.conf;
+ fastcgi_pass unix:/var/run/fcgiwrap.socket;
+ }
+
+ location / {
+ root /usr/share/gitweb/;
+ index index.cgi;
+ }
+}
+```
+
+To make the configuration active, you need to symlink it and then restart Nginx.
+
+```sh
+sudo ln -s /etc/nginx/sites-available/git.example.com /etc/nginx/sites-enabled/git.example.com
+sudo systemctl restart nginx.service
+```
+
+The GitWeb application should now be available via the URL you set in the Nginx
+configuration above.
+
+## Customize GitWeb
+
+If you need to, you can customize many things about Gitweb by editing the
+[gitweb.conf](https://git-scm.com/docs/gitweb.conf) file.
+
+```sh
+sudo nano /etc/gitweb.conf
+```