# About This is a nostr relay running on [rust](https://www.rust-lang.org/) and [tokio](https://tokio.rs/). 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 `true` to enable authentication for publishing events (NIP-42). Defaults to `false`. 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