diff --git a/README.md b/README.md index 06a59d2..4f29636 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@ -
- NIP-42 Proxy Logo -

NIP-42 Proxy

-

A NIP-42 authentication proxy for Nostr relays.

-

- License: AGPL v3 -

-
+ + + + + +
NIP-42 Proxy Logo +

NIP-42 Proxy

+

A NIP-42 authentication proxy for Nostr relays.

+

+ Docker Pulls + Bun + License: AGPL v3 +

+
--- @@ -29,38 +35,33 @@ This project provides a robust NIP-42 proxy for Nostr relays, creating an authen ### Installation & Running -1. **Clone the repository:** +1. **Clone the repository:** + ```bash + git clone https://git.arx-ccn.com/Arx/nip42-proxy.git + cd nip42-proxy + ``` - ```bash - git clone https://git.arx-ccn.com/Arx/nip42-proxy.git - cd nip42-proxy - ``` +2. **Install dependencies:** + ```bash + bun install + ``` -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: +3. **Run the proxy:** + * **With Bun:** ```bash - docker build -t nip42-proxy . + RELAY_URL="wss://my-relay.com" ADMIN_PUBKEY="my-admin-pubkey" bun run index.ts ``` - 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 - ``` + * **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 + ``` The server will start, and you can connect to it using a Nostr client that supports NIP-42 authentication. @@ -71,18 +72,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. | |
@@ -103,11 +104,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 @@ -115,5 +116,4 @@ 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. - +This project is licensed under the AGPLv3. See the [LICENSE](LICENSE) file for details. \ No newline at end of file