# HTTP Git hosting # Copyright (C) 2023 Nguyễn Gia Phong # # This file is part of loang configuration. # # Loang configuration is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Loang configuration is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with loang configuration. If not, see . { config, lib, pkgs, ... }: let inherit (config.networking) domain; in { services = { lighttpd = { cgit = { configText = let httpsClone = "https://trong.${domain}/$CGIT_REPO_URL"; scanPath = "/var/lib/git"; sshClone = "ssh://${domain}:2211${scanPath}/$CGIT_REPO_URL"; in '' about-filter=${pkgs.cgit}/lib/cgit/filters/about-formatting.sh source-filter=${pkgs.cgit}/lib/cgit/filters/syntax-highlighting.py clone-url=${httpsClone} ${sshClone} enable-blame=1 enable-git-config=1 readme=:README.md snapshots=tar.gz tar.zst scan-path=${scanPath} ''; enable = true; subdir = ""; }; enable = true; port = 9418; }; nginx."trong.${domain}" = let port = config.services.lighttpd.port; in { enableACME = true; forceSSL = true; locations."/".proxyPass = "http://127.0.0.1:${toString port}"; }; }