This repository has no description
0

Configure Feed

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

core / nix / modules / zoekt-tnglserver.nix
3.1 kB 109 lines
1{ 2 config, 3 pkgs, 4 lib, 5 ... 6}: let 7 cfg = config.services.tangled.zoekt; 8in 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 }