##
## strfry configuration for FIPS mesh deployment.
## Full reference: https://github.com/hoytech/strfry
##

db = "/usr/src/app/strfry-db/"

dbParams {
    # Maximum size of the database (bytes). 10 GiB is a safe default.
    mapsize = 10737418240
}

relay {
    # Bind on all interfaces so the FIPS TUN (IPv4 + IPv6) can reach it.
    bind = "0.0.0.0"
    port = 7777

    nofiles = 0

    info {
        name = "FIPS Nostr Relay"
        description = "A Nostr relay accessible over the FIPS mesh network."
        pubkey = ""
        contact = ""
    }

    # Maximum size of an inbound WebSocket message (bytes).
    maxWebsocketPayloadSize = 131072

    # Send a ping every N seconds to keep connections alive.
    autoPingSeconds = 55

    # Enable per-message compression.
    enableTcpNoDelay = false

    rejectFutureEventsSeconds = 900
    rejectEphemeralEventsOlderThanSeconds = 60
    rejectEventsNewerThanSeconds = 900

    maxFilterLimit = 500
    maxSubsPerConnection = 20

    writePolicy {
        # Plugin executable for write-policy decisions (leave empty to allow all).
        plugin = ""
    }

    compression {
        enabled = true
        slidingWindow = true
    }

    logging {
        dumpInAll = false
        dumpInEvents = false
        dumpInReqs = false
        dbScanPerf = false
    }

    numThreads {
        ingester = 3
        reqWorker = 3
        reqMonitor = 3
        negentropy = 2
    }

    negentropy {
        enabled = true
        maxSyncEvents = 1000000
    }
}
