110 lines
4.1 KiB
Markdown
110 lines
4.1 KiB
Markdown
# Nostr Relay
|
|
|
|
### One click and spin up your own Nostr relay. Share with the world, or use privately.
|
|
**Configure**:
|
|
- Free Plan: with limitted storage (limit can be changed)
|
|
- Paid Plan: `pay to join` and `pay for storage`
|
|
- Storage Limit (can buy more)
|
|
- Rate Limit
|
|
- Filter Limit
|
|
- Allow/Block accounts
|
|
- Optional Auth for `Events` and `Filters`
|
|
|
|
## Supported NIPs
|
|
- [x] **NIP-01**: Basic protocol flow
|
|
- [x] **NIP-02**: Contact List and Petnames
|
|
- `kind: 3`: delete past contact lists as soon as the relay receives a new one
|
|
- [x] **NIP-04**: Encrypted Direct Message
|
|
- if `AUTH` enabled: send only to the intended target
|
|
- [x] **NIP-09**: Event Deletion
|
|
- [x] **NIP-11**: Relay Information Document
|
|
- >**Note**: the endpoint is NOT on the root level of the domain. It also includes a path (eg https://lnbits.link/nostrrelay/)
|
|
- [ ] **NIP-12**: Generic Tag Queries
|
|
- todo
|
|
- [x] **NIP-15**: End of Stored Events Notice
|
|
- [x] **NIP-16**: Event Treatment
|
|
- [x] Regular Events
|
|
- [x] Replaceable Events
|
|
- [x] Ephemeral Events
|
|
- [x] **NIP-20**: Command Results
|
|
- todo: use correct prefixes
|
|
- [x] **NIP-22**: Event created_at Limits
|
|
- [ ] **NIP-26**: Delegated Event Signing
|
|
- not planned
|
|
- [x] **NIP-28** Public Chat
|
|
- `kind: 41`: handled similar to `kind 0` metadata events
|
|
- [ ] **NIP-33**: Parameterized Replaceable Events
|
|
- todo
|
|
- [ ] **NIP-40**: Expiration Timestamp
|
|
- todo
|
|
- [x] **NIP-42**: Authentication of clients to relays
|
|
- todo: use correct prefix
|
|
- [ ] **NIP-50**: Search Capability
|
|
- todo
|
|
|
|
|
|
## Create Relay
|
|
Creating a new relay is straightforward. Just click `New Relay` then enter the Relay Info.
|
|
> **Note**: admin users can select a relay id. Regular users will be assigned a generated relay id.
|
|
The relay can be activated/deactivated.
|
|
|
|
- **New Relay Dialog**
|
|
- 
|
|
|
|
## Configure Relay
|
|
Find your Relay in the list and click the expand button (`+`) to configure it.
|
|
|
|
### Relay Info
|
|
This tab contains data according to `NIP-11` (Relay Information Document).
|
|
> **Note**: the `domain` is added automatically and shoud be corrected manually if needed. This value is used for `NIP-42` (Authentication of clients to relays)
|
|
|
|
- **Relay Info Tab**
|
|
- 
|
|
|
|
|
|
### Payment
|
|
|
|
By default the relay is free to access, but it can be configured to ask for payments.
|
|
It is encourage to also activate the `Require Auth` option for paid relays.
|
|
|
|
> **Note**: check the info button (`I`) tooltip for a description of each field.
|
|
|
|
- **Payment Config Tab**
|
|
- 
|
|
|
|
Click on the Relay ID (or visit `https://{your_domain}/nostrrelay/${relay_id}`) for the Relay public page.
|
|
Here the entry and storage fees can be paid.
|
|
|
|
- **Relay Public Page**
|
|
- 
|
|
|
|
|
|
### Config
|
|
|
|
Configure `NIP-22` (_Event `created_at` Limits_), `NIP-42` (_Authentication of clients to relays_) and other Relay parameters.
|
|
|
|
Some configurations are not standard (`NIPs`) but they help control what clients are allowed to do, thus blocking (some) attack vectors.
|
|
|
|
> **Note**: check the info button (`I`) tooltip for a description of each field.
|
|
|
|
- **Config Tab**
|
|
- 
|
|
|
|
|
|
### Accounts
|
|
|
|
Allows the Relay operator to `Block` or `Allow` certain accounts.
|
|
|
|
If an account is `allowed` then it is not required to `pay to join`.
|
|
|
|
When an account is `blocked` it does not matter if it `paid to join` or if it is `allowed`.
|
|
|
|
- **Accounts Tab**
|
|
- 
|
|
|
|
## Development
|
|
|
|
Create Symbolic Link:
|
|
```
|
|
ln -s /Users/my-user/git-repos/nostr-relay-extension/ /Users/my-user/git-repos/lnbits/lnbits/extensions/nostrrelay
|
|
```
|