Now let's take a silly one
1[server]
2# Can also be specified via environment variable `KNOT_HOSTNAME`.
3# Required! This value must be specified.
4#hostname =
5
6# Can also be specified via environment variable `KNOT_ADMINS`.
7# Required! This value must be specified.
8#admins =
9
10# Can also be specified via environment variable `KNOT_LISTEN_ADDR`.
11# Default value: "[::]:5555"
12#listen_addr = "[::]:5555"
13
14# Can also be specified via environment variable `KNOT_LISTEN_HEADER_TIMEOUT_MS`.
15# Default value: 10000
16#listen_header_timeout_ms = 10000
17
18# Can also be specified via environment variable `KNOT_LISTEN_IDLE_TIMEOUT_MS`.
19# Default value: 60000
20#listen_idle_timeout_ms = 60000
21
22# Can also be specified via environment variable `KNOT_LISTEN_MAX_CONNECTIONS`.
23# Default value: 1024
24#listen_max_connections = 1024
25
26# Can also be specified via environment variable `KNOT_INTERNAL_LISTEN_ADDR`.
27# Default value: "[::1]:5444"
28#internal_listen_addr = "[::1]:5444"
29
30# Can also be specified via environment variable `KNOT_SSH_LISTEN_ADDR`.
31# Default value: "[::]:2222"
32#ssh_listen_addr = "[::]:2222"
33
34# Can also be specified via environment variable `KNOT_SSH_HOST_KEY_FILE`.
35# Required! This value must be specified.
36#ssh_host_key_file =
37
38# Can also be specified via environment variable `KNOT_SSH_MAX_PACK_BYTES`.
39# Default value: 1073741824
40#ssh_max_pack_bytes = 1073741824
41
42# Can also be specified via environment variable `KNOT_APPVIEW_ENDPOINT`.
43# Default value: "https://tangled.org"
44#appview_endpoint = "https://tangled.org"
45
46[tls]
47# Can also be specified via environment variable `KNOT_TLS_CERT_PATH`.
48#cert_path =
49
50# Can also be specified via environment variable `KNOT_TLS_KEY_PATH`.
51#key_path =
52
53# Can also be specified via environment variable `KNOT_TLS_HTTP3`.
54# Default value: true
55#http3 = true
56
57# Can also be specified via environment variable `KNOT_TLS_ACME_ENABLED`.
58# Default value: false
59#acme_enabled = false
60
61# Can also be specified via environment variable `KNOT_TLS_ACME_CACHE_DIR`.
62#acme_cache_dir =
63
64# Can also be specified via environment variable `KNOT_TLS_ACME_CONTACT`.
65#acme_contact =
66
67# Can also be specified via environment variable `KNOT_TLS_ACME_STAGING`.
68# Default value: false
69#acme_staging = false
70
71# Can also be specified via environment variable `KNOT_TLS_MTLS_ENABLED`.
72# Default value: false
73#mtls_enabled = false
74
75# Can also be specified via environment variable `KNOT_TLS_MTLS_CLIENT_CA_PATH`.
76#mtls_client_ca_path =
77
78# Can also be specified via environment variable `KNOT_TLS_MTLS_ADMIN_SPKI_PIN`.
79#mtls_admin_spki_pin =
80
81[acl]
82# Can also be specified via environment variable `KNOT_ADMISSION`.
83# Default value: "closed"
84#admission = "closed"
85
86[repo]
87# Can also be specified via environment variable `KNOT_SCAN_PATH`.
88# Required! This value must be specified.
89#scan_path =
90
91# Can also be specified via environment variable `KNOT_DEFAULT_BRANCH`.
92# Default value: "main"
93#default_branch = "main"
94
95[git]
96# Committer identity stamped on merge commits the knot creates.
97#
98# Can also be specified via environment variable `KNOT_GIT_USER_NAME`.
99#
100# Default value: "Tangled"
101#user_name = "Tangled"
102
103# Can also be specified via environment variable `KNOT_GIT_USER_EMAIL`.
104# Default value: "noreply@tangled.sh"
105#user_email = "noreply@tangled.sh"
106
107# Can also be specified via environment variable `KNOT_GIT_OBJECT_FORMAT`.
108# Default value: "sha256"
109#object_format = "sha256"
110
111[secrets]
112# Can also be specified via environment variable `KNOT_SEALED_KEY_FILE`.
113# Required! This value must be specified.
114#sealed_key_file =
115
116# Can also be specified via environment variable `KNOT_MASTER_KEY_ENV`.
117# Required! This value must be specified.
118#master_key_env =
119
120[http]
121# Can also be specified via environment variable `KNOT_HTTP_CONNECT_TIMEOUT_MS`.
122# Default value: 5000
123#connect_timeout_ms = 5000
124
125# Can also be specified via environment variable `KNOT_HTTP_READ_TIMEOUT_MS`.
126# Default value: 30000
127#read_timeout_ms = 30000
128
129# Can also be specified via environment variable `KNOT_HTTP_REQUEST_TIMEOUT_MS`.
130# Default value: 60000
131#request_timeout_ms = 60000
132
133# Can also be specified via environment variable `KNOT_HTTP_MAX_RESPONSE_BYTES`.
134# Default value: 16777216
135#max_response_bytes = 16777216
136
137[atproto]
138# Can also be specified via environment variable `KNOT_PLC_DIRECTORY`.
139# Required! This value must be specified.
140#plc_directory =
141
142[xrpc]
143# Can also be specified via environment variable `KNOT_XRPC_MAX_BODY_BYTES`.
144# Default value: 65536
145#max_body_bytes = 65536
146
147# Can also be specified via environment variable `KNOT_XRPC_MAX_RESPONSE_BYTES`.
148# Default value: 5242880
149#max_response_bytes = 5242880
150
151# Can also be specified via environment variable `KNOT_XRPC_MAX_ARCHIVE_BYTES`.
152# Default value: 1073741824
153#max_archive_bytes = 1073741824
154
155# Can also be specified via environment variable `KNOT_XRPC_TREE_LAST_COMMIT_BUDGET_MS`.
156# Default value: 300
157#tree_last_commit_budget_ms = 300
158
159# Can also be specified via environment variable `KNOT_XRPC_BLOB_LAST_COMMIT_BUDGET_MS`.
160# Default value: 2000
161#blob_last_commit_budget_ms = 2000
162
163# Can also be specified via environment variable `KNOT_XRPC_LANGUAGES_BUDGET_MS`.
164# Default value: 1000
165#languages_budget_ms = 1000
166
167# Can also be specified via environment variable `KNOT_XRPC_LANGUAGES_PUSH_BUDGET_MS`.
168# Default value: 2000
169#languages_push_budget_ms = 2000
170
171# Body cap for the merge and mergeCheck procedures, whose patch payloads
172# routinely exceed the general XRPC body cap.
173#
174# Can also be specified via environment variable `KNOT_XRPC_MAX_PATCH_BYTES`.
175#
176# Default value: 16777216
177#max_patch_bytes = 16777216
178
179# Cap on the total decompressed size of a patch the merge procedures parse,
180# bounding binary-delta inflation and hunk expansion apart from the
181# compressed body cap above.
182#
183# Can also be specified via environment variable `KNOT_XRPC_MAX_PATCH_DECOMPRESSED_BYTES`.
184#
185# Default value: 134217728
186#max_patch_decompressed_bytes = 134217728
187
188# Can also be specified via environment variable `KNOT_XRPC_PREAUTH_BURST`.
189# Default value: 20
190#preauth_burst = 20
191
192# Can also be specified via environment variable `KNOT_XRPC_PREAUTH_REFILL_MS`.
193# Default value: 100
194#preauth_refill_ms = 100
195
196# Can also be specified via environment variable `KNOT_XRPC_PER_PEER_INFLIGHT`.
197# Default value: 8
198#per_peer_inflight = 8
199
200# Can also be specified via environment variable `KNOT_XRPC_GLOBAL_INFLIGHT`.
201# Default value: 64
202#global_inflight = 64
203
204# Can also be specified via environment variable `KNOT_XRPC_MAX_PENDING_RESERVATIONS`.
205# Default value: 256
206#max_pending_reservations = 256
207
208# Per-account cap on reserved repository keys awaiting creation, so one
209# account cannot consume the whole pending-reservation budget.
210#
211# Can also be specified via environment variable `KNOT_XRPC_PER_ACTOR_RESERVATIONS`.
212#
213# Default value: 32
214#per_actor_reservations = 32
215
216# How long a reserved repository key is held before it lapses and its
217# sealed key is reclaimed, in seconds.
218#
219# Can also be specified via environment variable `KNOT_XRPC_RESERVATION_TTL_SECS`.
220#
221# Default value: 3600
222#reservation_ttl_secs = 3600
223
224# Can also be specified via environment variable `KNOT_XRPC_FORK_MAX_PACK_BYTES`.
225# Default value: 1073741824
226#fork_max_pack_bytes = 1073741824
227
228# Can also be specified via environment variable `KNOT_XRPC_FORK_FETCH_TIMEOUT_MS`.
229# Default value: 600000
230#fork_fetch_timeout_ms = 600000
231
232# When the knot runs behind a trusted reverse proxy that terminates TLS,
233# set this to the header the proxy appends the client address to, for
234# example x-forwarded-for. The rightmost entry is used. Leave unset when
235# the knot is directly exposed so the socket peer address is used. Only set
236# this when a trusted proxy overwrites or appends the header, since a client
237# can forge it otherwise.
238#
239# Can also be specified via environment variable `KNOT_XRPC_TRUSTED_PROXY_HEADER`.
240#trusted_proxy_header =
241
242# Can also be specified via environment variable `KNOT_XRPC_EVENTS_REPLAY_BUFFER`.
243# Default value: 4096
244#events_replay_buffer = 4096
245
246# Can also be specified via environment variable `KNOT_XRPC_EVENTS_MAX_SUBSCRIBERS`.
247# Default value: 256
248#events_max_subscribers = 256
249
250# Can also be specified via environment variable `KNOT_XRPC_EVENTS_MAX_PER_PEER`.
251# Default value: 8
252#events_max_per_peer = 8
253
254[maintenance]
255# Can also be specified via environment variable `KNOT_MAINTENANCE_ENABLED`.
256# Default value: true
257#enabled = true
258
259# Can also be specified via environment variable `KNOT_MAINTENANCE_COMMIT_GRAPH`.
260# Default value: true
261#commit_graph = true
262
263# Can also be specified via environment variable `KNOT_MAINTENANCE_INTERVAL_SECS`.
264# Default value: 21600
265#interval_secs = 21600
266
267# Can also be specified via environment variable `KNOT_MAINTENANCE_REPACK_MAX_OBJECTS`.
268# Default value: 5000000
269#repack_max_objects = 5000000
270
271# Can also be specified via environment variable `KNOT_MAINTENANCE_PRUNE_GRACE_SECS`.
272# Default value: 1209600
273#prune_grace_secs = 1209600
274
275# Can also be specified via environment variable `KNOT_MAINTENANCE_REFLOG_EXPIRE_SECS`.
276# Default value: 7776000
277#reflog_expire_secs = 7776000
278
279# Can also be specified via environment variable `KNOT_MAINTENANCE_LARGE_PUSH_BYTES`.
280# Default value: 52428800
281#large_push_bytes = 52428800