Commit eab8275fd255

Vincent Demeester <vincent@sbr.pm>
2026-01-28 13:22:11
refactor(slack-archive): move service from aomi to kyushu
Kyushu is the primary workstation where slackdump credentials will be managed interactively. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent b64ace7
Changed files (3)
systems/aomi/extra.nix
@@ -276,55 +276,8 @@
   systemd.tmpfiles.rules = [
     "d /var/lib/ollama-exporter 0755 root root -"
     "d /var/lib/git-builds 0755 builder users -"
-    "d /var/lib/slack-archive 0750 vincent users -"
   ];
 
-  # Slack Archive - daily backup of public Slack channels
-  systemd.services.slack-archive = {
-    description = "Slack Public Channel Archiver";
-    after = [ "network-online.target" ];
-    wants = [ "network-online.target" ];
-
-    serviceConfig = {
-      Type = "oneshot";
-      User = "vincent";
-      Group = "users";
-      ExecStart = "${pkgs.slack-archive}/bin/slack-archive archive";
-      Environment = [
-        "SLACK_ARCHIVE_DIR=/var/lib/slack-archive"
-        "HOME=/home/vincent"
-        "XDG_CACHE_HOME=/home/vincent/.cache"
-      ];
-
-      # Security hardening
-      PrivateTmp = true;
-      ProtectSystem = "strict";
-      ProtectHome = "read-only";
-      ReadWritePaths = [
-        "/var/lib/slack-archive"
-        "/home/vincent/.cache/slackdump"
-        "/home/vincent/.local/cache/slackdump"
-      ];
-      NoNewPrivileges = true;
-
-      # Logging
-      StandardOutput = "journal";
-      StandardError = "journal";
-      SyslogIdentifier = "slack-archive";
-    };
-  };
-
-  systemd.timers.slack-archive = {
-    description = "Daily Slack Archive Timer";
-    wantedBy = [ "timers.target" ];
-
-    timerConfig = {
-      OnCalendar = "daily";
-      RandomizedDelaySec = 3600; # 0-1 hour random delay
-      Persistent = true;
-    };
-  };
-
   systemd.services.ollama-exporter = {
     description = "Ollama Prometheus Exporter";
     after = [
systems/kyushu/extra.nix
@@ -102,4 +102,54 @@
 
   # Make sure we don't start docker until required
   systemd.services.docker.wantedBy = lib.mkForce [ ];
+
+  # Slack Archive - daily backup of public Slack channels
+  systemd.tmpfiles.rules = [
+    "d /var/lib/slack-archive 0750 vincent users -"
+  ];
+
+  systemd.services.slack-archive = {
+    description = "Slack Public Channel Archiver";
+    after = [ "network-online.target" ];
+    wants = [ "network-online.target" ];
+
+    serviceConfig = {
+      Type = "oneshot";
+      User = "vincent";
+      Group = "users";
+      ExecStart = "${pkgs.slack-archive}/bin/slack-archive archive";
+      Environment = [
+        "SLACK_ARCHIVE_DIR=/var/lib/slack-archive"
+        "HOME=/home/vincent"
+        "XDG_CACHE_HOME=/home/vincent/.cache"
+      ];
+
+      # Security hardening
+      PrivateTmp = true;
+      ProtectSystem = "strict";
+      ProtectHome = "read-only";
+      ReadWritePaths = [
+        "/var/lib/slack-archive"
+        "/home/vincent/.cache/slackdump"
+        "/home/vincent/.local/cache/slackdump"
+      ];
+      NoNewPrivileges = true;
+
+      # Logging
+      StandardOutput = "journal";
+      StandardError = "journal";
+      SyslogIdentifier = "slack-archive";
+    };
+  };
+
+  systemd.timers.slack-archive = {
+    description = "Daily Slack Archive Timer";
+    wantedBy = [ "timers.target" ];
+
+    timerConfig = {
+      OnCalendar = "daily";
+      RandomizedDelaySec = 3600; # 0-1 hour random delay
+      Persistent = true;
+    };
+  };
 }
systems/kyushu/home.nix
@@ -80,6 +80,8 @@ in
     neovim
     unzip # for mason.nvim
     luarocks # for lazy.nvim rocks support
+
+    slackdump
   ];
 
   # Automatic color scheme switching