diff --git a/.gitignore b/.gitignore index 22282470..44ae98d5 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,3 @@ $RECYCLE.BIN/ ### Rust target/ logs/ - diff --git a/README.md b/README.md index 6ad68114..5e77285c 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,9 @@ cd veilid-flutter **TODO** -## Veilid Server +## Running the Application(s) + +### Veilid Server In order to run the `veilid-server` locally: @@ -144,7 +146,7 @@ In order to see what options are available: cargo run -- --help ``` -## Veilid CLI +### Veilid CLI In order to connect to your local `veilid-server`: @@ -158,3 +160,28 @@ Similar to `veilid-server`, you may see CLI options by typing: ```shell cargo run -- --help ``` + +## Building the Application + +### Linux Packages + +Veilid server and cli can be built locally using the +[Earthly](https://earthly.dev/) framework. After [installing earthly on your +local machine](https://earthly.dev/get-earthly), you may use the `earthly` cli +to initiate a build: + +```shell +earthly +package-linux +``` + +This will assemble all dependencies and build `.deb` packages for both amd64 and +arm64 platforms. Earthly, built on Docker, caches build layers, so after a +longer first build, subsequent builds should be much quicker. + +During development, you may want to kick off specific build steps. To see a list +of the build steps configured, consult the `Earthfile`, or you may use the +`earthly` cli: + +```shell +earthly ls +``` diff --git a/veilid-core/src/veilid_config.rs b/veilid-core/src/veilid_config.rs index e8769776..dad9f8ae 100644 --- a/veilid-core/src/veilid_config.rs +++ b/veilid-core/src/veilid_config.rs @@ -333,6 +333,9 @@ pub struct VeilidConfigInner { pub network: VeilidConfigNetwork, } +/// The Veilid Configuration +/// +/// Veilid is configured #[derive(Clone)] pub struct VeilidConfig { inner: Arc>, diff --git a/veilid-server/sample.config b/veilid-server/sample.config new file mode 100644 index 00000000..3c7a4950 --- /dev/null +++ b/veilid-server/sample.config @@ -0,0 +1,127 @@ +daemon: + enabled: false +client_api: + enabled: true + listen_address: 'localhost:5959' +auto_attach: true +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' +testing: + subnode_index: 0 +core: + protected_store: + allow_insecure_fallback: true + always_use_insecure_storage: true + insecure_fallback_directory: '%INSECURE_FALLBACK_DIRECTORY%' + delete: false + table_store: + directory: '%TABLE_STORE_DIRECTORY%' + delete: false + block_store: + directory: '%BLOCK_STORE_DIRECTORY%' + delete: false + 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'] + bootstrap_nodes: [] + routing_table: + limit_over_attached: 64 + limit_fully_attached: 32 + limit_attached_strong: 16 + limit_attached_good: 8 + limit_attached_weak: 4 + rpc: + concurrency: 0 + queue_size: 1024 + max_timestamp_behind_ms: 10000 + max_timestamp_ahead_ms: 10000 + timeout_ms: 10000 + max_route_hop_count: 7 + dht: + resolve_node_timeout: + resolve_node_count: 20 + resolve_node_fanout: 3 + max_find_node_count: 20 + get_value_timeout: + get_value_count: 20 + get_value_fanout: 3 + set_value_timeout: + 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 + upnp: true + natpmp: false + detect_address_changes: true + enable_local_peer_scope: false + restricted_nat_retries: 0 + tls: + certificate_path: '%CERTIFICATE_PATH%' + private_key_path: '%PRIVATE_KEY_PATH%' + connection_initial_timeout_ms: 2000 + 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' + 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: '' + diff --git a/veilid-server/src/unix.rs b/veilid-server/src/unix.rs index f3374823..fe66e943 100644 --- a/veilid-server/src/unix.rs +++ b/veilid-server/src/unix.rs @@ -26,6 +26,7 @@ async fn handle_signals(mut signals: Signals) { } } +#[warn(missing_docs)] #[instrument(err)] pub fn run_daemon(settings: Settings, _matches: ArgMatches) -> EyreResult<()> { let daemon = {