upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/config.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-01-14 11:42:05 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-01-14 13:40:03 +0000
commit50000cd9d47681390c3c45feef98fe51c7b79a0f (patch)
tree53ede8cb63ac2c5fe2321a6ecd9c87956537bbc7 /src/config.rs
parente3792b9abefd43b4594af2640ad4665c006fa3b0 (diff)
Add explicit rate limits and total connection limit
- Make RateLimit explicit in relay builder (500 subs, 60 events/min) - Add NGIT_MAX_CONNECTIONS config option (default: 500) - Update all 4 config locations (src, nix, docs, .env.example) - Fix documentation error: filter limit 5000→500 - Document Phase 2 deferral decision (per-IP enforcement) Addresses primary DoS vector (connection exhaustion) with minimal code. Per-IP rate limiting deferred until abuse detected in production. Related: issue ff38 (git endpoint throttling - separate concern)
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/config.rs b/src/config.rs
index 0f0d853..0014003 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -469,6 +469,11 @@ pub struct Config {
469 /// All events from these authors are blocked from both relay storage and purgatory 469 /// All events from these authors are blocked from both relay storage and purgatory
470 #[arg(long, env = "NGIT_EVENT_BLACKLIST", default_value = "")] 470 #[arg(long, env = "NGIT_EVENT_BLACKLIST", default_value = "")]
471 pub event_blacklist: String, 471 pub event_blacklist: String,
472
473 /// Maximum total connections to the relay (default: 500)
474 /// Prevents connection exhaustion DoS attacks
475 #[arg(long, env = "NGIT_MAX_CONNECTIONS", default_value_t = 500)]
476 pub max_connections: usize,
472} 477}
473 478
474impl Config { 479impl Config {
@@ -703,6 +708,7 @@ impl Config {
703 repository_whitelist: String::new(), 708 repository_whitelist: String::new(),
704 repository_blacklist: String::new(), 709 repository_blacklist: String::new(),
705 event_blacklist: String::new(), 710 event_blacklist: String::new(),
711 max_connections: 500,
706 } 712 }
707 } 713 }
708} 714}