- Limits: Only accept kinds from NWC spec.
- Database: Keeps event for a while on database for reliability.
- Filter checking: Only accept valid filters with at least authors or #p or #e and only kinds matching NWC.
Here's an adapted Setup section, considering that you'll push the base image to Docker Registry, allowing users to pull and run it easily.
The easiest way to run NWCLay is by using the prebuilt image:
-
Pull the latest image
docker pull dezhtech/nwclay
-
Run 210Maxi with environment variables
docker run -d --name nwclay \ -p 3334:3334 \ -e RELAY_NAME="NWCLay" \ -e RELAY_PUBKEY="your_pubkey" \ -e RELAY_DESCRIPTION="Only accepts NWC events" \ -e RELAY_URL="wss://example.com" \ -e RELAY_ICON="https://example.com/icon.png" \ -e RELAY_BANNER="https://example.com/banner.png" \ -e RELAY_CONTACT="https://example.com" \ -e RELAY_PORT=":3334" \ -e WORKING_DIR="nwclay_wd/" \ -e KEEP_IN_MINUTES=10 \ -e ACCEPT_WINDOW_IN_MINUTES=1 \ dezhtech/nwclay
For a more structured deployment, use Docker Compose:
- use
compose.yml
use the existing compose file in the NWCLay directory
- Run with Compose
docker-compose up -d
Modify the env variables in the .env file, docker compose file, or docker command to customize settings:
RELAY_NAME– The name of the relay (default:NWCLay).RELAY_PUBKEY– The owner's hex key (convertnpubto hex here).RELAY_DESCRIPTION– A short description of the relay.RELAY_URL– WebSocket URL for the relay (e.g.,wss://abc.com).RELAY_ICON– URL to the relay's icon.RELAY_BANNER– URL to the relay's banner image.RELAY_CONTACT– Contact URL (e.g.,https://dezh.tech).
KEEP_IN_MINUTES– Remove events that are KEEP_IN_MINUTES old. (default:10 minutes)ACCEPT_WINDOW_IN_MINUTES– Only accept events from KEEP_IN_MINUTES past or future. (default:1 minute)
WORKING_DIR– Configuration working directory (default:nwclay_wd).
RELAY_PORT– Port on which the relay listens (default::2100).
Pull requests are welcome! Feel free to open an issue if you have feature requests or find bugs.
This software is published under MIT License.

