diff --git a/flake.nix b/flake.nix --- a/flake.nix +++ b/flake.nix @@ -380,6 +380,7 @@ imports = [./nix/modules/spindle.nix]; services.tangled.spindle.package = lib.mkDefault self.packages.${pkgs.stdenv.hostPlatform.system}.spindle; + services.tangled.spindle.tap-package = lib.mkDefault self.packages.${pkgs.system}.tap; }; }; } diff --git a/nix/vm.nix b/nix/vm.nix --- a/nix/vm.nix +++ b/nix/vm.nix @@ -19,6 +19,7 @@ plcUrl = envVarOr "TANGLED_VM_PLC_URL" "https://plc.directory"; jetstream = envVarOr "TANGLED_VM_JETSTREAM_ENDPOINT" "wss://jetstream1.us-west.bsky.network/subscribe"; + relayUrl = envVarOr "TANGLED_VM_RELAY_URL" "https://relay1.us-east.bsky.network"; in nixpkgs.lib.nixosSystem { inherit system; @@ -95,6 +96,7 @@ }; services.tangled.spindle = { enable = true; + atpRelayUrl = relayUrl; server = { owner = envVar "TANGLED_VM_SPINDLE_OWNER"; hostname = envVarOr "TANGLED_VM_SPINDLE_HOST" "localhost:6555"; diff --git a/nix/modules/spindle.nix b/nix/modules/spindle.nix --- a/nix/modules/spindle.nix +++ b/nix/modules/spindle.nix @@ -17,6 +17,16 @@ type = types.package; description = "Package to use for the spindle"; }; + tap-package = mkOption { + type = types.package; + description = "Package to use for the spindle"; + }; + + atpRelayUrl = mkOption { + type = types.str; + default = "https://relay1.us-east.bsky.network"; + description = "atproto relay"; + }; server = { listenAddr = mkOption { @@ -115,6 +125,29 @@ config = mkIf cfg.enable { virtualisation.docker.enable = true; + + systemd.services.spindle-tap = { + description = "spindle tap service"; + after = ["network.target" "docker.service"]; + wantedBy = ["multi-user.target"]; + serviceConfig = { + LogsDirectory = "spindle-tap"; + StateDirectory = "spindle-tap"; + Environment = [ + "TAP_BIND=:2480" + "TAP_PLC_URL=${cfg.server.plcUrl}" + "TAP_RELAY_URL=${cfg.atpRelayUrl}" + "TAP_DATABASE_URL=sqlite:///var/lib/spindle-tap/tap.db" + "TAP_RETRY_TIMEOUT=3s" + "TAP_COLLECTION_FILTERS=${concatStringsSep "," [ + "sh.tangled.repo" + "sh.tangled.repo.collaborator" + "sh.tangled.spindle.member" + ]}" + ]; + ExecStart = "${getExe cfg.tap-package} run"; + }; + }; systemd.services.spindle = { description = "spindle service";