Monorepo for Tangled tangled.org
6

Configure Feed

Select the types of activity you want to include in your feed.

nix: add zoekt packages/modules

Signed-off-by: Seongmin Lee <git@boltless.me>

author
Seongmin Lee
date (Jun 26, 2026, 2:31 AM +0900) commit 84991abb parent cd7c4ae8 change-id slxonzzk
+188 -1
+32 -1
flake.nix
··· 153 153 tap = self.callPackage ./nix/pkgs/tap.nix {}; 154 154 knotmirror = self.callPackage ./nix/pkgs/knotmirror.nix {}; 155 155 bobbin = self.callPackage ./nix/pkgs/bobbin.nix {}; 156 + zoekt-webserver = self.callPackage ./nix/pkgs/zoekt-webserver.nix {}; 157 + zoekt-tngl-indexserver = self.callPackage ./nix/pkgs/zoekt-tngl-indexserver.nix {}; 156 158 }); 157 159 in { 158 160 overlays.default = final: prev: { 159 - inherit (mkPackageSet final) lexgen goat sqlite-lib spindle shuttle knot-unwrapped knot appview docs dolly tap knotmirror bobbin; 161 + inherit 162 + (mkPackageSet final) 163 + lexgen 164 + goat 165 + sqlite-lib 166 + spindle 167 + shuttle 168 + knot-unwrapped 169 + knot 170 + appview 171 + docs 172 + dolly 173 + tap 174 + knotmirror 175 + bobbin 176 + zoekt-webserver 177 + zoekt-tngl-indexserver 178 + ; 160 179 }; 161 180 162 181 packages = forAllSystems (system: let ··· 184 203 tap 185 204 knotmirror 186 205 bobbin 206 + zoekt-webserver 207 + zoekt-tngl-indexserver 187 208 ; 188 209 189 210 pkgsStatic-appview = staticPackages.appview; ··· 509 530 510 531 services.tangled.knotmirror.tap-package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.tap; 511 532 services.tangled.knotmirror.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.knotmirror; 533 + }; 534 + nixosModules.zoekt-tnglserver = { 535 + lib, 536 + pkgs, 537 + ... 538 + }: { 539 + imports = [./nix/modules/zoekt-tnglserver.nix]; 540 + 541 + services.tangled.zoekt.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.zoekt-tngl-indexserver; 542 + services.tangled.zoekt.zoekt-webserver-package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.zoekt-webserver; 512 543 }; 513 544 nixosModules.knot = { 514 545 lib,
+109
nix/modules/zoekt-tnglserver.nix
··· 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: let 7 + cfg = config.services.tangled.zoekt; 8 + in 9 + with lib; { 10 + options.services.tangled.zoekt = { 11 + enable = mkOption { 12 + type = types.bool; 13 + default = false; 14 + description = "Enable a tangled zoekt node"; 15 + }; 16 + 17 + package = mkOption { 18 + type = types.package; 19 + description = "zoekt-tngl-indexserver package to use for zoekt node"; 20 + }; 21 + 22 + zoekt-webserver-package = mkOption { 23 + type = types.package; 24 + description = "zoekt-webserver package to use for zoekt node"; 25 + }; 26 + 27 + listenAddr = mkOption { 28 + type = types.str; 29 + default = ":6060"; 30 + description = "zoekt-tngl-indexserver listen address"; 31 + }; 32 + 33 + webListenAddr = mkOption { 34 + type = types.str; 35 + default = ":6070"; 36 + description = "zoekt-webserver listen address"; 37 + }; 38 + 39 + atpPlcUrl = mkOption { 40 + type = types.str; 41 + default = "https://plc.directory"; 42 + description = "atproto PLC directory"; 43 + }; 44 + 45 + appviewUrl = mkOption { 46 + type = types.str; 47 + default = "https://tangled.org"; 48 + description = "Tangled appview URL"; 49 + }; 50 + 51 + indexDir = mkOption { 52 + type = types.path; 53 + default = "/var/lib/zoekt-tnglserver/index"; 54 + description = "zoekt index directory"; 55 + }; 56 + 57 + indexConcurrency = mkOption { 58 + type = types.int; 59 + default = 4; 60 + description = "Maximum number of concurrent index jobs to run"; 61 + }; 62 + 63 + indexQueueSize = mkOption { 64 + type = types.int; 65 + default = 100; 66 + description = "Maximum number of index jobs queue up"; 67 + }; 68 + }; 69 + config = mkIf cfg.enable { 70 + # environment.systemPackages = [ 71 + # pkgs.git 72 + # cfg.package 73 + # ]; 74 + 75 + systemd.services.zoekt-webserver = { 76 + description = "tangled zoekt-webserver"; 77 + after = ["network.target"]; 78 + wantedBy = ["multi-user.target"]; 79 + serviceConfig = { 80 + LogsDirectory = "zoekt-webserver"; 81 + StateDirectory = "zoekt-webserver"; 82 + ExecStart = "${getExe cfg.zoekt-webserver-package} -index ${cfg.indexDir} -rpc"; 83 + }; 84 + }; 85 + 86 + systemd.services.zoekt-tngl-indexserver = { 87 + description = "tangled zoekt index server service"; 88 + after = ["network.target"]; 89 + wantedBy = ["multi-user.target"]; 90 + path = [ 91 + pkgs.git 92 + cfg.package 93 + ]; 94 + serviceConfig = { 95 + LogsDirectory = "zoekt-tngl-indexserver"; 96 + StateDirectory = "zoekt-tngl-indexserver"; 97 + Environment = [ 98 + "TANGLED_ZOEKT_INDEX_DIR=${cfg.indexDir}" 99 + "TANGLED_ZOEKT_INDEX_CONCURRENCY=${toString cfg.indexConcurrency}" 100 + "TANGLED_ZOEKT_INDEX_QUEUE_SIZE=${toString cfg.indexQueueSize}" 101 + "TANGLED_ZOEKT_PLC_URL=${cfg.atpPlcUrl}" 102 + "TANGLED_ZOEKT_APPVIEW_URL=${cfg.appviewUrl}" 103 + ]; 104 + ExecStart = "${getExe cfg.package} serve"; 105 + Restart = "always"; 106 + }; 107 + }; 108 + }; 109 + }
+18
nix/pkgs/zoekt-tngl-indexserver.nix
··· 1 + { 2 + buildGoApplication, 3 + modules, 4 + src, 5 + }: 6 + buildGoApplication { 7 + pname = "zoekt-tngl-indexserver"; 8 + version = "0.1.0"; 9 + inherit src modules; 10 + 11 + doCheck = false; 12 + 13 + subPackages = ["cmd/zoekt-tngl-indexserver"]; 14 + 15 + meta = { 16 + mainProgram = "zoekt-tngl-indexserver"; 17 + }; 18 + }
+29
nix/pkgs/zoekt-webserver.nix
··· 1 + { 2 + lib, 3 + buildGoModule, 4 + fetchFromGitHub, 5 + }: 6 + buildGoModule { 7 + pname = "zoekt-webserver"; 8 + version = "0-unstable-2026-03-25"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "sourcegraph"; 12 + repo = "zoekt"; 13 + rev = "a0f5789d25cb80a36bfb0b85cde2f004880bcbeb"; 14 + hash = "sha256-y1BskdsrPrIRDFj9n7H6Dl17tS+4epwvShMe/i1I7KA="; 15 + }; 16 + subPackages = ["cmd/zoekt-webserver"]; 17 + 18 + vendorHash = "sha256-WaO8/33pPmGh6tO/poD5epBknZjyzydG9dRuD67dYEw="; 19 + 20 + doCheck = false; 21 + 22 + meta = { 23 + description = "Fast trigram based code search"; 24 + homepage = "https://github.com/sourcegraph/zoekt"; 25 + license = lib.licenses.asl20; 26 + maintainers = []; 27 + mainProgram = "zoekt-webserver"; 28 + }; 29 + }