···
-
{ config, pkgs, lib, ... }:
cfg = config.services.veilid;
···
settingsFormat = pkgs.formats.yaml { };
configFile = settingsFormat.generate "veilid-server.conf" cfg.settings;
config = mkIf cfg.enable {
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPorts = [ 5150 ];
···
before = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
restartTriggers = [ configFile ];
-
environment = { RUST_BACKTRACE = "1"; };
ExecStart = "${pkgs.veilid}/bin/veilid-server -c ${configFile}";
ExecReload = "${pkgs.coreutils}/bin/kill -s HUP $MAINPID";
···
users.groups.veilid = { };
-
environment = { systemPackages = [ pkgs.veilid ]; };
services.veilid.settings = { };
···
-
"veilid-server will respond to Python and other JSON client requests.";
ipc_directory = mkOption {
···
-
"The minimum priority of system events to be logged.";
···
-
"The minimum priority of terminal events to be logged.";
···
-
"The minimum priority of api events to be logged.";
···
type = types.listOf types.str;
-
"A list of capabilities to disable (for example, DHTV to say you cannot store DHT information).";
allow_insecure_fallback = mkOption {
-
"If we can't use system-provided secure storage, should we proceed anyway?";
always_use_insecure_storage = mkOption {
-
"Should we bypass any attempt to use system-provided secure storage?";
default = "${dataDir}/protected_store";
-
"The filesystem directory to store your protected store in.";
default = "${dataDir}/table_store";
-
"The filesystem directory to store your table store within.";
type = types.nullOr types.str;
default = "${dataDir}/block_store";
-
"The filesystem directory to store blocks for the block store.";
···
type = types.listOf types.str;
default = [ "bootstrap.veilid.net" ];
-
"Host name of existing well-known Veilid bootstrap servers for the network to connect to.";
type = lib.types.nullOr lib.types.str;
-
"Base64-encoded public key for the node, used as the node's ID.";
min_peer_count = mkOption {
-
"Minimum number of nodes to keep in the peer table.";
-
"Should the app try to improve its incoming network connectivity using UPnP?";
detect_address_changes = mkOption {
-
"Should veilid-core detect and notify on network address changes?";