## ## strfry.conf — Timmy's sovereign Nostr relay ## ## All events pass through the relay-policy sidecar before being accepted. ## No event is stored without explicit approval from the API server. ## db = "/data/strfry-db" relay { bind = "0.0.0.0" port = 7777 info { name = "Timmy Relay" description = "Timmy's sovereign Nostr relay — whitelist-only" pubkey = "" contact = "" icon = "" } # Maximum WebSocket payload size (bytes). # 131072 = 128 KiB — generous for NIP-09 deletions but not abusable. maxWebsocketPayloadSize = 131072 autoPingSeconds = 55 enableTcpKeepalive = false queryTimesliceBudgetMicroseconds = 10000 maxFilterLimit = 500 maxSubsPerConnection = 20 writePolicy { # Plugin receives JSON lines on stdin, writes decision lines to stdout. # The plugin script bridges each event to the relay-policy HTTP sidecar. plugin = "/usr/local/bin/relay-policy-plugin" } compression { enabled = true slidingWindow = true } logging { dumpInAll = false dumpInEvents = false dumpInReqs = false dbScanPerf = false quiet = false } numThreads { ingester = 3 reqWorker = 3 reqMonitor = 1 negentropy = 2 } # Accept events up to 64 KiB — NIP-01 compliant maximum. maxEventSize = 65536 # Allow ephemeral events (kinds 20000–29999) — needed for NIP-04 DMs. rejectEphemeral = false }