aboutsummaryrefslogtreecommitdiff
path: root/modules/services/cgit.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/services/cgit.nix')
-rw-r--r--modules/services/cgit.nix44
1 files changed, 44 insertions, 0 deletions
diff --git a/modules/services/cgit.nix b/modules/services/cgit.nix
new file mode 100644
index 0000000..ad99d3d
--- /dev/null
+++ b/modules/services/cgit.nix
@@ -0,0 +1,44 @@
+{
+ flake.modules.nixos.cgit =
+ {
+ config,
+ lib,
+ pkgs,
+ ...
+ }:
+ {
+ services.cgit."git-server" = {
+ enable = true;
+
+ scanPath = "/var/lib/git-server";
+
+ user = "git";
+ group = "git";
+
+ nginx.virtualHost = "git.schererleander.de";
+
+ gitHttpBackend = {
+ enable = true;
+ checkExportOkFiles = false;
+ };
+
+ settings = {
+ "root-title" = "My Git Repositories";
+ "root-desc" = "Self-hosted NixOS Git server";
+ "clone-url" =
+ "https://git.schererleander.de/$CGIT_REPO_URL ssh://git@git.schererleander.de/$CGIT_REPO_URL";
+ "enable-http-clone" = 1;
+ "enable-commit-graph" = 1;
+ "enable-log-filecount" = 1;
+ "enable-log-linecount" = 1;
+ "branch-sort" = "age";
+ };
+ };
+
+ services.nginx.virtualHosts."git.schererleander.de" = {
+ forceSSL = true;
+ sslCertificate = config.sops.secrets."cert_fullchain".path;
+ sslCertificateKey = config.sops.secrets."cert_private".path;
+ };
+ };
+}