From f0960a8f566658f9054ebd7deb6a7f40b3f9b0be Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Thu, 25 Dec 2025 19:47:14 +0100 Subject: refactor: move backup-repos out of git module --- nixos/hosts/tente/default.nix | 13 +++++++++++-- nixos/hosts/tente/git.nix | 23 ++++------------------- 2 files changed, 15 insertions(+), 21 deletions(-) (limited to 'nixos') diff --git a/nixos/hosts/tente/default.nix b/nixos/hosts/tente/default.nix index 77d7cbe..30fa111 100644 --- a/nixos/hosts/tente/default.nix +++ b/nixos/hosts/tente/default.nix @@ -12,6 +12,8 @@ let sources = import ; helpers = import { inherit config lib pkgs; }; pkgs-unstable = import sources.nixpkgs-unstable {}; + gitoliteDataDir = "/srv/gitolite"; + reposDir = "${gitoliteDataDir}/repositories"; in { _module.args = { inherit pkgs-unstable; }; @@ -37,6 +39,7 @@ in web-personal.domain = baseDomain; web-personal.matrixApiDomain = config.matrix.apiDomain; + git.gitoliteDataDir = gitoliteDataDir; git.webUiDomain = "git.${baseDomain}"; headscale.domain = "tailscale.${baseDomain}"; matrix.serverName = baseDomain; @@ -151,8 +154,14 @@ in }; # Backups - git.backupRsyncDest = "${backupHost}:repos"; - git.backupOnCalendar = "00:00"; + + systemd.services.backup-repos = { + serviceConfig = { + Type = "oneshot"; + ExecStart = "${pkgs.rsync}/bin/rsync -a --delete ${reposDir}/ ${backupHost}:repos -e '${pkgs.openssh}/bin/ssh -p23'"; + }; + startAt = "00:00"; + }; age.secrets.restic-db.file = ./secrets/restic-db.age; diff --git a/nixos/hosts/tente/git.nix b/nixos/hosts/tente/git.nix index 01fa3f4..d5688cd 100644 --- a/nixos/hosts/tente/git.nix +++ b/nixos/hosts/tente/git.nix @@ -9,26 +9,19 @@ in webUiDomain = lib.mkOption { type = lib.types.str; }; - - backupRsyncDest = lib.mkOption { - type = lib.types.str; - }; - - backupOnCalendar = lib.mkOption { + gitoliteDataDir = lib.mkOption { type = lib.types.str; }; }; - config = let - reposPath = "${config.services.gitolite.dataDir}/repositories"; - in { + config = { services = { gitolite = { enable = true; adminPubkey = ""; # TODO: submit PR to nixpkgs to make this option optional user = "git"; group = "git"; - dataDir = "/srv/gitolite"; + dataDir = cfg.gitoliteDataDir; extraGitoliteRc = '' $RC{UMASK} = 0027; $RC{GIT_CONFIG_KEYS} = 'cgit.* gitweb.*'; @@ -59,7 +52,7 @@ in user = config.services.gitolite.user; group = config.services.gitolite.group; nginx.virtualHost = cfg.webUiDomain; - scanPath = reposPath; + scanPath = "${cfg.gitoliteDataDir}/repositories"; settings = { remove-suffix = 1; enable-git-config = 1; @@ -84,13 +77,5 @@ in }; }; }; - - systemd.services.backup-repos = { - serviceConfig = { - Type = "oneshot"; - ExecStart = "${pkgs.rsync}/bin/rsync -a --delete ${reposPath}/ ${cfg.backupRsyncDest} -e '${pkgs.openssh}/bin/ssh -p23'"; - }; - startAt = cfg.backupOnCalendar; - }; }; } -- cgit v1.3.1