summaryrefslogtreecommitdiff
path: root/config/cgit.nix
diff options
context:
space:
mode:
authorKJ Ørbekk <kj@orbekk.com>2017-05-14 13:16:37 -0400
committerKJ Ørbekk <kj@orbekk.com>2017-05-14 13:16:37 -0400
commit4bcc6d9dea29c1982b31b831d7341274a19339ed (patch)
tree9f1d09f0f43fb435839ed520dba6ca84c27ed139 /config/cgit.nix
parent2198632a40b249ceff1d1927ef683e11b7a06afc (diff)
Improve cgit config.
Diffstat (limited to 'config/cgit.nix')
-rw-r--r--config/cgit.nix28
1 files changed, 27 insertions, 1 deletions
diff --git a/config/cgit.nix b/config/cgit.nix
index 4f36e6a..19229c5 100644
--- a/config/cgit.nix
+++ b/config/cgit.nix
@@ -2,9 +2,17 @@
let
fcgiPort = (import ../data/aliases.nix).services.fcgi.port;
gitPort = (import ../data/aliases.nix).services.git.port;
- gitPath = "/storage/projects/";
+ gitPath = "/storage/projects";
+ cacheDir = "/var/lib/cgit/cache";
configFile = pkgs.writeText "cgitrc" ''
+ virtual-root=/
scan-path=${gitPath}
+ cache-root=${cacheDir}
+ cache-size=1000
+ max-stats=year
+ root-title=KJ's repositories
+ enable-commit-graph=true
+ repository-sort=age
'';
in
{
@@ -17,7 +25,13 @@ in
virtualHosts = {
"git.orbekk.com" = {
root = "${pkgs.cgit}/cgit";
+ port = gitPort;
extraConfig = "try_files $uri @cgit;";
+ locations."/git/" = {
+ extraConfig = ''
+ rewrite ^/git/(.*) https://git.orbekk.com/$1 permanent;
+ '';
+ };
locations."@cgit" = {
extraConfig = ''
include "${pkgs.nginx}/conf/fastcgi_params";
@@ -32,4 +46,16 @@ in
};
};
};
+
+ systemd.services.cgit-init = {
+ description = "init cgit cache";
+ path = [ pkgs.coreutils ];
+ after = [ "networking.target" ];
+ wantedBy = [ "multi-user.target" ];
+ script = ''
+ echo "Creating cache directory"
+ mkdir -p ${cacheDir}/cache
+ chown fcgi:fcgi ${cacheDir}/cache
+ '';
+ };
}