summaryrefslogtreecommitdiff
path: root/Biz/Cloud/NostrRelay.nix
blob: 0be8a6f2e731a2b1da9492684d31751c1fa612cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{ 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";
    };
  };
}