summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Biz/Bild/Deps.nix2
-rw-r--r--Biz/Bild/Deps/nostr-rs-relay.nix22
-rw-r--r--Biz/Cloud.nix1
-rw-r--r--Biz/Cloud/NostrRelay.nix41
-rw-r--r--Biz/Cloud/Ports.nix1
-rw-r--r--Biz/Cloud/Web.nix15
6 files changed, 82 insertions, 0 deletions
diff --git a/Biz/Bild/Deps.nix b/Biz/Bild/Deps.nix
index 952a294..3947910 100644
--- a/Biz/Bild/Deps.nix
+++ b/Biz/Bild/Deps.nix
@@ -68,4 +68,6 @@ in rec
gcc
];
};
+
+ nostr-rs-relay = super.callPackage ./Deps/nostr-rs-relay.nix {};
}
diff --git a/Biz/Bild/Deps/nostr-rs-relay.nix b/Biz/Bild/Deps/nostr-rs-relay.nix
new file mode 100644
index 0000000..83d477c
--- /dev/null
+++ b/Biz/Bild/Deps/nostr-rs-relay.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromSourcehut, rustPlatform, pkg-config, openssl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "nostr-rs-relay";
+ version = "0.7.15";
+
+ src = fetchFromSourcehut {
+ owner = "~gheartsfield";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-aa1uFJcpQPMVzIWpkQ2MW6LIzTnhXNQc220scbzwJ5k=";
+ };
+
+ cargoSha256 = "sha256-3593pjc4A4NsEnE/ZYsR1vSMCvw2ZJue4EIY6cFa2WA=";
+
+ nativeBuildInputs = [
+ pkg-config
+ openssl.dev
+ ];
+
+ buildInputs = [ openssl.dev ];
+}
diff --git a/Biz/Cloud.nix b/Biz/Cloud.nix
index d54ba85..d7cb8cb 100644
--- a/Biz/Cloud.nix
+++ b/Biz/Cloud.nix
@@ -14,6 +14,7 @@ bild.os {
./Cloud/Mail.nix
./Cloud/Mumble.nix
./Cloud/Networking.nix
+ ./Cloud/NostrRelay.nix
./Cloud/Web.nix
./Cloud/Znc.nix
"${bild.sources.nixos-mailserver}"
diff --git a/Biz/Cloud/NostrRelay.nix b/Biz/Cloud/NostrRelay.nix
new file mode 100644
index 0000000..d8ffd3a
--- /dev/null
+++ b/Biz/Cloud/NostrRelay.nix
@@ -0,0 +1,41 @@
+{ config, lib, 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";
+ };
+ };
+}
diff --git a/Biz/Cloud/Ports.nix b/Biz/Cloud/Ports.nix
index 8966fb4..d7ab416 100644
--- a/Biz/Cloud/Ports.nix
+++ b/Biz/Cloud/Ports.nix
@@ -23,6 +23,7 @@
mpd = 6600;
mpd-stream = 8097;
murmur = 64738;
+ nostr-relay = 8084;
radicale = 5232;
sabten = 8080;
ssh = 22;
diff --git a/Biz/Cloud/Web.nix b/Biz/Cloud/Web.nix
index 5f4789a..069062e 100644
--- a/Biz/Cloud/Web.nix
+++ b/Biz/Cloud/Web.nix
@@ -201,6 +201,20 @@ in
locations."/".proxyPass = "http://localhost:${toString ports.botamusique}";
};
+ "nostr.${rootDomain}" = {
+ forceSSL = true;
+ useACMEHost = rootDomain;
+ locations."/" = {
+ proxyPass = "http://localhost:${toString ports.nostr-relay}";
+ extraConfig = ''
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "Upgrade";
+ proxy_set_header Host $host;
+ '';
+ };
+ };
+
"notebook.${rootDomain}" = {
forceSSL = true;
useACMEHost = rootDomain;
@@ -239,6 +253,7 @@ in
"sabten"
"cal"
"notebook"
+ "nostr"
"reddit"
"old.reddit"
"www.reddit"