Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Config keys

The keys an operator actually touches, across both packages. Package-specific pages: floonet-strfry configuration, floonet-rs configuration.

floonet-strfry policy environment

Read by the write-policy plugin and the bundled name authority (in compose, the .env file). FLOONET_AUTHORITY_COLOCATED isn’t a literal key; it names the Compose/Caddy stack’s default behavior of serving the authority on the same FLOONET_DOMAIN as the relay, with nothing to set; a split relay/authority-subdomain deploy opts back in via an nginx snippet. See The name authority.

KeyDefaultMeaning
FLOONET_ALLOWED_KINDSthe Goblin + Magick Market set (24 kinds)The whitelist. Default deny; everything not listed is dropped. .env.example pins the wallet-only core.
FLOONET_AUTHORIZED_AUTHORSempty (closed)Comma-separated pubkeys (hex or npub) allowed to publish the author-locked public-note kinds 1 and 30023. Empty means both are rejected for everyone. May also live in a floonet.env file next to the plugin (FLOONET_ENV_FILE); touch the plugin to reload with no restart.
FLOONET_REQUIRE_AUTHfalseReject writes unless the connection completed NIP-42 AUTH.
FLOONET_PAY_MODEoffoff, name (pay to claim a name), or write (pay to publish).
FLOONET_NAME_PRICE_GRINunsetPrice of a name in GRIN. Required when FLOONET_PAY_MODE=name.
GOBLINPAY_URLunsetThe operator’s GoblinPay server. Required for any paid mode.
GOBLINPAY_TOKENunsetGoblinPay API token. Secret: environment or 0400 file only.
FLOONET_PAID_CACHE_SECS60TTL for the plugin’s cached paid-status lookups.
FLOONET_TRANSFERSfalseTurn on the authority’s non-custodial name marketplace. Off by default; when on, FLOONET_GRIN_NODE_URL is required. Authority only.
FLOONET_GRIN_NODE_URLunsetRead-only Grin node foreign API used to confirm transfer payments. Required when FLOONET_TRANSFERS=true.

floonet-strfry (strfry.conf)

KeyFloonet defaultMeaning
relay.info.nameFloonet RelayNIP-11 name, payment-neutral.
relay.info.descriptionA strfry Floonet relay for the Grin community Nostr network.NIP-11 description, same rule.
relay.writePolicy.pluginplugin pathThe write-policy plugin.
relay.auth.enabledfalseNIP-42 authentication.
events.maxEventSizeshipped defaultKeep large enough for gift-wrapped slatepacks.

The read side may also set filterValidation.allowedKinds to mirror the whitelist on subscriptions.

There is no transport key to set: wallets reach the relay over Tor by dialing its clearnet host through a Tor exit, so the relay needs no onion or special transport component. Just keep Tor exit IPs unblocked.

floonet-rs (config.toml)

KeyFloonet defaultMeaning
info.namefloonet-rs-relayNIP-11 name, payment-neutral.
info.descriptionneutral Floonet wordingNIP-11 description, same rule.
limits.event_kind_allowlistthe same 24-kind setThe whitelist, enforced in admission.
limits.max_event_bytesshipped defaultKeep large enough for gift-wrapped slatepacks.
authorization.public_note_authorsunset (closed)Pubkeys (hex or npub) allowed to publish the author-locked public-note kinds 1 and 30023. Unset means both are rejected for everyone.
authorization.nip42_authfalseRequire AUTH before writes.
authorization.nip42_dmsfalseRequire AUTH to read your gift wraps.
authorization.pubkey_whitelistunsetRestrict writes to these pubkeys.
goblinpay.pay_modeoffoff, name, or write; drives the GoblinPay processor. Env alias FLOONET_PAY_MODE.
goblinpay.urlunsetYour GoblinPay server. Env alias FLOONET_GOBLINPAY_URL.
goblinpay.api_tokenunsetGoblinPay API token; prefer the FLOONET_GOBLINPAY_TOKEN env var over the file.
goblinpay.name_price_grin1.0Price of a name in GRIN when pay_mode = "name". Env alias FLOONET_NAME_PRICE_GRIN.
goblinpay.admission_price_grin1.0Price of write admission in GRIN when pay_mode = "write".
name_authority.enabledfalseServe the name authority in-process.
name_authority.domainoperator’s domainThe NIP-05 domain names resolve under, normally the relay’s own domain, since the authority is served in-process on the same listener.
name_authority.base_urloperator’s domainLOAD-BEARING: NIP-98 auth events are verified against <base_url><path>; must match the relay’s public URL.