diff --git a/README.md b/README.md index 4f29636..fc837dc 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,7 @@

NIP-42 Proxy

A NIP-42 authentication proxy for Nostr relays.

- Docker Pulls - Bun + Bun License: AGPL v3

@@ -35,33 +34,38 @@ This project provides a robust NIP-42 proxy for Nostr relays, creating an authen ### Installation & Running -1. **Clone the repository:** - ```bash - git clone https://git.arx-ccn.com/Arx/nip42-proxy.git - cd nip42-proxy - ``` +1. **Clone the repository:** -2. **Install dependencies:** - ```bash - bun install - ``` + ```bash + git clone https://git.arx-ccn.com/Arx/nip42-proxy.git + cd nip42-proxy + ``` -3. **Run the proxy:** +2. **Install dependencies:** + + ```bash + bun install + ``` + +3. **Run the proxy:** + - **With Bun:** + + ```bash + RELAY_URL="wss://my-relay.com" ADMIN_PUBKEY="my-admin-pubkey" bun run index.ts + ``` + + - **With Docker:** + 1. Build the image: - * **With Bun:** ```bash - RELAY_URL="wss://my-relay.com" ADMIN_PUBKEY="my-admin-pubkey" bun run index.ts + docker build -t nip42-proxy . ``` - * **With Docker:** - 1. Build the image: - ```bash - docker build -t nip42-proxy . - ``` - 2. Run the container: - ```bash - docker run -p 3000:3000 -e RELAY_URL="wss://your-relay-url.com" -e ADMIN_PUBKEY="my-admin-pubkey" --name nip42-proxy nip42-proxy - ``` + 2. Run the container: + + ```bash + docker run -p 3000:3000 -e RELAY_URL="wss://your-relay-url.com" -e ADMIN_PUBKEY="my-admin-pubkey" --name nip42-proxy nip42-proxy + ``` The server will start, and you can connect to it using a Nostr client that supports NIP-42 authentication. @@ -72,18 +76,18 @@ The proxy is configured through environment variables.
Click to view all configuration options - | Variable | Description | Default | - | ----------------------- | ------------------------------------------------------------------------------------------------------- | --------- | - | `ALLOW_UNAUTHED_PUBLISH`| Set to `true` to allow unauthenticated clients to publish events. | `false` | - | `RELAY_URL` | The URL of the relay that the proxy will connect to. | | - | `RELAY_OUTSIDE_URL` | The URL that clients use to connect to the proxy. | `RELAY_URL` | - | `RELAY_NAME` | The name of the relay. | | - | `RELAY_DESCRIPTION` | A description of the relay. | | - | `RELAY_BANNER` | A URL to a banner image for the relay. | | - | `RELAY_ICON` | A URL to an icon for the relay. | | - | `RELAY_CONTACT` | A contact email or address for the relay. | | - | `RELAY_POLICY` | A URL to the relay's policy document. | | - | `ADMIN_PUBKEY` | The public key of the administrator of the relay. | | +| Variable | Description | Default | +| ------------------------ | ----------------------------------------------------------------- | ----------- | +| `ALLOW_UNAUTHED_PUBLISH` | Set to `true` to allow unauthenticated clients to publish events. | `false` | +| `RELAY_URL` | The URL of the relay that the proxy will connect to. | | +| `RELAY_OUTSIDE_URL` | The URL that clients use to connect to the proxy. | `RELAY_URL` | +| `RELAY_NAME` | The name of the relay. | | +| `RELAY_DESCRIPTION` | A description of the relay. | | +| `RELAY_BANNER` | A URL to a banner image for the relay. | | +| `RELAY_ICON` | A URL to an icon for the relay. | | +| `RELAY_CONTACT` | A contact email or address for the relay. | | +| `RELAY_POLICY` | A URL to the relay's policy document. | | +| `ADMIN_PUBKEY` | The public key of the administrator of the relay. | |
@@ -104,11 +108,11 @@ The proxy exposes a NIP-98-protected RPC interface for administration. Send a `P ## 🤔 How It Works -1. **Client Connection**: A client connects to the proxy and is initially unauthenticated. -2. **Authentication Request**: The proxy sends an `AUTH` challenge. -3. **Client Authentication**: The client responds with a valid `AUTH` event, signed with an allowed public key. -4. **Authenticated State**: The client is now authenticated and can interact with the relay. -5. **Message Forwarding**: Messages are forwarded between the client and the main relay. +1. **Client Connection**: A client connects to the proxy and is initially unauthenticated. +2. **Authentication Request**: The proxy sends an `AUTH` challenge. +3. **Client Authentication**: The client responds with a valid `AUTH` event, signed with an allowed public key. +4. **Authenticated State**: The client is now authenticated and can interact with the relay. +5. **Message Forwarding**: Messages are forwarded between the client and the main relay. ## 🤝 Contributing @@ -116,4 +120,5 @@ Contributions are welcome! Please open an issue or submit a pull request with yo ## 📄 License -This project is licensed under the AGPLv3. See the [LICENSE](LICENSE) file for details. \ No newline at end of file +This project is licensed under the AGPLv3. See the [LICENSE](LICENSE) file for details. +