aboutsummaryrefslogtreecommitdiff
path: root/nixos/hosts/tente
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2025-12-25 19:47:14 +0100
committerMartin Fischer <martin@push-f.com>2025-12-25 20:17:41 +0100
commitf0960a8f566658f9054ebd7deb6a7f40b3f9b0be (patch)
tree79a3bbea37b8b33f36bf8c442dadb402c33af21f /nixos/hosts/tente
parenteba8b48ed06b55aefc7ba80a6102cfbe77153897 (diff)
refactor: move backup-repos out of git module
Diffstat (limited to 'nixos/hosts/tente')
-rw-r--r--nixos/hosts/tente/default.nix13
-rw-r--r--nixos/hosts/tente/git.nix23
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;
- };
};
}