Go to file
2021-12-30 06:35:36 -06:00
src improvement: reduce logging level for rejected events 2021-12-30 06:35:36 -06:00
.gitignore feat: store events in SQLite and allow querying 2021-12-11 15:48:59 -06:00
Cargo.lock feat: add configuration through file 2021-12-29 22:13:02 -06:00
Cargo.toml feat: add configuration through file 2021-12-29 22:13:02 -06:00
Dockerfile feat: add data directory to Dockerfile 2021-12-11 22:18:05 -06:00
LICENSE docs: add MIT license 2021-12-11 15:52:25 -06:00
README.md docs: sample program output in README 2021-12-11 22:21:31 -06:00
rustfmt.toml feat: cargo build files and expected dependencies 2021-12-05 08:42:28 -06:00

nostr-rs-relay

This is a nostr relay, written in Rust. It currently supports the entire relay protocol, and has a SQLite persistence layer.

The project master repository is available on sourcehut, and is mirrored on GitHub.

Quick Start

The provided Dockerfile will compile and build the server application. Use a bind mount to store the SQLite database outside of the container image, and map the container's 8080 port to a host port (8090 in the example below).

$ docker build -t nostr-rs-relay .
$ docker run -p 8090:8080 --mount src=$(pwd)/nostr_data,target=/usr/src/app/db,type=bind nostr-rs-relay
[2021-12-12T04:20:47Z INFO  nostr_rs_relay] Listening on: 0.0.0.0:8080
[2021-12-12T04:20:47Z INFO  nostr_rs_relay::db] Opened database for writing
[2021-12-12T04:20:47Z INFO  nostr_rs_relay::db] init completed

Use a nostr client such as noscl to publish and query events.

$ noscl publish "hello world"
Sent to 'ws://localhost:8090'.
Seen it on 'ws://localhost:8090'.
$ noscl home
Text Note [81cf...2652] from 296a...9b92 5 seconds ago
  hello world

License

This project is MIT licensed.