veilid/doc/config/veilid-server-config.md

313 lines
6.6 KiB
Markdown
Raw Normal View History

2022-09-19 22:18:35 -04:00
---
title: Veilid Server Configuration
keywords:
- config
- veilid-server
status: Draft
---
# Veilid Server Configuration
## Configuration File
`veilid-server` may be run using configuration from both command-line arguments
and the `veilid-server.conf` file.
2022-09-19 22:41:54 -04:00
## Global Directives
2022-09-19 22:18:35 -04:00
2023-02-13 16:12:46 -05:00
| Directive | Description |
| ---------------------------- | ------------------------------------- |
| [daemon](#daemon) | Run `veilid-server` in the background |
| [client\_api](#client_api) | |
| [auto\_attach](#auto_attach) | |
| [logging](#logging) | |
| [testing](#testing) | |
| [core](#core) | |
2022-09-19 22:18:35 -04:00
2022-09-19 22:20:26 -04:00
2022-09-19 22:41:54 -04:00
### daemon
2022-09-19 22:20:26 -04:00
2022-09-19 22:18:35 -04:00
```yaml
2022-09-19 21:18:46 -04:00
daemon:
enabled: false
2022-09-19 22:41:54 -04:00
```
### client_api
```yaml
2022-09-19 21:18:46 -04:00
client_api:
enabled: true
listen_address: 'localhost:5959'
2022-09-19 22:41:54 -04:00
```
2023-02-13 16:12:46 -05:00
| Parameter | Description |
| -------------------------------------------- | ----------- |
| [enabled](#client_apienabled) | |
| [listen\_address](#client_apilisten_address) | |
2022-09-19 22:41:54 -04:00
#### client\_api:enabled
2022-09-19 22:41:54 -04:00
**TODO**
#### client\_api:listen\_address
2022-09-19 22:41:54 -04:00
**TODO**
### auto\_attach
```yaml
2022-09-19 21:18:46 -04:00
auto_attach: true
2022-09-19 22:41:54 -04:00
```
### logging
```yaml
2022-09-19 21:18:46 -04:00
logging:
system:
enabled: false
level: 'info'
terminal:
enabled: true
level: 'info'
file:
enabled: false
path: ''
append: true
level: 'info'
api:
enabled: true
level: 'info'
otlp:
enabled: false
level: 'trace'
grpc_endpoint: 'localhost:4317'
2022-09-19 22:41:54 -04:00
```
2023-02-13 16:12:46 -05:00
| Parameter | Description |
| ---------------------------- | ----------- |
| [system](#loggingsystem) | |
| [terminal](#loggingterminal) | |
| [file](#loggingfile) | |
| [api](#loggingapi) | |
| [otlp](#loggingotlp) | |
#### logging:system
```yaml
system:
enabled: false
level: 'info'
```
#### logging:terminal
```yaml
terminal:
enabled: true
level: 'info'
```
#### logging:file
```yaml
file:
enabled: false
path: ''
append: true
level: 'info'
```
#### logging:api
```yaml
api:
enabled: true
level: 'info'
```
#### logging:otlp
```yaml
otlp:
enabled: false
level: 'trace'
grpc_endpoint: 'localhost:4317'
```
2022-09-19 22:41:54 -04:00
### testing
```yaml
2022-09-19 21:18:46 -04:00
testing:
subnode_index: 0
2022-09-19 22:41:54 -04:00
```
### core
2023-02-13 16:12:46 -05:00
| Parameter | Description |
| ---------------------------------------- | ----------- |
| [protected\_store](#coreprotected_store) | |
| [table\_store](#coretable_store) | |
| [block\_store](#block_store) | |
| [network](#corenetwork) | |
#### core:protected\_store
```yaml
protected_store:
allow_insecure_fallback: true
always_use_insecure_storage: true
insecure_fallback_directory: '%INSECURE_FALLBACK_DIRECTORY%'
delete: false
```
#### core:table\_store
```yaml
table_store:
directory: '%TABLE_STORE_DIRECTORY%'
delete: false
```
#### core:block\_store
```yaml
block_store:
directory: '%BLOCK_STORE_DIRECTORY%'
delete: false
```
#### core:network
```yaml
network:
connection_initial_timeout_ms: 2000
connection_inactivity_timeout_ms: 60000
max_connections_per_ip4: 32
max_connections_per_ip6_prefix: 32
max_connections_per_ip6_prefix_size: 56
max_connection_frequency_per_min: 128
client_whitelist_timeout_ms: 300000
reverse_connection_receipt_time_ms: 5000
hole_punch_receipt_time_ms: 5000
node_id: ''
node_id_secret: ''
bootstrap: ['bootstrap.dev.veilid.net']
upnp: true
detect_address_changes: true
enable_local_peer_scope: false
restricted_nat_retries: 0
```
| Parameter | Description |
2023-02-13 16:12:46 -05:00
| ------------------------------------------- | ----------- |
| [routing\_table](#corenetworkrouting_table) | |
| [rpc](#corenetworkrpc) | |
| [dht](#corenetworkdht) | |
| [tls](#corenetworktls) | |
| [application](#corenetworkapplication) | |
| [protocol](#corenetworkprotocol) | |
#### core:network:routing\_table
```yaml
routing_table:
limit_over_attached: 64
limit_fully_attached: 32
limit_attached_strong: 16
limit_attached_good: 8
limit_attached_weak: 4
```
#### core:network:rpc
```yaml
rpc:
concurrency: 0
queue_size: 1024
max_timestamp_behind_ms: 10000
max_timestamp_ahead_ms: 10000
2023-04-23 14:10:17 -04:00
timeout_ms: 5000
2022-10-16 19:59:59 -04:00
max_route_hop_count: 4
2022-11-21 22:50:42 -05:00
default_route_hop_count: 1
```
#### core:network:dht
2022-09-19 22:41:54 -04:00
```yaml
dht:
2023-04-23 14:10:17 -04:00
resolve_node_timeout_ms: 10000
resolve_node_count: 20
resolve_node_fanout: 3
max_find_node_count: 20
2023-04-23 14:10:17 -04:00
get_value_timeout_ms: 10000
get_value_count: 20
get_value_fanout: 3
2023-04-23 14:10:17 -04:00
set_value_timeout_ms: 10000
set_value_count: 20
set_value_fanout: 5
min_peer_count: 20
min_peer_refresh_time_ms: 2000
validate_dial_info_receipt_time_ms: 2000
2023-04-23 14:10:17 -04:00
local_subkey_cache_size: 128
local_max_subkey_cache_memory_mb: 256
remote_subkey_cache_size: 1024
remote_max_records: 65536
remote_max_subkey_cache_memory_mb: %REMOTE_MAX_SUBKEY_CACHE_MEMORY_MB%
remote_max_storage_space_mb: 0
```
#### core:network:tls
```yaml
tls:
certificate_path: '%CERTIFICATE_PATH%'
private_key_path: '%PRIVATE_KEY_PATH%'
connection_initial_timeout_ms: 2000
```
#### core:network:application
```yaml
application:
https:
enabled: false
listen_address: ':5150'
path: 'app'
# url: 'https://localhost:5150'
http:
enabled: false
listen_address: ':5150'
path: 'app'
# url: 'http://localhost:5150'
```
#### core:network:protocol
```yaml
protocol:
udp:
enabled: true
socket_pool_size: 0
listen_address: ':5150'
# public_address: ''
tcp:
connect: true
listen: true
max_connections: 32
listen_address: ':5150'
#'public_address: ''
ws:
connect: true
listen: true
max_connections: 16
listen_address: ':5150'
path: 'ws'
# url: 'ws://localhost:5150/ws'
wss:
connect: true
listen: false
max_connections: 16
listen_address: ':5150'
path: 'ws'
# url: ''
2022-09-19 22:18:35 -04:00
```