This repository has no description
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_LISTEN_RATE_LIMIT_PER_SECOND`.
27# Default value: 50
28#listen_rate_limit_per_second = 50
29
30# Can also be specified via environment variable `KNOT_LISTEN_RATE_LIMIT_BURST`.
31# Default value: 200
32#listen_rate_limit_burst = 200
33
34# Can also be specified via environment variable `KNOT_LISTEN_MAX_INFLIGHT_REQUESTS`.
35# Default value: 1024
36#listen_max_inflight_requests = 1024
37
38# Can also be specified via environment variable `KNOT_LISTEN_REQUEST_TIMEOUT_MS`.
39# Default value: 60000
40#listen_request_timeout_ms = 60000
41
42# Can also be specified via environment variable `KNOT_LISTEN_BODY_TIMEOUT_MS`.
43# Default value: 30000
44#listen_body_timeout_ms = 30000
45
46# Can also be specified via environment variable `KNOT_LISTEN_WRITE_REQUEST_TIMEOUT_MS`.
47# Default value: 1800000
48#listen_write_request_timeout_ms = 1800000
49
50# Can also be specified via environment variable `KNOT_INTERNAL_LISTEN_ADDR`.
51# Default value: "[::1]:5444"
52#internal_listen_addr = "[::1]:5444"
53
54# Can also be specified via environment variable `KNOT_SSH_LISTEN_ADDR`.
55# Default value: "[::]:2222"
56#ssh_listen_addr = "[::]:2222"
57
58# Can also be specified via environment variable `KNOT_SSH_HOST_KEY_FILE`.
59# Required! This value must be specified.
60#ssh_host_key_file =
61
62# Can also be specified via environment variable `KNOT_SSH_MAX_PACK_BYTES`.
63# Default value: 8589934592
64#ssh_max_pack_bytes = 8589934592
65
66# Can also be specified via environment variable `KNOT_APPVIEW_ENDPOINT`.
67# Default value: "https://tangled.org"
68#appview_endpoint = "https://tangled.org"
69
70[tls]
71# Can also be specified via environment variable `KNOT_TLS_CERT_PATH`.
72#cert_path =
73
74# Can also be specified via environment variable `KNOT_TLS_KEY_PATH`.
75#key_path =
76
77# Can also be specified via environment variable `KNOT_TLS_HTTP3`.
78# Default value: true
79#http3 = true
80
81# Can also be specified via environment variable `KNOT_TLS_ACME_ENABLED`.
82# Default value: false
83#acme_enabled = false
84
85# Can also be specified via environment variable `KNOT_TLS_ACME_CACHE_DIR`.
86#acme_cache_dir =
87
88# Can also be specified via environment variable `KNOT_TLS_ACME_CONTACT`.
89#acme_contact =
90
91# Can also be specified via environment variable `KNOT_TLS_ACME_STAGING`.
92# Default value: false
93#acme_staging = false
94
95# Can also be specified via environment variable `KNOT_TLS_MTLS_ENABLED`.
96# Default value: false
97#mtls_enabled = false
98
99# Can also be specified via environment variable `KNOT_TLS_MTLS_CLIENT_CA_PATH`.
100#mtls_client_ca_path =
101
102# Can also be specified via environment variable `KNOT_TLS_MTLS_ADMIN_SPKI_PIN`.
103#mtls_admin_spki_pin =
104
105[acl]
106# Can also be specified via environment variable `KNOT_ADMISSION`.
107# Default value: "closed"
108#admission = "closed"
109
110# Can also be specified via environment variable `KNOT_LEGACY_ADMIN_SECRET_ENV`.
111#legacy_admin_secret_env =
112
113[repo]
114# Can also be specified via environment variable `KNOT_SCAN_PATH`.
115# Required! This value must be specified.
116#scan_path =
117
118# Can also be specified via environment variable `KNOT_DEFAULT_BRANCH`.
119# Default value: "main"
120#default_branch = "main"
121
122[git]
123# Committer identity stamped on merge commits the knot creates.
124#
125# Can also be specified via environment variable `KNOT_GIT_USER_NAME`.
126#
127# Default value: "Tangled"
128#user_name = "Tangled"
129
130# Can also be specified via environment variable `KNOT_GIT_USER_EMAIL`.
131# Default value: "noreply@tangled.sh"
132#user_email = "noreply@tangled.sh"
133
134# Can also be specified via environment variable `KNOT_GIT_OBJECT_FORMAT`.
135# Default value: "sha256"
136#object_format = "sha256"
137
138[secrets]
139# Can also be specified via environment variable `KNOT_SEALED_KEY_FILE`.
140# Required! This value must be specified.
141#sealed_key_file =
142
143# Can also be specified via environment variable `KNOT_MASTER_KEY_ENV`.
144# Required! This value must be specified.
145#master_key_env =
146
147[http]
148# Can also be specified via environment variable `KNOT_HTTP_CONNECT_TIMEOUT_MS`.
149# Default value: 5000
150#connect_timeout_ms = 5000
151
152# Can also be specified via environment variable `KNOT_HTTP_READ_TIMEOUT_MS`.
153# Default value: 30000
154#read_timeout_ms = 30000
155
156# Can also be specified via environment variable `KNOT_HTTP_REQUEST_TIMEOUT_MS`.
157# Default value: 60000
158#request_timeout_ms = 60000
159
160# Can also be specified via environment variable `KNOT_HTTP_MAX_RESPONSE_BYTES`.
161# Default value: 16777216
162#max_response_bytes = 16777216
163
164[atproto]
165# Can also be specified via environment variable `KNOT_PLC_DIRECTORY`.
166# Required! This value must be specified.
167#plc_directory =
168
169[xrpc]
170# Can also be specified via environment variable `KNOT_XRPC_MAX_BODY_BYTES`.
171# Default value: 65536
172#max_body_bytes = 65536
173
174# Can also be specified via environment variable `KNOT_XRPC_MAX_RESPONSE_BYTES`.
175# Default value: 5242880
176#max_response_bytes = 5242880
177
178# Can also be specified via environment variable `KNOT_XRPC_MAX_ARCHIVE_BYTES`.
179# Default value: 1073741824
180#max_archive_bytes = 1073741824
181
182# Can also be specified via environment variable `KNOT_XRPC_TREE_LAST_COMMIT_BUDGET_MS`.
183# Default value: 300
184#tree_last_commit_budget_ms = 300
185
186# Can also be specified via environment variable `KNOT_XRPC_BLOB_LAST_COMMIT_BUDGET_MS`.
187# Default value: 2000
188#blob_last_commit_budget_ms = 2000
189
190# Can also be specified via environment variable `KNOT_XRPC_LANGUAGES_BUDGET_MS`.
191# Default value: 1000
192#languages_budget_ms = 1000
193
194# Can also be specified via environment variable `KNOT_XRPC_LANGUAGES_PUSH_BUDGET_MS`.
195# Default value: 2000
196#languages_push_budget_ms = 2000
197
198# Body limit for the merge and mergeCheck procedures, whose patch payloads
199# routinely exceed the general XRPC body limit.
200#
201# Can also be specified via environment variable `KNOT_XRPC_MAX_PATCH_BYTES`.
202#
203# Default value: 16777216
204#max_patch_bytes = 16777216
205
206# Limit on the total decompressed size of a patch the merge procedures parse,
207# bounding binary-delta inflation and hunk expansion apart from the
208# compressed body limit above.
209#
210# Can also be specified via environment variable `KNOT_XRPC_MAX_PATCH_DECOMPRESSED_BYTES`.
211#
212# Default value: 134217728
213#max_patch_decompressed_bytes = 134217728
214
215# Can also be specified via environment variable `KNOT_XRPC_PREAUTH_BURST`.
216# Default value: 20
217#preauth_burst = 20
218
219# Can also be specified via environment variable `KNOT_XRPC_PREAUTH_REFILL_MS`.
220# Default value: 100
221#preauth_refill_ms = 100
222
223# Can also be specified via environment variable `KNOT_XRPC_PER_PEER_INFLIGHT`.
224# Default value: 8
225#per_peer_inflight = 8
226
227# Can also be specified via environment variable `KNOT_XRPC_GLOBAL_INFLIGHT`.
228# Default value: 64
229#global_inflight = 64
230
231# Can also be specified via environment variable `KNOT_XRPC_MAX_PENDING_RESERVATIONS`.
232# Default value: 256
233#max_pending_reservations = 256
234
235# Per-account limit on reserved repository keys awaiting creation, so one
236# account cannot consume the whole pending-reservation budget.
237#
238# Can also be specified via environment variable `KNOT_XRPC_PER_ACTOR_RESERVATIONS`.
239#
240# Default value: 32
241#per_actor_reservations = 32
242
243# How long a reserved repository key is held before it lapses and its
244# sealed key is reclaimed, in seconds.
245#
246# Can also be specified via environment variable `KNOT_XRPC_RESERVATION_TTL_SECS`.
247#
248# Default value: 3600
249#reservation_ttl_secs = 3600
250
251# Can also be specified via environment variable `KNOT_XRPC_FORK_MAX_PACK_BYTES`.
252# Default value: 1073741824
253#fork_max_pack_bytes = 1073741824
254
255# Can also be specified via environment variable `KNOT_XRPC_FORK_FETCH_TIMEOUT_MS`.
256# Default value: 600000
257#fork_fetch_timeout_ms = 600000
258
259# When the knot runs behind a trusted reverse proxy that terminates TLS,
260# set this to the header the proxy appends the client address to, for
261# example x-forwarded-for. The rightmost entry is used. Leave unset when
262# the knot is directly exposed so the socket peer address is used. Only set
263# this when a trusted proxy overwrites or appends the header, since a client
264# can forge it otherwise.
265#
266# Can also be specified via environment variable `KNOT_XRPC_TRUSTED_PROXY_HEADER`.
267#trusted_proxy_header =
268
269# Can also be specified via environment variable `KNOT_XRPC_EVENTS_REPLAY_BUFFER`.
270# Default value: 4096
271#events_replay_buffer = 4096
272
273# Can also be specified via environment variable `KNOT_XRPC_EVENTS_REPLAY_BYTES`.
274# Default value: 67108864
275#events_replay_bytes = 67108864
276
277# Can also be specified via environment variable `KNOT_XRPC_EVENTS_MAX_SUBSCRIBERS`.
278# Default value: 256
279#events_max_subscribers = 256
280
281# Can also be specified via environment variable `KNOT_XRPC_EVENTS_MAX_PER_PEER`.
282# Default value: 8
283#events_max_per_peer = 8
284
285[maintenance]
286# Can also be specified via environment variable `KNOT_MAINTENANCE_ENABLED`.
287# Default value: true
288#enabled = true
289
290# Can also be specified via environment variable `KNOT_MAINTENANCE_COMMIT_GRAPH`.
291# Default value: true
292#commit_graph = true
293
294# Can also be specified via environment variable `KNOT_MAINTENANCE_MULTI_PACK_INDEX`.
295# Default value: true
296#multi_pack_index = true
297
298# Can also be specified via environment variable `KNOT_MAINTENANCE_BITMAP`.
299# Default value: true
300#bitmap = true
301
302# Can also be specified via environment variable `KNOT_MAINTENANCE_INTERVAL_SECS`.
303# Default value: 21600
304#interval_secs = 21600
305
306# Can also be specified via environment variable `KNOT_MAINTENANCE_REPACK_MAX_OBJECTS`.
307# Default value: 16000000
308#repack_max_objects = 16000000
309
310# Can also be specified via environment variable `KNOT_MAINTENANCE_REPACK_GEOMETRIC_FACTOR`.
311# Default value: 2
312#repack_geometric_factor = 2
313
314# Can also be specified via environment variable `KNOT_MAINTENANCE_PRUNE_GRACE_SECS`.
315# Default value: 1209600
316#prune_grace_secs = 1209600
317
318# Can also be specified via environment variable `KNOT_MAINTENANCE_REFLOG_EXPIRE_SECS`.
319# Default value: 7776000
320#reflog_expire_secs = 7776000
321
322# Can also be specified via environment variable `KNOT_MAINTENANCE_LARGE_PUSH_BYTES`.
323# Default value: 52428800
324#large_push_bytes = 52428800
325
326[pack_cache]
327# Can also be specified via environment variable `KNOT_PACK_CACHE_ENABLED`.
328# Default value: true
329#enabled = true
330
331# Can also be specified via environment variable `KNOT_PACK_CACHE_TTL_SECS`.
332# Default value: 60
333#ttl_secs = 60
334
335# Can also be specified via environment variable `KNOT_PACK_CACHE_MAX_ENTRY_BYTES`.
336# Default value: 67108864
337#max_entry_bytes = 67108864
338
339# Can also be specified via environment variable `KNOT_PACK_CACHE_MAX_TOTAL_BYTES`.
340# Default value: 2147483648
341#max_total_bytes = 2147483648
342
343[pack]
344# Can also be specified via environment variable `KNOT_PACK_MAX_OBJECTS`.
345# Default value: 16000000
346#max_objects = 16000000
347
348# Can also be specified via environment variable `KNOT_PACK_MAX_TOTAL_BYTES`.
349# Default value: 68719476736
350#max_total_bytes = 68719476736
351
352# Can also be specified via environment variable `KNOT_PACK_SELECTION_MAX_OBJECTS`.
353# Default value: 16000000
354#selection_max_objects = 16000000
355
356# Can also be specified via environment variable `KNOT_PACK_SELECTION_TIME_BUDGET_SECS`.
357# Default value: 600
358#selection_time_budget_secs = 600
359
360[lfs]
361# Can also be specified via environment variable `KNOT_LFS_STORE_PATH`.
362#store_path =
363
364# Can also be specified via environment variable `KNOT_LFS_MAX_OBJECT_BYTES`.
365# Default value: 5368709120
366#max_object_bytes = 5368709120
367
368# Can also be specified via environment variable `KNOT_LFS_FREE_SPACE_FLOOR_BYTES`.
369# Default value: 1073741824
370#free_space_floor_bytes = 1073741824
371
372# Can also be specified via environment variable `KNOT_LFS_GC_GRACE_SECS`.
373# Default value: 1209600
374#gc_grace_secs = 1209600
375
376# Can also be specified via environment variable `KNOT_LFS_GC_INTERVAL_SECS`.
377# Default value: 21600
378#gc_interval_secs = 21600
379
380# Can also be specified via environment variable `KNOT_LFS_MAX_SSH_TRANSFERS`.
381# Default value: 16
382#max_ssh_transfers = 16
383
384# Can also be specified via environment variable `KNOT_LFS_MAX_HTTP_DOWNLOADS`.
385# Default value: 64
386#max_http_downloads = 64
387
388[resources]
389# Can also be specified via environment variable `KNOT_MAX_THREADS`.
390# Default value: 0
391#max_threads = 0
392
393# Can also be specified via environment variable `KNOT_MAX_MEMORY_BYTES`.
394# Default value: 0
395#max_memory_bytes = 0
396
397[homepage]
398# Can also be specified via environment variable `KNOT_HOMEPAGE_ENABLED`.
399# Default value: true
400#enabled = true
401
402# Can also be specified via environment variable `KNOT_HOMEPAGE_PATH`.
403#path =
404
405[ci]
406# Can also be specified via environment variable `KNOT_CI_LOGS_ADDR`.
407#logs_addr =
408
409[messages]
410[messages.push]
411# Default value: ["{knot} received {refs}."]
412#ack = ["{knot} received {refs}."]
413
414# Default value: ["", "-> Open stinky pull request for this branch:", " {url}", ""]
415#pull_request = ["", "-> Open stinky pull request for this branch:", " {url}", ""]
416
417# Default value: ["pipeline compiled with no diagnostics"]
418#pipeline_clean = ["pipeline compiled with no diagnostics"]
419
420# Default value: ["no pipelines to compile"]
421#pipeline_none = ["no pipelines to compile"]
422
423# Default value: ["-> Browse CI logs in your terminal:", " ssh -t -p {port} {host} {repo} {sha}"]
424#ci_logs = ["-> Browse CI logs in your terminal:", " ssh -t -p {port} {host} {repo} {sha}"]
425
426[messages.fetch]
427# Default value: ["Thanks for using {knot}!"]
428#motd = ["Thanks for using {knot}!"]
429
430# Default value: ["Enumerating objects: {count}, done."]
431#enumerating = ["Enumerating objects: {count}, done."]
432
433# Default value: ["Total {count}, done."]
434#total = ["Total {count}, done."]
435
436# Default value: "knot: {error}"
437#fatal = "knot: {error}"
438
439[messages.reject]
440# Default value: "refs/cobs/* and refs/hidden/* are reserved and cannot be pushed"
441#reserved_refs = "refs/cobs/* and refs/hidden/* are reserved and cannot be pushed"
442
443# Default value: "existing refs/cobs/* object cannot be modified or deleted over the wire"
444#cob_create_only = "existing refs/cobs/* object cannot be modified or deleted over the wire"
445
446# Default value: "refs/cobs/* stores append-only collaborative objects and cannot be deleted"
447#cob_delete = "refs/cobs/* stores append-only collaborative objects and cannot be deleted"
448
449# Default value: "refs/hidden/* is reserved for server-side fork staging and cannot be pushed"
450#hidden_reserved = "refs/hidden/* is reserved for server-side fork staging and cannot be pushed"
451
452# Default value: "collaborative-object verification failed: {error}"
453#cob_verification = "collaborative-object verification failed: {error}"
454
455# Default value: "reference already exists"
456#ref_exists = "reference already exists"
457
458# Default value: "stale info: old value doesn't match"
459#stale_old_value = "stale info: old value doesn't match"
460
461# Default value: "missing necessary objects"
462#missing_objects = "missing necessary objects"
463
464# Default value: "missing necessary objects for {ref}"
465#missing_objects_for = "missing necessary objects for {ref}"
466
467# Default value: "atomic transaction failed"
468#atomic_failed = "atomic transaction failed"
469
470# Default value: "atomic push aborted"
471#atomic_aborted = "atomic push aborted"
472
473# Default value: "authorization unavailable"
474#authorization_unavailable = "authorization unavailable"
475
476# Default value: "unpacker error"
477#unpacker_error = "unpacker error"
478
479# Default value: "ref snapshot unavailable"
480#ref_snapshot_unavailable = "ref snapshot unavailable"
481
482# Default value: "object migration failed"
483#object_migration_failed = "object migration failed"
484
485[messages.ssh]
486# Default value: ["Hi {user}! You're authenticated to {knot} knot.", "This knot serves git over ssh, so there's no shell here. :P", "Clone repo with: git clone {knot}:<repoDID>"]
487#greeting = ["Hi {user}! You're authenticated to {knot} knot.", "This knot serves git over ssh, so there's no shell here. :P", "Clone repo with: git clone {knot}:<repoDID>"]
488
489# Default value: "knot: unsupported command"
490#unsupported_command = "knot: unsupported command"
491
492# Default value: "knot: too many concurrent operations from your address, try again shortly"
493#too_many_operations = "knot: too many concurrent operations from your address, try again shortly"
494
495# Default value: "knot: repository not found"
496#repo_not_found = "knot: repository not found"
497
498# Default value: "knot: repository index is warming, retry shortly"
499#index_warming = "knot: repository index is warming, retry shortly"
500
501# Default value: "knot: LFS isn't enabled on this knot"
502#lfs_disabled = "knot: LFS isn't enabled on this knot"
503
504# Default value: "knot: your ssh key isn't registered to a user authorized to push here. If you offer several keys, make sure the registered one is offered first."
505#key_not_registered = "knot: your ssh key isn't registered to a user authorized to push here. If you offer several keys, make sure the registered one is offered first."
506
507# Default value: "knot: you aren't authorized to push to this repository."
508#push_denied = "knot: you aren't authorized to push to this repository."
509
510# Default value: "knot: server is shutting down"
511#shutting_down = "knot: server is shutting down"
512
513# Default value: "knot: malformed upload-archive request"
514#archive_malformed = "knot: malformed upload-archive request"
515
516# Default value: "knot: upload-archive request timed out"
517#archive_timeout = "knot: upload-archive request timed out"
518
519# Default value: "knot: upload-archive failed"
520#archive_failed = "knot: upload-archive failed"
521
522# Default value: "knot: cannot advertise refs"
523#advertise_failed = "knot: cannot advertise refs"
524
525# Default value: "knot: push exceeds configured size limit"
526#push_too_large = "knot: push exceeds configured size limit"
527
528# Default value: "knot: receive exceeded its time budget"
529#receive_deadline = "knot: receive exceeded its time budget"
530
531# Default value: "knot: malformed pack stream"
532#malformed_pack = "knot: malformed pack stream"
533
534# Default value: "knot: receive read error"
535#receive_read_error = "knot: receive read error"
536
537# Default value: "knot: receive stream ended early"
538#receive_ended_early = "knot: receive stream ended early"
539
540# Default value: "knot: receive-pack failed"
541#receive_failed = "knot: receive-pack failed"
542
543[messages.http]
544# Default value: "you aren't authorized to push to this repository"
545#push_denied = "you aren't authorized to push to this repository"
546
547# Default value: "repository not found"
548#repo_not_found = "repository not found"
549
550# Default value: "push exceeds the configured size limit"
551#push_too_large = "push exceeds the configured size limit"
552
553# Default value: "malformed pack stream: {error}"
554#malformed_pack = "malformed pack stream: {error}"
555
556# Default value: "receive stream ended early"
557#receive_ended_early = "receive stream ended early"
558
559[messages.lfs]
560# Default value: "invalid LFS oid {value}"
561#invalid_oid = "invalid LFS oid {value}"
562
563# Default value: "oid mismatch, declared {declared}, computed {computed}"
564#hash_mismatch = "oid mismatch, declared {declared}, computed {computed}"
565
566# Default value: "size mismatch, declared {declared}, received {received}"
567#size_mismatch = "size mismatch, declared {declared}, received {received}"
568
569# Default value: "object size {declared} exceeds limit {limit}"
570#size_limit_exceeded = "object size {declared} exceeds limit {limit}"
571
572# Default value: "free space {free} below floor {floor}"
573#free_space_denied = "free space {free} below floor {floor}"
574
575# Default value: "object {oid} not found"
576#not_found = "object {oid} not found"
577
578# Default value: "protocol framing fault: {detail}"
579#framing = "protocol framing fault: {detail}"
580
581# Default value: "too many {what} in one message, limit {limit}"
582#too_many = "too many {what} in one message, limit {limit}"
583
584# Default value: "unknown command {command}"
585#unknown_command = "unknown command {command}"
586
587# Default value: "unsupported version {version}"
588#unsupported_version = "unsupported version {version}"
589
590# Default value: "unsupported hash algorithm {algorithm}"
591#unsupported_hash = "unsupported hash algorithm {algorithm}"
592
593# Default value: "put-object isn't allowed on a download channel"
594#put_on_download = "put-object isn't allowed on a download channel"
595
596# Default value: "verify-object isn't allowed on a download channel"
597#verify_on_download = "verify-object isn't allowed on a download channel"
598
599# Default value: "get-object isn't allowed on an upload channel"
600#get_on_upload = "get-object isn't allowed on an upload channel"
601
602# Default value: "put-object is missing its object body"
603#put_no_body = "put-object is missing its object body"