This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / bobbin / example.toml
6.8 kB 190 lines
1[server] 2# Addresses the XRPC server listens on. When using as an env var, comma-separated. 3# 4# Can also be specified via environment variable `BOBBIN_BIND`. 5# 6# Default value: ["127.0.0.1:8090", "[::1]:8090"] 7#binds = ["127.0.0.1:8090", "[::1]:8090"] 8 9# The amount of time in seconds to allow in-flight requests to drain after sigterm 10# before forcing the listener closed. 11# 12# Can also be specified via environment variable `BOBBIN_SHUTDOWN_GRACE_SECS`. 13# 14# Default value: 30 15#shutdown_grace_secs = 30 16 17# Address for the `/debug/mem` and `/debug/heap` introspection endpoints, 18# for example `127.0.0.1:8091`. Empty disables them so the debug surface is 19# never reachable on the public listener. Bind to loopback only. 20# 21# Can also be specified via environment variable `BOBBIN_DEBUG_BIND`. 22# 23# Default value: "" 24#debug_bind = "" 25 26# Required. Public hostname clients reach this instance on, for example 27# `bobbin.example.com` or `localhost:8090`. Its `did:web` is the audience service-auth 28# tokens must be addressed to, so it has to match the host callers actually use. 29# 30# Can also be specified via environment variable `BOBBIN_HOSTNAME`. 31# 32# Default value: "" 33#hostname = "" 34 35# Reverse proxies in front of bobbin, 36# each a bare IP address without a port or a CIDR block such as `173.245.48.0/20`. 37# Bobbin will read the client address out of `x-forwarded-for` 38# and forward that one address to the knot 39# when a request arrives from a proxy on this list, 40# so a knot that lists bobbin under its own `xrpc.trusted_proxies` 41# can rate-limit per browser 42# instead of pooling everyone bobbin serves into a single bucket. 43# Bobbin will read the last 32 entries of the chain, at most. 44# Leave empty when bobbin takes connections directly, 45# since bobbin would otherwise believe a header any client can write. 46# When using as an env var, comma-separated. 47# 48# Can also be specified via environment variable `BOBBIN_TRUSTED_PROXIES`. 49# 50# Default value: [] 51#trusted_proxies = [] 52 53[hydrant] 54# Base URL of the hydrant instance - the cursor-replayable /stream lives 55# under this. Use `ws://` or `wss://` - `http://` and `https://` 56# are rewritten to the corresponding ws scheme at connection time! 57# 58# Can also be specified via environment variable `BOBBIN_HYDRANT_URL`. 59# 60# Default value: "http://127.0.0.1:13010" 61#url = "http://127.0.0.1:13010" 62 63# The cursor to request on first connect. Reconnects ignore this and resume 64# strictly after the last cursor seen internally. 65# 66# Can also be specified via environment variable `BOBBIN_START_CURSOR`. 67# 68# Default value: 0 69#start_cursor = 0 70 71[ingest] 72# Concurrent in-flight resolves during ingest. One slot per slingshot rtt. 73# Default 16 sits at the measured throughput 74# knee for cold replay against a healthy hydrant. The committer stays 75# serial so that like, cursor and Spur allocation order are preserved. 76# 77# Can also be specified via environment variable `BOBBIN_INGEST_PARALLELISM`. 78# 79# Default value: 16 80#parallelism = 16 81 82[backpressure] 83# Estimated peak transient anonymous bytes a single hydrating request holds: 84# roughly the page of decoded records plus its serialized copy. Combined with 85# the detected cgroup memory limit to size the in-flight cap on heavy 86# endpoints. Has no effect when no cgroup memory limit is present, the heavy 87# path stays unbounded exactly as before. 88# 89# Can also be specified via environment variable `BOBBIN_BACKPRESSURE_PER_REQUEST_ANON_BYTES`. 90# 91# Default value: 2097152 92#per_request_anon_bytes = 2097152 93 94# How often the adaptive watcher samples memory.current/memory.max and 95# adjusts the in-flight cap. Ignored when no cgroup memory limit is present. 96# 97# Can also be specified via environment variable `BOBBIN_BACKPRESSURE_ADJUST_INTERVAL_MS`. 98# 99# Default value: 500 100#adjust_interval_ms = 500 101 102# memory.current/memory.max ratio below which the watcher additively raises 103# the in-flight cap back toward its ceiling. Sits below the memory.high 104# throttle band so the kernel, not this loop, handles mild pressure. 105# 106# Can also be specified via environment variable `BOBBIN_BACKPRESSURE_RELIEVE_BELOW_RATIO`. 107# 108# Default value: 0.85 109#relieve_below_ratio = 0.85 110 111# memory.current/memory.max ratio above which the watcher multiplicatively 112# cuts the in-flight cap and purges jemalloc arenas. Set above the memory.high 113# watermark so this loop acts as the anti-OOM backstop, not a duplicate throttle. 114# 115# Can also be specified via environment variable `BOBBIN_BACKPRESSURE_TIGHTEN_ABOVE_RATIO`. 116# 117# Default value: 0.92 118#tighten_above_ratio = 0.92 119 120# Bytes held back for the edge index, state indexes, and other derived 121# state that grows after startup. Folded into the heavy-request reserve so 122# the static in-flight cap leaves the index room to fill. Has no effect when 123# no cgroup memory limit is present. 124# 125# Can also be specified via environment variable `BOBBIN_BACKPRESSURE_RESERVED_INDEX_BYTES`. 126# 127# Default value: 67108864 128#reserved_index_bytes = 67108864 129 130[slingshot] 131# Base URL of a slingshot instance. Used for record bodies and identity. 132# 133# Can also be specified via environment variable `BOBBIN_SLINGSHOT_URL`. 134# 135# Default value: "http://127.0.0.1:13011" 136#url = "http://127.0.0.1:13011" 137 138[record_cache] 139# Bound of bytes on the in-process record LRU. Records evict on a weighted 140# LRU policy keyed on URI plus payload length. 141# 142# Can also be specified via environment variable `BOBBIN_RECORD_LRU_BYTES`. 143# 144# Default value: 67108864 145#lru_bytes = 67108864 146 147[search] 148# The heap size in bytes for the in-mem tantivy writer. Larger values 149# trade RAM for fewer segment merges - the index itself lives in 150# `RamDirectory` and is rebuilt from hydrant replay on every restart. 151# 152# Can also be specified via environment variable `BOBBIN_SEARCH_HEAP_BYTES`. 153# 154# Default value: 50000000 155#heap_bytes = 50000000 156 157[knot] 158# Whether to allow the knot proxy to dial private/loopback addresses. Off in 159# production - on for local testing against a knotserver on localhost. 160# 161# Can also be specified via environment variable `BOBBIN_KNOT_ALLOW_PRIVATE`. 162# 163# Default value: false 164#allow_private = false 165 166# Require https on knot hosts. Disable only when proxying to a local 167# knot for development. 168# 169# Can also be specified via environment variable `BOBBIN_KNOT_REQUIRE_HTTPS`. 170# 171# Default value: true 172#require_https = true 173 174[log] 175# Log emitter format. `text` produces human-readable output for local 176# development. `json` emits one structured object per line for log 177# shippers in production. 178# 179# Can also be specified via environment variable `BOBBIN_LOG_FORMAT`. 180# 181# Default value: "text" 182#format = "text" 183 184# `tracing-subscriber` env-filter directive. Defaults to `info` across 185# every span - override with `BOBBIN_LOG=bobbin_xrpc=debug,info` etc. 186# 187# Can also be specified via environment variable `BOBBIN_LOG`. 188# 189# Default value: "info" 190#filter = "info"