forked from tangled.org/core
Monorepo for Tangled

nix: add tap service for spindle

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

boltless.me 2f18e806 9578a211

verified
Changed files
+34
nix
+1
flake.nix
··· 306 306 imports = [./nix/modules/spindle.nix]; 307 307 308 308 services.tangled.spindle.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.spindle; 309 + services.tangled.spindle.tap-package = lib.mkDefault self.packages.${pkgs.system}.tap; 309 310 }; 310 311 nixosModules.did-method-plc = { 311 312 lib,
+31
nix/modules/spindle.nix
··· 17 17 type = types.package; 18 18 description = "Package to use for the spindle"; 19 19 }; 20 + tap-package = mkOption { 21 + type = types.package; 22 + description = "Package to use for the spindle"; 23 + }; 24 + 25 + atpRelayUrl = mkOption { 26 + type = types.str; 27 + default = "https://relay1.us-east.bsky.network"; 28 + description = "atproto relay"; 29 + }; 20 30 21 31 server = { 22 32 listenAddr = mkOption { ··· 113 123 114 124 config = mkIf cfg.enable { 115 125 virtualisation.docker.enable = true; 126 + 127 + systemd.services.spindle-tap = { 128 + description = "spindle tap service"; 129 + after = ["network.target" "docker.service"]; 130 + wantedBy = ["multi-user.target"]; 131 + serviceConfig = { 132 + LogsDirectory = "spindle-tap"; 133 + StateDirectory = "spindle-tap"; 134 + Environment = [ 135 + "TAP_BIND=:2480" 136 + "TAP_PLC_URL=${cfg.server.plcUrl}" 137 + "TAP_RELAY_URL=${cfg.atpRelayUrl}" 138 + "TAP_COLLECTION_FILTERS=${concatStringsSep "," [ 139 + "sh.tangled.repo" 140 + "sh.tangled.repo.collaborator" 141 + "sh.tangled.spindle.member" 142 + ]}" 143 + ]; 144 + ExecStart = "${getExe cfg.tap-package} run"; 145 + }; 146 + }; 116 147 117 148 systemd.services.spindle = { 118 149 description = "spindle service";
+2
nix/vm.nix
··· 19 19 20 20 plcUrl = envVarOr "TANGLED_VM_PLC_URL" "https://plc.directory"; 21 21 jetstream = envVarOr "TANGLED_VM_JETSTREAM_ENDPOINT" "wss://jetstream1.us-west.bsky.network/subscribe"; 22 + relayUrl = envVarOr "TANGLED_VM_RELAY_URL" "https://relay1.us-east.bsky.network"; 22 23 in 23 24 nixpkgs.lib.nixosSystem { 24 25 inherit system; ··· 95 96 }; 96 97 services.tangled.spindle = { 97 98 enable = true; 99 + atpRelayUrl = relayUrl; 98 100 server = { 99 101 owner = envVar "TANGLED_VM_SPINDLE_OWNER"; 100 102 hostname = envVarOr "TANGLED_VM_SPINDLE_HOST" "localhost:6555";