veilid/doc/config/veilid-server-config.md
2023-05-06 21:09:40 -04:00

6.6 KiB

title keywords status
Veilid Server Configuration
config
veilid-server
Draft

Veilid Server Configuration

Configuration File

veilid-server may be run using configuration from both command-line arguments and the veilid-server.conf file.

Global Directives

Directive Description
daemon Run veilid-server in the background
client_api
auto_attach
logging
testing
core

daemon

daemon:
    enabled: false

client_api

client_api:
    enabled: true
    listen_address: 'localhost:5959'
Parameter Description
enabled
listen_address

client_api:enabled

TODO

client_api:listen_address

TODO

auto_attach

auto_attach: true

logging

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'
Parameter Description
system
terminal
file
api
otlp

logging:system

system:
    enabled: false
    level: 'info'

logging:terminal

terminal:
    enabled: true
    level: 'info'

logging:file

file: 
    enabled: false
    path: ''
    append: true
    level: 'info'

logging:api

api:
    enabled: true
    level: 'info'

logging:otlp

otlp:
    enabled: false
    level: 'trace'
    grpc_endpoint: 'localhost:4317'

testing

testing:
    subnode_index: 0

core

Parameter Description
protected_store
table_store
block_store
network

core:protected_store

protected_store:
    allow_insecure_fallback: true
    always_use_insecure_storage: true
    insecure_fallback_directory: '%INSECURE_FALLBACK_DIRECTORY%'
    delete: false

core:table_store

table_store:
    directory: '%TABLE_STORE_DIRECTORY%'
    delete: false

core:block_store

block_store:
    directory: '%BLOCK_STORE_DIRECTORY%'
    delete: false

core:network

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
routing_table
rpc
dht
tls
application
protocol

core:network:routing_table

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

rpc: 
    concurrency: 0
    queue_size: 1024
    max_timestamp_behind_ms: 10000
    max_timestamp_ahead_ms: 10000
    timeout_ms: 5000
    max_route_hop_count: 4
    default_route_hop_count: 1

core:network:dht

dht:
    max_find_node_count: 20
    resolve_node_timeout_ms: 10000
    resolve_node_count: 1
    resolve_node_fanout: 4
    get_value_timeout_ms: 10000
    get_value_count: 3
    get_value_fanout: 4
    set_value_timeout_ms: 10000
    set_value_count: 5
    set_value_fanout: 4
    min_peer_count: 20
    min_peer_refresh_time_ms: 2000
    validate_dial_info_receipt_time_ms: 2000
    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

tls:
    certificate_path: '%CERTIFICATE_PATH%'
    private_key_path: '%PRIVATE_KEY_PATH%'
    connection_initial_timeout_ms: 2000

core:network:application

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

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: ''