blob: d1c519a4e8b5a417868cd8ab874db0c1acf0d202 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
{ pkgs, ps-cgit, ... }: {
boot.isContainer = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
system.stateVersion = "26.05";
environment.systemPackages = with pkgs; [ gdb rr file ];
networking.useDHCP = false;
networking.firewall.allowedTCPPorts = [ 22 80 1234 ];
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keys = [ "${builtins.readFile "/home/ps/.ssh/id_ed25519.pub"}" ];
users.users.git = {
isSystemUser = true;
group = "git";
home = "/srv/git";
createHome = true;
# homeMode = "750";
shell = "${pkgs.git}/bin/git-shell";
openssh.authorizedKeys.keys = [ "${builtins.readFile "/home/ps/.ssh/id_ed25519.pub"}" ];
packages = [ pkgs.git ];
};
users.groups.git = {};
services.fcgiwrap.instances.cgit = {
process.user = "git";
process.group = "root";
socket.user = "caddy";
socket.group = "caddy";
};
services.caddy.enable = true;
services.caddy.extraConfig = ''
http://ps-cgit {
rewrite /git /git/
handle_path /git/* {
handle_path /static/* {
file_server {
root ${ps-cgit}/cgit
}
}
handle {
reverse_proxy unix//run/fcgiwrap-cgit.sock {
transport fastcgi {
read_timeout 1h
env CGIT_CONFIG ${pkgs.writeText "cgitrc" ''
snapshots=tar tar.gz zip
enable-git-config=1
enable-index-owner=0
enable-log-filecount=1
enable-log-linecount=1
section-from-path=1
virtual-root=/git
css=/git/static/cgit.css
logo=/git/static/cgit.png
favicon=/git/static/favicon.ico
module-link=/git/%s/commit/?id=%s
clone-url=https://$HTTP_HOST/git/$CGIT_REPO_URL git://$HTTP_HOST/$CGIT_REPO_URL git@$HTTP_HOST:$CGIT_REPO_URL
noplainemail=1
repository-sort=age
about-filter=${pkgs.writeShellScript "markdown-filter" ''
echo '<div class="markdown-body">'
${pkgs.md4c}/bin/md2html --github --ftables
echo '</div>'
''}
# source-filter=${ps-cgit}/lib/cgit/filters/syntax-highlighting.py
head-include=${ps-cgit}/cgit/cgithub/head-include.html
footer=${ps-cgit}/cgit/cgithub/footer.html
readme=:readme.md
readme=:readme
root-readme=${pkgs.writeText "readme.md" ''
# my git repos
''}
scan-path=/srv/git
''}
env SCRIPT_FILENAME ${ps-cgit}/cgit/cgit.cgi
}
}
}
}
}
'';
}
|