You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONFIGURATION.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,4 +119,10 @@ Running `nostream` for the first time creates the settings file in `<project_roo
119
119
| limits.message.ipWhitelist | List of IPs (IPv4 or IPv6) to ignore rate limits. |
120
120
| limits.admissionCheck.rateLimits[].period | Rate limit period in milliseconds. |
121
121
| limits.admissionCheck.rateLimits[].rate | Maximum number of admission checks during period. |
122
-
| limits.admissionCheck.ipWhitelist | List of IPs (IPv4 or IPv6) to ignore rate limits. |
122
+
| limits.admissionCheck.ipWhitelist | List of IPs (IPv4 or IPv6) to ignore rate limits. |
123
+
| nip05.mode | NIP-05 verification mode: `enabled` requires verification, `passive` verifies without blocking, `disabled` does nothing. Defaults to `disabled`. |
124
+
| nip05.verifyExpiration | Time in milliseconds before a successful NIP-05 verification expires and needs re-checking. Defaults to 604800000 (1 week). |
125
+
| nip05.verifyUpdateFrequency | Minimum interval in milliseconds between re-verification attempts for a given author. Defaults to 86400000 (24 hours). |
126
+
| nip05.maxConsecutiveFailures | Number of consecutive verification failures before giving up on an author. Defaults to 20. |
127
+
| nip05.domainWhitelist | List of domains allowed for NIP-05 verification. If set, only authors verified at these domains can publish. |
128
+
| nip05.domainBlacklist | List of domains blocked from NIP-05 verification. Authors with NIP-05 at these domains will be rejected. |
Copy file name to clipboardExpand all lines: README.md
+58Lines changed: 58 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -470,6 +470,17 @@ Start:
470
470
471
471
## Tests
472
472
473
+
### Linting and formatting (Biome)
474
+
475
+
Run code quality checks with Biome:
476
+
477
+
```
478
+
npm run lint
479
+
npm run lint:fix
480
+
npm run format
481
+
npm run format:check
482
+
```
483
+
473
484
### Unit tests
474
485
475
486
Open a terminal and change to the project's directory:
@@ -570,6 +581,52 @@ To see the integration test coverage report open `.coverage/integration/lcov-rep
570
581
open .coverage/integration/lcov-report/index.html
571
582
```
572
583
584
+
585
+
## Security & Load Testing
586
+
587
+
Nostream includes a specialized security tester to simulate Slowloris-style connection holding and event flood (spam) attacks. This is used to verify relay resilience and prevent memory leaks.
Export all stored events to a [JSON Lines](https://jsonlines.org/) (`.jsonl`) file. Each line is a valid NIP-01 Nostr event JSON object. The export streams rows from the database using cursors, so it works safely on relays with millions of events without loading them into memory.
@@ -618,6 +675,7 @@ Delete only selected kinds older than N days:
618
675
By default, the script asks for explicit confirmation (`Type 'DELETE' to confirm`).
619
676
Use `--force` to skip the prompt.
620
677
678
+
621
679
## Configuration
622
680
623
681
You can change the default folder by setting the `NOSTR_CONFIG_DIR` environment variable to a different path.
0 commit comments