release(catalog): re-sign with working strfry manifest (7777 + declarative strfry.conf)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
55c20e0d6e
commit
11db822597
@ -4033,8 +4033,12 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Lightweight Nostr relay written in C++. Alternative to nostr-rs-relay with lower resource usage.",
|
"description": "Lightweight Nostr relay written in C++. Alternative to nostr-rs-relay with lower resource usage.",
|
||||||
"environment": [
|
"files": [
|
||||||
"RELAY_NAME=Archipelago Strfry Relay"
|
{
|
||||||
|
"content": "##\n## Default strfry config\n##\n\n# Directory that contains the strfry LMDB database (restart required)\ndb = \"./strfry-db/\"\n\ndbParams {\n # Maximum number of threads/processes that can simultaneously have LMDB transactions open (restart required)\n maxreaders = 256\n\n # Size of mmap() to use when loading LMDB (default is 10TB, does *not* correspond to disk-space used) (restart required)\n mapsize = 10995116277760\n\n # Disables read-ahead when accessing the LMDB mapping. Reduces IO activity when DB size is larger than RAM. (restart required)\n noReadAhead = false\n}\n\nevents {\n # Maximum size of normalised JSON, in bytes\n maxEventSize = 65536\n\n # Events newer than this will be rejected\n rejectEventsNewerThanSeconds = 900\n\n # Events older than this will be rejected\n rejectEventsOlderThanSeconds = 94608000\n\n # Ephemeral events older than this will be rejected\n rejectEphemeralEventsOlderThanSeconds = 60\n\n # Ephemeral events will be deleted from the DB when older than this\n ephemeralEventsLifetimeSeconds = 300\n\n # Maximum number of tags allowed\n maxNumTags = 2000\n\n # Maximum size for tag values, in bytes\n maxTagValSize = 1024\n}\n\nrelay {\n # Interface to listen on. Use 0.0.0.0 to listen on all interfaces (restart required)\n bind = \"0.0.0.0\"\n\n # Port to open for the nostr websocket protocol (restart required)\n port = 7777\n\n # Set OS-limit on maximum number of open files/sockets (if 0, don't attempt to set) (restart required)\n nofiles = 0\n\n # HTTP header that contains the client's real IP, before reverse proxying (ie x-real-ip) (MUST be all lower-case)\n realIpHeader = \"\"\n\n info {\n # NIP-11: Name of this server. Short/descriptive (< 30 characters)\n name = \"Archipelago Strfry Relay\"\n\n # NIP-11: Detailed information about relay, free-form\n description = \"Self-hosted strfry Nostr relay on Archipelago.\"\n\n # NIP-11: Administrative nostr pubkey, for contact purposes\n pubkey = \"\"\n\n # NIP-11: Alternative administrative contact (email, website, etc)\n contact = \"\"\n\n # NIP-11: URL pointing to an image to be used as an icon for the relay\n icon = \"\"\n\n # List of supported lists as JSON array, or empty string to use default. Example: \"[1,2]\"\n nips = \"\"\n }\n\n # Maximum accepted incoming websocket frame size (should be larger than max event) (restart required)\n maxWebsocketPayloadSize = 131072\n\n # Maximum number of filters allowed in a REQ\n maxReqFilterSize = 200\n\n # Websocket-level PING message frequency (should be less than any reverse proxy idle timeouts) (restart required)\n autoPingSeconds = 55\n\n # If TCP keep-alive should be enabled (detect dropped connections to upstream reverse proxy)\n enableTcpKeepalive = false\n\n # How much uninterrupted CPU time a REQ query should get during its DB scan\n queryTimesliceBudgetMicroseconds = 10000\n\n # Maximum records that can be returned per filter\n maxFilterLimit = 500\n\n # Maximum number of subscriptions (concurrent REQs) a connection can have open at any time\n maxSubsPerConnection = 20\n\n writePolicy {\n # If non-empty, path to an executable script that implements the writePolicy plugin logic\n plugin = \"/app/write-policy.py\"\n }\n\n compression {\n # Use permessage-deflate compression if supported by client. Reduces bandwidth, but slight increase in CPU (restart required)\n enabled = true\n\n # Maintain a sliding window buffer for each connection. Improves compression, but uses more memory (restart required)\n slidingWindow = true\n }\n\n logging {\n # Dump all incoming messages\n dumpInAll = false\n\n # Dump all incoming EVENT messages\n dumpInEvents = false\n\n # Dump all incoming REQ/CLOSE messages\n dumpInReqs = false\n\n # Log performance metrics for initial REQ database scans\n dbScanPerf = false\n\n # Log reason for invalid event rejection? Can be disabled to silence excessive logging\n invalidEvents = true\n }\n\n numThreads {\n # Ingester threads: route incoming requests, validate events/sigs (restart required)\n ingester = 3\n\n # reqWorker threads: Handle initial DB scan for events (restart required)\n reqWorker = 3\n\n # reqMonitor threads: Handle filtering of new events (restart required)\n reqMonitor = 3\n\n # negentropy threads: Handle negentropy protocol messages (restart required)\n negentropy = 2\n }\n\n negentropy {\n # Support negentropy protocol messages\n enabled = true\n\n # Maximum records that sync will process before returning an error\n maxSyncEvents = 1000000\n }\n}\n",
|
||||||
|
"overwrite": true,
|
||||||
|
"path": "/var/lib/archipelago/strfry-config/strfry.conf"
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"health_check": {
|
"health_check": {
|
||||||
"endpoint": "http://localhost:8090",
|
"endpoint": "http://localhost:8090",
|
||||||
@ -4052,7 +4056,7 @@
|
|||||||
},
|
},
|
||||||
"ports": [
|
"ports": [
|
||||||
{
|
{
|
||||||
"container": 8080,
|
"container": 7777,
|
||||||
"host": 8090,
|
"host": 8090,
|
||||||
"protocol": "tcp"
|
"protocol": "tcp"
|
||||||
}
|
}
|
||||||
@ -4068,8 +4072,7 @@
|
|||||||
"network_policy": "isolated",
|
"network_policy": "isolated",
|
||||||
"no_new_privileges": true,
|
"no_new_privileges": true,
|
||||||
"readonly_root": true,
|
"readonly_root": true,
|
||||||
"seccomp_profile": "default",
|
"seccomp_profile": "default"
|
||||||
"user": 1000
|
|
||||||
},
|
},
|
||||||
"version": "0.9.0",
|
"version": "0.9.0",
|
||||||
"volumes": [
|
"volumes": [
|
||||||
@ -4080,6 +4083,14 @@
|
|||||||
"source": "/var/lib/archipelago/strfry",
|
"source": "/var/lib/archipelago/strfry",
|
||||||
"target": "/app/strfry-db",
|
"target": "/app/strfry-db",
|
||||||
"type": "bind"
|
"type": "bind"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"options": [
|
||||||
|
"ro"
|
||||||
|
],
|
||||||
|
"source": "/var/lib/archipelago/strfry-config/strfry.conf",
|
||||||
|
"target": "/etc/strfry.conf",
|
||||||
|
"type": "bind"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -4252,7 +4263,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"schema": 1,
|
"schema": 1,
|
||||||
"signature": "6b31f67a12ece7acb77bae70cb3ed18afe7c79bc920115449365f40bc420e32dd527b74e92ac2a1da3f6c2e5b0a4bfcc68c27a782eeab2822b396f2ff4b96a0e",
|
"signature": "bf1c813496074bb06cbd1b096cb3f8f5b72b5d31cfb651907712e54ffe746cc14a2ae6454a2ab266a8c3e8d187f997a7da447e0a4097d3cf0cb32a889bde9502",
|
||||||
"signed_by": "did:key:z6MkkidEnEpo6qHMCNSZoNKWtvQvxq3whnaME9wGgEFhq7ur",
|
"signed_by": "did:key:z6MkkidEnEpo6qHMCNSZoNKWtvQvxq3whnaME9wGgEFhq7ur",
|
||||||
"updated": "2026-07-09"
|
"updated": "2026-07-09"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user