this repo has no description
1{ 2 config, 3 pkgs, 4 lib, 5 ... 6}: let 7 cfg = config.services.bluesky-jetstream; 8in 9 with lib; { 10 options.services.bluesky-jetstream = { 11 enable = mkEnableOption "jetstream server"; 12 package = mkPackageOption pkgs "bluesky-jetstream" {}; 13 14 # dataDir = mkOption { 15 # type = types.str; 16 # default = "/var/lib/jetstream"; 17 # description = "directory to store data (pebbleDB)"; 18 # }; 19 livenessTtl = mkOption { 20 type = types.int; 21 default = 15; 22 description = "time to restart when no event detected (seconds)"; 23 }; 24 websocketUrl = mkOption { 25 type = types.str; 26 default = "wss://bsky.network/xrpc/com.atproto.sync.subscribeRepos"; 27 description = "full websocket path to the ATProto SubscribeRepos XRPC endpoint"; 28 }; 29 }; 30 config = mkIf cfg.enable { 31 systemd.services.bluesky-jetstream = { 32 description = "bluesky jetstream"; 33 after = ["network.target" "pds.service"]; 34 wantedBy = ["multi-user.target"]; 35 36 serviceConfig = { 37 User = "jetstream"; 38 Group = "jetstream"; 39 StateDirectory = "jetstream"; 40 StateDirectoryMode = "0755"; 41 # preStart = '' 42 # mkdir -p "${cfg.dataDir}" 43 # chown -R jetstream:jetstream "${cfg.dataDir}" 44 # ''; 45 # WorkingDirectory = cfg.dataDir; 46 Environment = [ 47 "JETSTREAM_DATA_DIR=/var/lib/jetstream/data" 48 "JETSTREAM_LIVENESS_TTL=${toString cfg.livenessTtl}s" 49 "JETSTREAM_WS_URL=${cfg.websocketUrl}" 50 ]; 51 ExecStart = getExe cfg.package; 52 Restart = "always"; 53 RestartSec = 5; 54 }; 55 }; 56 users = { 57 users.jetstream = { 58 group = "jetstream"; 59 isSystemUser = true; 60 }; 61 groups.jetstream = {}; 62 }; 63 }; 64 }