diff options
| author | Martin Fischer <martin@push-f.com> | 2025-12-25 19:47:14 +0100 |
|---|---|---|
| committer | Martin Fischer <martin@push-f.com> | 2025-12-25 20:17:41 +0100 |
| commit | f0960a8f566658f9054ebd7deb6a7f40b3f9b0be (patch) | |
| tree | 79a3bbea37b8b33f36bf8c442dadb402c33af21f /nixos/hosts | |
| parent | eba8b48ed06b55aefc7ba80a6102cfbe77153897 (diff) | |
refactor: move backup-repos out of git module
Diffstat (limited to 'nixos/hosts')
| -rw-r--r-- | nixos/hosts/tente/default.nix | 13 | ||||
| -rw-r--r-- | nixos/hosts/tente/git.nix | 23 |
2 files changed, 15 insertions, 21 deletions
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 <top/npins>; helpers = import <top/helpers.nix> { 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; - }; }; } |
