Monorepo for Tangled
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186[server]# Addresses the XRPC server listens on. When using as an env var, comma-separated.## Can also be specified via environment variable `BOBBIN_BIND`.## Default value: ["127.0.0.1:8090", "[::1]:8090"]#binds = ["127.0.0.1:8090", "[::1]:8090"]
# The amount of time in seconds to allow in-flight requests to drain after sigterm# before forcing the listener closed.## Can also be specified via environment variable `BOBBIN_SHUTDOWN_GRACE_SECS`.## Default value: 30#shutdown_grace_secs = 30
# Address for the `/debug/mem` and `/debug/heap` introspection endpoints,# for example `127.0.0.1:8091`. Empty disables them so the debug surface is# never reachable on the public listener. Bind to loopback only.## Can also be specified via environment variable `BOBBIN_DEBUG_BIND`.## Default value: ""#debug_bind = ""
# Reverse proxies in front of bobbin,# each a bare IP address without a port or a CIDR block such as `173.245.48.0/20`.# Bobbin will read the client address out of `x-forwarded-for`# and forward that one address to the knot# when a request arrives from a proxy on this list,# so a knot that lists bobbin under its own `xrpc.trusted_proxies`# can rate-limit per browser# instead of pooling everyone bobbin serves into a single bucket.# Bobbin will read the last 32 entries of the chain, at most.# Leave empty when bobbin takes connections directly,# since bobbin would otherwise believe a header any client can write.# When using as an env var, comma-separated.## Can also be specified via environment variable `BOBBIN_TRUSTED_PROXIES`.## Default value: []#trusted_proxies = []
[hydrant]# Base URL of the hydrant instance - the cursor-replayable /stream lives# under this. Use `ws://` or `wss://` - `http://` and `https://`# are rewritten to the corresponding ws scheme at connection time!## Can also be specified via environment variable `BOBBIN_HYDRANT_URL`.## Default value: "http://127.0.0.1:13010"#url = "http://127.0.0.1:13010"
# The cursor to request on first connect. Reconnects ignore this and resume# strictly after the last cursor seen internally.## Can also be specified via environment variable `BOBBIN_START_CURSOR`.## Default value: 0#start_cursor = 0
[ingest]# Concurrent in-flight resolves during ingest. One slot per slingshot rtt.# Default 16 sits at the measured throughput# knee for cold replay against a healthy hydrant. The committer stays# serial so that like, cursor and Spur allocation order are preserved.## Can also be specified via environment variable `BOBBIN_INGEST_PARALLELISM`.## Default value: 16#parallelism = 16
[backpressure]# Estimated peak transient anonymous bytes a single hydrating request holds:# roughly the page of decoded records plus its serialized copy. Combined with# the detected cgroup memory limit to size the in-flight cap on heavy# endpoints. Has no effect when no cgroup memory limit is present, the heavy# path stays unbounded exactly as before.## Can also be specified via environment variable `BOBBIN_BACKPRESSURE_PER_REQUEST_ANON_BYTES`.## Default value: 2097152#per_request_anon_bytes = 2097152
# How often the adaptive watcher samples memory.current/memory.max and# adjusts the in-flight cap. Ignored when no cgroup memory limit is present.## Can also be specified via environment variable `BOBBIN_BACKPRESSURE_ADJUST_INTERVAL_MS`.## Default value: 500#adjust_interval_ms = 500
# memory.current/memory.max ratio below which the watcher additively raises# the in-flight cap back toward its ceiling. Sits below the memory.high# throttle band so the kernel, not this loop, handles mild pressure.## Can also be specified via environment variable `BOBBIN_BACKPRESSURE_RELIEVE_BELOW_RATIO`.## Default value: 0.85#relieve_below_ratio = 0.85
# memory.current/memory.max ratio above which the watcher multiplicatively# cuts the in-flight cap and purges jemalloc arenas. Set above the memory.high# watermark so this loop acts as the anti-OOM backstop, not a duplicate throttle.## Can also be specified via environment variable `BOBBIN_BACKPRESSURE_TIGHTEN_ABOVE_RATIO`.## Default value: 0.92#tighten_above_ratio = 0.92
# Bytes held back for the edge index, state indexes, and other derived# state that grows after startup. Folded into the heavy-request reserve so# the static in-flight cap leaves the index room to fill. Has no effect when# no cgroup memory limit is present.## Can also be specified via environment variable `BOBBIN_BACKPRESSURE_RESERVED_INDEX_BYTES`.## Default value: 67108864#reserved_index_bytes = 67108864
[slingshot]# Base URL of a slingshot instance. Used for record bodies and identity.## Can also be specified via environment variable `BOBBIN_SLINGSHOT_URL`.## Default value: "http://127.0.0.1:13011"#url = "http://127.0.0.1:13011"
[record_cache]# Bound of bytes on the in-process record LRU. Records evict on a weighted# LRU policy keyed on URI plus payload length.## Can also be specified via environment variable `BOBBIN_RECORD_LRU_BYTES`.## Default value: 67108864#lru_bytes = 67108864
[search]# The heap size in bytes for the in-mem tantivy writer. Larger values# trade RAM for fewer segment merges - the index itself lives in# `RamDirectory` and is rebuilt from hydrant replay on every restart.## Can also be specified via environment variable `BOBBIN_SEARCH_HEAP_BYTES`.## Default value: 50000000#heap_bytes = 50000000
[knot]# Whether to allow the knot proxy to dial private/loopback addresses. Off in# production - on for local testing against a knotserver on localhost.## Can also be specified via environment variable `BOBBIN_KNOT_ALLOW_PRIVATE`.## Default value: false#allow_private = false
# Require https on knot hosts. Disable only when proxying to a local# knot for development.## Can also be specified via environment variable `BOBBIN_KNOT_REQUIRE_HTTPS`.## Default value: true#require_https = true
[mirror]# Can also be specified via environment variable `BOBBIN_MIRROR_URL`.#url =
[log]# Log emitter format. `text` produces human-readable output for local# development. `json` emits one structured object per line for log# shippers in production.## Can also be specified via environment variable `BOBBIN_LOG_FORMAT`.## Default value: "text"#format = "text"
# `tracing-subscriber` env-filter directive. Defaults to `info` across# every span - override with `BOBBIN_LOG=bobbin_xrpc=debug,info` etc.## Can also be specified via environment variable `BOBBIN_LOG`.## Default value: "info"#filter = "info"