Home

infra @main - refs - log -
-
https://git.jolheiser.com/infra.git
dragonwell flake
tree log patch
add zoekt Signed-off-by: jolheiser <git@jolheiser.com>
Signature
-----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgBTEvCQk6VqUAdN2RuH6bj1dNkY oOpbPWj+jw4ua1B1cAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQCWmH1tpE0VqWZkeZKlKATGaUvpcNg+kgqCbtFpoHU/+EOh3O1Cy82dtUqDQEsDcxO rZViLhde+aWDdU+gtE3wI= -----END SSH SIGNATURE-----
jolheiser <git@jolheiser.com>
6 days ago
2 changed files, 68 additions(+), 0 deletions(-)
dragonwell/default.nixdragonwell/zoekt.nix
M dragonwell/default.nix -> dragonwell/default.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
diff --git a/dragonwell/default.nix b/dragonwell/default.nix
index 8bf8e1e852342c9fbec49845084b7c233c3510cb..b00cd5353e289bb5cd6c771941d4ef2b7794a497 100644
--- a/dragonwell/default.nix
+++ b/dragonwell/default.nix
@@ -24,6 +24,7 @@     ./restic.nix
     ./soju.nix
     ./ugit.nix
     ./woodpecker.nix
+    ./zoekt.nix
     ./hardware.nix
   ];
 
I dragonwell/zoekt.nix
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
diff --git a/dragonwell/zoekt.nix b/dragonwell/zoekt.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d323150e073984ac9c36e63cc469c46357bea051
--- /dev/null
+++ b/dragonwell/zoekt.nix
@@ -0,0 +1,67 @@
+{ pkgs, ... }:
+let
+  user = "zoekt";
+  repoDir = "/var/lib/ugit/repos";
+  indexDir = "/var/lib/${user}";
+  port = 4737;
+in
+{
+  services.tailproxy.zoekt = {
+    enable = true;
+    hostname = "zoekt";
+    inherit port;
+    authKey = "tskey-auth-k4SpytYDoS11CNTRL-Aeeu3nNJZVChryEPXr8sVCpYykMtUfZh"; # One-time key
+  };
+  systemd = {
+    services = {
+      zoekt-webserver = {
+        description = "Zoekt web server";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+
+        serviceConfig = {
+          Type = "simple";
+          ExecStart = "${pkgs.zoekt}/bin/zoekt-webserver -index ${indexDir} -listen :${builtins.toString port}";
+          Restart = "on-failure";
+          RestartSec = "5s";
+          StateDirectory = user;
+          User = user;
+        };
+      };
+      zoekt-git-index = {
+        description = "Zoekt git indexer";
+
+        serviceConfig = {
+          Type = "oneshot";
+          ExecStart =
+            let
+              script = pkgs.writeShellScript "zoekt-index-all" ''
+                repos=$(find ${repoDir} -maxdepth 1 -type d -name "*.git")
+                exec ${pkgs.zoekt}/bin/zoekt-git-index -index ${indexDir} $repos
+              '';
+            in
+            "${script}";
+          StateDirectory = "zoekt";
+          User = user;
+          SupplementaryGroups = [ "ugit" ];
+        };
+      };
+    };
+    timers.zoekt-git-index = {
+      description = "Timer for zoekt git indexer";
+      wantedBy = [ "timers.target" ];
+
+      timerConfig = {
+        OnCalendar = "*:0/15";
+        Persistent = true;
+      };
+    };
+  };
+  users = {
+    users.${user} = {
+      isSystemUser = true;
+      group = user;
+    };
+    groups.${user} = { };
+  };
+}