{ config, pkgs, ... }: let ports = import ./Ports.nix; dataDir = "/var/lib/nostr-rs-relay"; # https://git.sr.ht/~gheartsfield/nostr-rs-relay/tree/master/config.toml cfg = pkgs.writeText "config.toml" '' [info] name = "simatime" relay_url = "wss://nostr.simatime.com" description = "yet another nostr relay" [database] data_directory = "/var/lib/nostr-rs-relay" [network] address = "0.0.0.0" port = ${toString ports.nostr-relay} ''; in { config.systemd.services.nostr-relay = { path = [ pkgs.nostr-rs-relay ]; wantedBy = [ "multi-user.target" ]; preStart = '' mkdir -p ${dataDir} cat "${cfg}" > ${dataDir}/config.toml ''; script = "nostr-rs-relay --db ${dataDir}"; serviceConfig = { Environment = [ "RUST_LOG=info,nostr_rs_relay=info" "APP_DATA=${dataDir}" ]; WorkingDirectory = dataDir; KillSignal = "INT"; Type = "simple"; Restart = "always"; RestartSec = "1"; }; }; }