Monorepo for Tangled tangled.org
2

Configure Feed

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

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