From f186b71ca51e83837db60de13322394bb5e6d348 Mon Sep 17 00:00:00 2001 From: murilo ijanc Date: Tue, 24 Mar 2026 21:41:06 -0300 Subject: Initial commit Import existing tesseras.net website content. --- book/en/configuration.html | 390 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 book/en/configuration.html (limited to 'book/en/configuration.html') diff --git a/book/en/configuration.html b/book/en/configuration.html new file mode 100644 index 0000000..532d6a0 --- /dev/null +++ b/book/en/configuration.html @@ -0,0 +1,390 @@ + + + + + + Configuration - Tesseras User Guide + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Keyboard shortcuts

+
+

Press or to navigate between chapters

+

Press S or / to search in the book

+

Press ? to show this help

+

Press Esc to hide this help

+
+
+
+
+ + + + + + + + + + + + + +
+ +
+
+ + + + + + + +
+
+

Configuration

+

The daemon can be configured via a TOML file. Pass the path with --config:

+
tesseras-daemon --config /etc/tesseras/config.toml
+
+

If no config file is given, the daemon uses sensible defaults. CLI options (--listen, --bootstrap, --data-dir) override the corresponding config values.

+

Full example

+
[node]
+data_dir = "~/.local/share/tesseras"
+listen_addr = "0.0.0.0:4433"
+
+[dht]
+k = 20
+alpha = 3
+bucket_refresh_interval_secs = 3600
+republish_interval_secs = 3600
+pointer_ttl_secs = 86400
+max_stored_pointers = 100000
+ping_failure_threshold = 3
+
+[bootstrap]
+dns_domain = "_tesseras._udp.tesseras.net"
+hardcoded = [
+    "boot1.tesseras.net:4433",
+    "boot2.tesseras.net:4433",
+]
+
+[network]
+enable_mdns = true
+
+[observability]
+metrics_addr = "127.0.0.1:9190"
+log_format = "json"
+
+

Sections

+

[node]

+

Basic node settings.

+
+ + + + + + + + +
KeyTypeDefaultDescription
data_dirpathPlatform-specificWhere to store identity, database, and blobs
listen_addraddress0.0.0.0:4433QUIC listener address
+
+

The default data_dir is ~/.local/share/tesseras on Linux and ~/Library/Application Support/tesseras on macOS.

+

[dht]

+

Kademlia DHT tuning parameters. The defaults work well for most deployments.

+
+ + + + + + + + + + + + + +
KeyTypeDefaultDescription
kinteger20Maximum entries per routing table bucket
alphainteger3Parallelism for iterative lookups
bucket_refresh_interval_secsinteger3600How often to refresh routing table buckets (seconds)
republish_interval_secsinteger3600How often to republish stored pointers (seconds)
pointer_ttl_secsinteger86400How long to keep a pointer before it expires (seconds)
max_stored_pointersinteger100000Maximum number of pointers to store locally
ping_failure_thresholdinteger3How many consecutive ping failures before removing a peer
+
+

[bootstrap]

+

How the node discovers its first peers when joining the network.

+
+ + + + + + + + +
KeyTypeDefaultDescription
dns_domainstring_tesseras._udp.tesseras.netDNS domain for TXT-record-based peer discovery
hardcodedlist of strings["boot1.tesseras.net:4433", "boot2.tesseras.net:4433"]Fallback bootstrap addresses
+
+

[network]

+

Network-level features.

+
+ + + + + + + +
KeyTypeDefaultDescription
enable_mdnsbooleantrueEnable local network discovery via mDNS
+
+

[observability]

+

Monitoring and logging.

+
+ + + + + + + + +
KeyTypeDefaultDescription
metrics_addraddress127.0.0.1:9190Address for the Prometheus metrics endpoint
log_formatstringjsonLog output format (json or text)
+
+

IPv6 Support

+

Tesseras supports IPv6 natively. The listen_addr and listen_addrs fields accept both IPv4 and IPv6 addresses.

+

Listening on IPv6

+

To listen on all IPv6 interfaces:

+
[node]
+listen_addr = "[::]:4433"
+
+

On Linux and most BSDs, binding to [::] also accepts IPv4 connections (dual-stack) by default. On some systems (notably OpenBSD), [::] is IPv6-only due to IPV6_V6ONLY being enabled by default. To guarantee both IPv4 and IPv6 on all platforms, use listen_addrs with explicit addresses:

+
[node]
+listen_addrs = ["0.0.0.0:4433", "[::]:4433"]
+
+

For IPv6 loopback only (testing):

+
[node]
+listen_addr = "[::1]:4433"
+
+

Bootstrap with IPv6

+

Bootstrap addresses can be IPv6:

+
[bootstrap]
+hardcoded = [
+    "boot1.tesseras.net:4433",
+    "[2001:db8::1]:4433",
+]
+
+

DNS hostnames with both A and AAAA records are resolved to all addresses, so the daemon will connect over whichever protocol is reachable.

+

IPV6_V6ONLY behavior by OS

+
+ + + + + + + + + + + +
OS[::] accepts IPv4?Notes
LinuxYes (dual-stack)IPV6_V6ONLY defaults to 0
macOSYes (dual-stack)IPV6_V6ONLY defaults to 0
FreeBSDYes (dual-stack)IPV6_V6ONLY defaults to 0
OpenBSDNo (IPv6-only)IPV6_V6ONLY always 1
WindowsYes (dual-stack)IPV6_V6ONLY defaults to 0
+
+

If you need explicit control, use listen_addrs with both an IPv4 and IPv6 address.

+

Minimal config

+

Most users don’t need a config file at all. If you do, a minimal config overriding only what you need is enough:

+
[node]
+listen_addr = "0.0.0.0:5000"
+
+[bootstrap]
+hardcoded = ["192.168.1.10:4433"]
+
+

All other values use their defaults.

+ +
+ + +
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + -- cgit v1.2.3