modified: Cargo.lock modified: Cargo.toml modified: src/database.rs modified: src/nostr/event.rs modified: src/nostr/filter.rs
About
This is a nostr relay running on rust and tokio. A Rust learning project with poor code quality.
Usage
Running Locally
Run cargo run with environment variable DB_PATH set to the path of the database file.
RUST_LOG=info BIND_ADDR="0.0.0.0:8080" DB_PATH=./nostr.db AUTH_REQUIRED=True cargo run
Docker
Run with a persistent database volume
docker run -p 8080:8080 -v /path/to/your/db:/usr/local/bin/nostr.db laoxong/nostr_demo:master
docker run -p 8080:8080 -e AUTH_REQUIRED=true laoxong/nostr_demo:master
Docker Compose
nostr-relay:
image: laoxong/nostr_demo:master
container_name: nostr-relay
volumes:
- ./nostr-relay/:/etc/nostr
environment:
- DB_PATH=/etc/nostr/nostr.db
- AUTH_REQUIRED=False
Env
-
DB_PATH: Path to the SQLite database file. Defaults to
nostr.db. -
BIND_ADDR: The address and port to bind the server to. Defaults to
0.0.0.0:8080. -
RUST_LOG: Log level. Defaults to
warn -
AUTH_REQUIRED: Set to
trueto enable authentication for publishing events (NIP-42). Defaults tofalse. If enabled, only authenticated clients whose pubkey is in the relay's trust list can publish events.
Features
- NIP-1
- NIP-2
- NIP-5
- NIP-9
- NIP-12
- NIP-42
- NIP-65