summaryrefslogtreecommitdiff
path: root/config/cgit.nix
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2017-05-14 12:21:19 -0400
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2017-05-14 12:21:31 -0400
commit2198632a40b249ceff1d1927ef683e11b7a06afc (patch)
treecf94551ab09e6d58d42df12cd0efa543fadf67ba /config/cgit.nix
parentffb00cd62672c19e875820049b86eb362e6d0775 (diff)
Add cgit service.
Diffstat (limited to 'config/cgit.nix')
-rw-r--r--config/cgit.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/config/cgit.nix b/config/cgit.nix
new file mode 100644
index 0000000..4f36e6a
--- /dev/null
+++ b/config/cgit.nix
@@ -0,0 +1,35 @@
+{ config, lib, pkgs, ... }:
+let
+ fcgiPort = (import ../data/aliases.nix).services.fcgi.port;
+ gitPort = (import ../data/aliases.nix).services.git.port;
+ gitPath = "/storage/projects/";
+ configFile = pkgs.writeText "cgitrc" ''
+ scan-path=${gitPath}
+ '';
+in
+{
+ imports = [ ./fcgiwrap.nix ];
+
+ networking.firewall.allowedTCPPorts = [ gitPort ];
+
+ services.nginx = {
+ enable = true;
+ virtualHosts = {
+ "git.orbekk.com" = {
+ root = "${pkgs.cgit}/cgit";
+ extraConfig = "try_files $uri @cgit;";
+ locations."@cgit" = {
+ extraConfig = ''
+ include "${pkgs.nginx}/conf/fastcgi_params";
+ fastcgi_param CGIT_CONFIG "${configFile}";
+ fastcgi_param SCRIPT_FILENAME "${pkgs.cgit}/cgit/cgit.cgi";
+ fastcgi_param PATH_INFO $uri;
+ fastcgi_param QUERY_STRING $args;
+ fastcgi_param HTTP_HOST $server_name;
+ fastcgi_pass localhost:${toString fcgiPort};
+ '';
+ };
+ };
+ };
+ };
+}