## ## Default strfry config ## # Directory that contains the strfry LMDB database (restart required) db = "/var/lib/strfry" dbParams { # Maximum number of threads/processes that can simultaneously have LMDB transactions open (restart required) maxreaders = 256 # Size of mmap() to use when loading LMDB (restart required) dbsize = 10737418240 } events { # Maximum size of normalised JSON, in bytes maxEventSize = 65536 # Events newer than this will be rejected rejectEventsNewerThanSeconds = 900 # Events older than this will be rejected rejectEventsOlderThanSeconds = 94608000 # Ephemeral events older than this will be rejected rejectEphemeralEventsOlderThanSeconds = 60 # Ephemeral events will be deleted from the DB when older than this ephemeralEventsLifetimeSeconds = 300 # Maximum number of tags allowed maxNumTags = 2000 # Maximum size for tag values, in bytes maxTagValSize = 1024 } relay { # Interface to listen on. Use 0.0.0.0 to listen on all interfaces (restart required) bind = "0.0.0.0" # Port to open (restart required) port = 7777 # Set OS-limit on maximum number of open files/sockets (if 0, don't attempt to set) (restart required) nofiles = 1000000 # HTTP header that contains the client's real IP, before reverse proxying (ie x-real-ip) (MUST be all lower-case) realIpHeader = "" info { # NIP-11: Name of this server. Short/descriptive (< 30 characters) name = "Decent Newsroom Relay" # NIP-11: Detailed information about relay, free-form description = "Relay for long-form articles and related activity." # NIP-11: Administrative nostr pubkey, for contact purposes pubkey = "d475ce4b3977507130f42c7f86346ef936800f3ae74d5ecf8089280cdc1923e9" # NIP-11: Alternative administrative contact (email, website, etc) contact = "decentnewsroom.com" } # Maximum accepted incoming websocket frame size (should be larger than max event) (restart required) maxWebsocketPayloadSize = 131072 # Websocket-level PING message frequency (should be less than any reverse proxy idle timeouts) (restart required) autoPingSeconds = 55 # If TCP keep-alive should be enabled (detect dropped connections to upstream reverse proxy) enableTcpKeepalive = false # How much uninterrupted CPU time a REQ query should get during its DB scan queryTimesliceBudgetMicroseconds = 10000 # Maximum records that can be returned per filter maxFilterLimit = 500 # Maximum number of subscriptions (concurrent REQs) a connection can have open at any time maxSubsPerConnection = 20 writePolicy { # If non-empty, path to an executable script that implements the writePolicy plugin logic # plugin = "/opt/write-policy.sh" } compression { # Use permessage-deflate compression if supported by client. Reduces bandwidth, but slight increase in CPU (restart required) enabled = true # Maintain a sliding window buffer for each connection. Improves compression, but uses more memory (restart required) slidingWindow = true } logging { # Dump all incoming messages dumpInAll = false # Dump all incoming EVENT messages dumpInEvents = false # Dump all incoming REQ/CLOSE messages dumpInReqs = false # Log performance metrics for initial REQ database scans dbScanPerf = false } numThreads = 0 }