]> Repositories - machines.git/blobdiff - levanter/git-server.nix
Add words to spell check
[machines.git] / levanter / git-server.nix
index 5f806ef13fe2ae505dcc19dcfbccb2d4d650dc21..51fb4aa43b125d92cf5d0ab8f60dd0a14f34c79f 100644 (file)
@@ -1,17 +1,22 @@
-{ ayo_public_key, ... }: let
+{ ayo_public_key, pkgs, config, ... }: let
        group = "git";
        user = "git";
        group = "git";
        user = "git";
+       home = "/srv/${user}";
 in {
        users = {
                groups.${group} = {};
 
 in {
        users = {
                groups.${group} = {};
 
-               users.${user} = {
-                       isSystemUser = true;
-                       inherit group;
-                       home = "/srv/${user}";
-                       createHome = true;
-                       useDefaultShell = true;
-                       openssh.authorizedKeys.keys = [ ayo_public_key ];
+               users = {
+                       "caddy".extraGroups = [ "git" ];
+
+                       ${user} = {
+                               isSystemUser = true;
+                               inherit group home;
+                               homeMode = "750";
+                               createHome = true;
+                               useDefaultShell = true;
+                               openssh.authorizedKeys.keys = [ ayo_public_key ];
+                       };
                };
        };
 
                };
        };
 
@@ -24,8 +29,37 @@ in {
 
                        programs.git = {
                                enable = true;
 
                        programs.git = {
                                enable = true;
-                               extraConfig.init.defaultBranch = "main";
+                               settings.init.defaultBranch = "main";
                        };
                };
        };
                        };
                };
        };
+
+       services = {
+               caddy.virtualHosts."git.ayoreis.com".extraConfig = let
+                       gitweb = pkgs.gitweb;
+               in ''
+                       @git header User-Agent git/*
+                       root ${gitweb}
+                       file_server /static/*
+
+                       cgi @git ${pkgs.git}/bin/git-http-backend {
+                               env GIT_PROJECT_ROOT=${home}
+                       }
+
+                       cgi ${gitweb}/gitweb.cgi {
+                               env GITWEB_CONFIG=${config.services.gitweb.gitwebConfigFile}
+                       }
+               '';
+
+               gitweb.extraConfig = ''
+                       our $export_ok = "git-daemon-export-ok";
+                       our $site_name = "Repositories";
+                       $feature{'pathinfo'}{'default'} = [1];
+               '';
+       };
+
+       programs.git = {
+               enable = true;
+               config.safe.directory = "*";
+       };
 }
 }