64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
|
|
##
|
|||
|
|
## 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
|
|||
|
|
}
|