diff --git a/flake.nix b/flake.nix index 59b8b21..4e4010e 100644 --- a/flake.nix +++ b/flake.nix @@ -45,6 +45,7 @@ ./modules/services/firewall.nix ./modules/services/tailscale.nix ./modules/services/tor-bridge.nix + ./modules/services/nostr-rs-relay.nix ./modules/services/podman.nix ./modules/services/static-sites ./modules/users/tobias.nix diff --git a/modules/services/caddy.nix b/modules/services/caddy.nix index ea27959..477936b 100644 --- a/modules/services/caddy.nix +++ b/modules/services/caddy.nix @@ -59,6 +59,10 @@ nmns.place, www.nmns.place { file_server } +relay.otherwhere.app { + reverse_proxy localhost:8880 +} + import Caddyfile.d/*.caddyfile ''; } diff --git a/modules/services/nostr-rs-relay.nix b/modules/services/nostr-rs-relay.nix new file mode 100644 index 0000000..1d15b7b --- /dev/null +++ b/modules/services/nostr-rs-relay.nix @@ -0,0 +1,44 @@ +{ pkgs, ... }: +let + config = pkgs.writeText "nostr-rs-relay-config.toml" '' + [info] + relay_url = "wss://relay.otherwhere.app/" + name = "Otherwhere Relay" + description = "Test Relay" + pubkey = "" + contact = "trl@posteo.net" + + [database] + data_directory = "/var/lib/nostr-rs-relay" + + [network] + address = "127.0.0.1" + port = 8880 + + [limits] + event_kind_allowlist = [0, 3, 37515, 37518] + ''; +in +{ + users.users.nostr-rs-relay = { + isSystemUser = true; + group = "nostr-rs-relay"; + home = "/var/lib/nostr-rs-relay"; + }; + users.groups.nostr-rs-relay = {}; + + systemd.services.nostr-rs-relay = { + description = "Nostr relay"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + User = "nostr-rs-relay"; + Group = "nostr-rs-relay"; + ExecStart = "${pkgs.nostr-rs-relay}/bin/nostr-rs-relay --config ${config}"; + StateDirectory = "nostr-rs-relay"; + Restart = "on-failure"; + RestartSec = 5; + }; + }; +}