diff options
| author | Alexander Kassouni <alex@kassouni.net> | 2026-09-25 22:40:15 -0700 |
|---|---|---|
| committer | Alexander Kassouni <alex@kassouni.net> | 2026-09-25 22:40:15 -0700 |
| commit | 505db4048338db9a5115526054b79e20fde7b25a (patch) | |
| tree | aa9d23918cb416e6afcd98e46635eda22fe9a2a5 /git.nix | |
| parent | 1fecb146a94823abc6738bfee1551b062c5d7d3b (diff) | |
options, git
Diffstat (limited to 'git.nix')
| -rw-r--r-- | git.nix | 41 |
1 files changed, 41 insertions, 0 deletions
@@ -0,0 +1,41 @@ +{config, pkgs, ...}: let + domain = "git.kassouni.net"; + repoRoot = "/srv/git"; +in { + users.users.git = { + isSystemUser = true; + group = "git"; + home = repoRoot; + createHome = true; + homeMode = "755"; + shell = "${pkgs.git}/bin/git-shell"; + openssh.authorizedKeys.keys = config.my.gitKeys; + }; + users.groups.git = { }; + + services.openssh.extraConfig = '' + Match user git + AllowTcpForwarding no + AllowAgentForwarding no + PermitTTY no + ''; + + services.cgit.${domain} = { + enable = true; + scanPath = repoRoot; + gitHttpBackend.checkExportOkFiles = true; + settings.strict-export = "git-daemon-export-ok"; + }; + + services.nginx.virtualHosts.${domain} = { + forceSSL = true; + enableACME = true; + }; + + security.acme = { + acceptTerms = true; + defaults.email = "alex@kassouni.net"; + }; + + networking.firewall.allowedTCPPorts = [ 80 443 ]; +} |
