guixsd-config

GuixSD configs for my systems
Log | Files | Refs

commit 9fe183c3a62720922c2c9241260c7cf4ddd7650f
parent aacce8b650dbe9f0d3bcd77e166d3d9ea11b4d61
Author: Vineet Kumar <git@vineetk.net>
Date:   Sun,  1 Feb 2026 18:43:06 -0500

saklas: add git hosting (cgit)

Diffstat:
Mepistemia/systems/saklas.scm | 49++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 46 insertions(+), 3 deletions(-)

diff --git a/epistemia/systems/saklas.scm b/epistemia/systems/saklas.scm @@ -7,6 +7,7 @@ #:use-module (gnu packages messaging) #:use-module (gnu packages version-control) #:use-module (gnu services certbot) + #:use-module (gnu services cgit) #:use-module (gnu services dns) #:use-module (gnu services file-sharing) #:use-module (gnu services linux) @@ -154,13 +155,23 @@ table inet filter { (inherit base-system) (host-name "saklas.epistemia") - (users (cons (user-account + (users (cons* (user-account (name "vin") (comment "Vineet") (shell (file-append bash "/bin/bash")) (group "users") - (supplementary-groups '("wheel"))) + (supplementary-groups '("wheel" "git"))) + (user-account + (name "git") + (comment "git account") + (shell (file-append git "/bin/git-shell")) + (group "git") + (home-directory "/data/src/bare") + (system? #f)) %base-user-accounts)) + (groups (cons* (user-group + (name "git")) + %base-groups)) (kernel linux-6.17) (kernel-arguments (list "net.ifnames=0")) @@ -259,6 +270,7 @@ table inet filter { (password-authentication? #f) (authorized-keys `(("vin" ,(local-file "/data/ssh/id_ed25519.pub")) + ("git" ,(local-file "/data/ssh/id_ed25519.pub")) ("root" ,(local-file "/data/ssh/id_ed25519.pub")))) (extra-content "\ ListenAddress 127.0.0.1:22 @@ -365,7 +377,7 @@ rpz: (let ((prosodyctl (string-append #$prosody "/bin/prosodyctl"))) (system* prosodyctl "--root" "cert" "import" "/etc/certs"))))) (domains '("vineetk.net" - ;"git.vineetk.net" + "git.vineetk.net" ;"mail.vineetk.net" "u.vineetk.net" "xmpp.vineetk.net" @@ -401,6 +413,37 @@ rpz: (ssl-certificate-key "/etc/certs/vinbiz.ca/privkey.pem") (root "/var/www/site_vinbiz") (raw-content (list "include " %nginx-badboi ";"))))))) + (service cgit-service-type + (cgit-configuration + (enable-index-links? #t) + (enable-log-filecount? #t) + (enable-log-linecount? #t) + (enable-git-config? #t) + (remove-suffix? #t) + (root-desc "") + (root-title "Vineet's git repos") + (repository-directory "/data/src/bare") + (section-from-path 1) + (side-by-side-diffs? #t) + (nginx + (list + (nginx-server-configuration + (server-name '("git.vineetk.net")) + (listen '("443 ssl")) + (root cgit) + (try-files (list "$uri" "@cgit")) + (ssl-certificate "/etc/certs/vineetk.net/fullchain.pem") + (ssl-certificate-key "/etc/certs/vineetk.net/privkey.pem") + (raw-content (list "include" %nginx-badboi ";")) + (locations + (list + (nginx-location-configuration + (uri "@cgit") + (body '("fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi;" + "fastcgi_param PATH_INFO $uri;" + "fastcgi_param QUERY_STRING $args;" + "fastcgi_param HTTP_HOST $server_name;" + "fastcgi_pass 127.0.0.1:9000;")))))))))) (service prosody-service-type (prosody-configuration (admins '("vin@vineetk.net"))