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