about summary refs log tree commit diff
path: root/hosts/tahoe
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/tahoe')
-rw-r--r--hosts/tahoe/default.nix9
-rw-r--r--hosts/tahoe/services.nix37
2 files changed, 45 insertions, 1 deletions
diff --git a/hosts/tahoe/default.nix b/hosts/tahoe/default.nix
index dfac37c..ad48bcc 100644
--- a/hosts/tahoe/default.nix
+++ b/hosts/tahoe/default.nix
@@ -5,7 +5,7 @@
     ./hardware-configuration.nix
     ./networking.nix
     ./home.nix
-    ../profiles/nas.nix
+    ./services.nix
   ];
 
   my.system.boot = {
@@ -13,6 +13,13 @@
     initrd = { network.enable = true; };
   };
 
+  users.groups.nas.gid = 5000;
+  users.users.nas = {
+    uid = 5000;
+    group = "nas";
+    isSystemUser = true;
+  };
+
   # This value determines the NixOS release from which the default
   # settings for stateful data, like file locations and database versions
   # on your system were taken. It‘s perfectly fine and recommended to leave
diff --git a/hosts/tahoe/services.nix b/hosts/tahoe/services.nix
new file mode 100644
index 0000000..a8badea
--- /dev/null
+++ b/hosts/tahoe/services.nix
@@ -0,0 +1,37 @@
+{ ... }:
+
+{
+  my.services = {
+    samba = {
+      enable = true;
+      publicShares = [ "/data/fast/music" "/data/fast/videos" ];
+    };
+    navidrome = {
+      enable = true;
+      musicFolder = "/data/fast/music";
+    };
+    unifi = { enable = true; };
+    prometheus = { enable = true; };
+    grafana = { enable = true; };
+    gitea = {
+      enable = true;
+      stateDir = "/var/lib/gitea";
+    };
+    rclone = { enable = true; };
+    traefik = { enable = true; };
+    transmission = { enable = true; };
+    metrics-exporter = { enable = true; };
+  };
+
+  services.restic.backups = {
+    media = {
+      paths = [ "/data/fast/music" "/data/fast/photos" "/data/fast/videos" ];
+      repository = "/data/slow/backups/systems";
+      passwordFile = config.age.secrets.restic-repo-systems.path;
+      timerConfig = { OnCalendar = "00:55"; };
+      initialize = true;
+      extraBackupArgs = [ "--tag media" ];
+      pruneOpts = [ "--keep-daily 7" "--keep-weekly 4" "--keep-monthly 12" ];
+    };
+  };
+}