diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-01-03 15:01:52 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2019-01-03 15:01:52 +0100 |
commit | cf80b4f24e96e7d6e40845ac1fe206fc67a20b12 (patch) | |
tree | 21999356424ca66ff89532eec5594cd457492290 /virtual/packages/gitweb.nix | |
parent | 9f944a58aa12729d1699134ed9370ffa5f9a41b9 (diff) | |
download | Nix-cf80b4f24e96e7d6e40845ac1fe206fc67a20b12.tar.gz Nix-cf80b4f24e96e7d6e40845ac1fe206fc67a20b12.tar.zst Nix-cf80b4f24e96e7d6e40845ac1fe206fc67a20b12.zip |
Add gitweb service
Diffstat (limited to 'virtual/packages/gitweb.nix')
-rw-r--r-- | virtual/packages/gitweb.nix | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/virtual/packages/gitweb.nix b/virtual/packages/gitweb.nix new file mode 100644 index 0000000..437a11a --- /dev/null +++ b/virtual/packages/gitweb.nix | |||
@@ -0,0 +1,72 @@ | |||
1 | with import ../../libs.nix; | ||
2 | with nixpkgs_unstable; | ||
3 | let | ||
4 | gitweb = rec { | ||
5 | varDir = "/var/lib/gitolite"; | ||
6 | webRoot = pkgs.gitweb.overrideAttrs(old: { | ||
7 | installPhase = old.installPhase + '' | ||
8 | cp -r ${./gitweb} $out/gitweb-theme; | ||
9 | ''; | ||
10 | }); | ||
11 | config = pkgs.writeText "gitweb.conf" '' | ||
12 | $git_temp = "/tmp"; | ||
13 | |||
14 | # The directories where your projects are. Must not end with a | ||
15 | # slash. | ||
16 | $projectroot = "${varDir}/repositories"; | ||
17 | |||
18 | $projects_list = "${varDir}/projects.list"; | ||
19 | $strict_export = "true"; | ||
20 | |||
21 | # Base URLs for links displayed in the web interface. | ||
22 | our @git_base_url_list = qw(ssh://gitolite@git.immae.eu https://git.immae.eu); | ||
23 | |||
24 | $feature{'blame'}{'default'} = [1]; | ||
25 | $feature{'avatar'}{'default'} = ['gravatar']; | ||
26 | $feature{'highlight'}{'default'} = [1]; | ||
27 | |||
28 | @stylesheets = ("gitweb-theme/gitweb.css"); | ||
29 | $logo = "gitweb-theme/git-logo.png"; | ||
30 | $favicon = "gitweb-theme/git-favicon.png"; | ||
31 | $javascript = "gitweb-theme/gitweb.js"; | ||
32 | $logo_url = "https://git.immae.eu/"; | ||
33 | $projects_list_group_categories = "true"; | ||
34 | $projects_list_description_width = 60; | ||
35 | $project_list_default_category = "__Others__"; | ||
36 | ''; | ||
37 | apache = { | ||
38 | user = "wwwrun"; | ||
39 | group = "wwwrun"; | ||
40 | modules = [ "cgid" ]; | ||
41 | vhostConf = '' | ||
42 | SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/ | ||
43 | ScriptAliasMatch \ | ||
44 | "(?x)^/(.*/(HEAD | \ | ||
45 | info/refs | \ | ||
46 | objects/(info/[^/]+ | \ | ||
47 | [0-9a-f]{2}/[0-9a-f]{38} | \ | ||
48 | pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ | ||
49 | git-(upload|receive)-pack))$" \ | ||
50 | ${pkgs.git}/libexec/git-core/git-http-backend/$1 | ||
51 | |||
52 | <Directory "${pkgs.gitolite}"> | ||
53 | Require all granted | ||
54 | </Directory> | ||
55 | <Directory "${pkgs.git}/libexec/git-core"> | ||
56 | Require all granted | ||
57 | </Directory> | ||
58 | <Directory "${webRoot}"> | ||
59 | DirectoryIndex gitweb.cgi | ||
60 | Require all granted | ||
61 | AllowOverride None | ||
62 | Options ExecCGI FollowSymLinks | ||
63 | <Files gitweb.cgi> | ||
64 | SetHandler cgi-script | ||
65 | SetEnv GITWEB_CONFIG "${config}" | ||
66 | </Files> | ||
67 | </Directory> | ||
68 | ''; | ||
69 | }; | ||
70 | }; | ||
71 | in | ||
72 | gitweb | ||