|
@@ -37,319 +37,328 @@ import (
|
|
|
"github.com/mudler/edgevpn/pkg/logger"
|
|
|
node "github.com/mudler/edgevpn/pkg/node"
|
|
|
"github.com/mudler/edgevpn/pkg/vpn"
|
|
|
- "github.com/urfave/cli"
|
|
|
+ "github.com/urfave/cli/v2"
|
|
|
)
|
|
|
|
|
|
var CommonFlags []cli.Flag = []cli.Flag{
|
|
|
&cli.StringFlag{
|
|
|
- Name: "config",
|
|
|
- Usage: "Specify a path to a edgevpn config file",
|
|
|
- EnvVar: "EDGEVPNCONFIG",
|
|
|
+ Name: "config",
|
|
|
+ Usage: "Specify a path to a edgevpn config file",
|
|
|
+ EnvVars: []string{"EDGEVPNCONFIG"},
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "timeout",
|
|
|
- Usage: "Specify a default timeout for connection stream",
|
|
|
- EnvVar: "EDGEVPNTIMEOUT",
|
|
|
- Value: "15s",
|
|
|
+ Name: "timeout",
|
|
|
+ Usage: "Specify a default timeout for connection stream",
|
|
|
+ EnvVars: []string{"EDGEVPNTIMEOUT"},
|
|
|
+ Value: "15s",
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "mtu",
|
|
|
- Usage: "Specify a mtu",
|
|
|
- EnvVar: "EDGEVPNMTU",
|
|
|
- Value: 1200,
|
|
|
+ Name: "mtu",
|
|
|
+ Usage: "Specify a mtu",
|
|
|
+ EnvVars: []string{"EDGEVPNMTU"},
|
|
|
+ Value: 1200,
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "bootstrap-iface",
|
|
|
- Usage: "Setup interface on startup (need privileges)",
|
|
|
- EnvVar: "EDGEVPNBOOTSTRAPIFACE",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "bootstrap-iface",
|
|
|
+ Usage: "Setup interface on startup (need privileges)",
|
|
|
+ EnvVars: []string{"EDGEVPNBOOTSTRAPIFACE"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "packet-mtu",
|
|
|
- Usage: "Specify a mtu",
|
|
|
- EnvVar: "EDGEVPNPACKETMTU",
|
|
|
- Value: 1420,
|
|
|
+ Name: "packet-mtu",
|
|
|
+ Usage: "Specify a mtu",
|
|
|
+ EnvVars: []string{"EDGEVPNPACKETMTU"},
|
|
|
+ Value: 1420,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "channel-buffer-size",
|
|
|
- Usage: "Specify a channel buffer size",
|
|
|
- EnvVar: "EDGEVPNCHANNELBUFFERSIZE",
|
|
|
- Value: 0,
|
|
|
+ Name: "channel-buffer-size",
|
|
|
+ Usage: "Specify a channel buffer size",
|
|
|
+ EnvVars: []string{"EDGEVPNCHANNELBUFFERSIZE"},
|
|
|
+ Value: 0,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "discovery-interval",
|
|
|
- Usage: "DHT discovery interval time",
|
|
|
- EnvVar: "EDGEVPNDHTINTERVAL",
|
|
|
- Value: 720,
|
|
|
+ Name: "discovery-interval",
|
|
|
+ Usage: "DHT discovery interval time",
|
|
|
+ EnvVars: []string{"EDGEVPNDHTINTERVAL"},
|
|
|
+ Value: 720,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "ledger-announce-interval",
|
|
|
- Usage: "Ledger announce interval time",
|
|
|
- EnvVar: "EDGEVPNLEDGERINTERVAL",
|
|
|
- Value: 10,
|
|
|
+ Name: "ledger-announce-interval",
|
|
|
+ Usage: "Ledger announce interval time",
|
|
|
+ EnvVars: []string{"EDGEVPNLEDGERINTERVAL"},
|
|
|
+ Value: 10,
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "autorelay-discovery-interval",
|
|
|
- Usage: "Autorelay discovery interval",
|
|
|
- EnvVar: "EDGEVPNAUTORELAYDISCOVERYINTERVAL",
|
|
|
- Value: "5m",
|
|
|
+ Name: "autorelay-discovery-interval",
|
|
|
+ Usage: "Autorelay discovery interval",
|
|
|
+ EnvVars: []string{"EDGEVPNAUTORELAYDISCOVERYINTERVAL"},
|
|
|
+ Value: "5m",
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "autorelay-static-only",
|
|
|
- Usage: "Use only defined static relays",
|
|
|
- EnvVar: "EDGEVPNAUTORELAYSTATICONLY",
|
|
|
+ Name: "autorelay-static-only",
|
|
|
+ Usage: "Use only defined static relays",
|
|
|
+ EnvVars: []string{"EDGEVPNAUTORELAYSTATICONLY"},
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "ledger-syncronization-interval",
|
|
|
- Usage: "Ledger syncronization interval time",
|
|
|
- EnvVar: "EDGEVPNLEDGERSYNCINTERVAL",
|
|
|
- Value: 10,
|
|
|
+ Name: "ledger-syncronization-interval",
|
|
|
+ Usage: "Ledger syncronization interval time",
|
|
|
+ EnvVars: []string{"EDGEVPNLEDGERSYNCINTERVAL"},
|
|
|
+ Value: 10,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "nat-ratelimit-global",
|
|
|
- Usage: "Rate limit global requests",
|
|
|
- EnvVar: "EDGEVPNNATRATELIMITGLOBAL",
|
|
|
- Value: 10,
|
|
|
+ Name: "nat-ratelimit-global",
|
|
|
+ Usage: "Rate limit global requests",
|
|
|
+ EnvVars: []string{"EDGEVPNNATRATELIMITGLOBAL"},
|
|
|
+ Value: 10,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "nat-ratelimit-peer",
|
|
|
- Usage: "Rate limit perr requests",
|
|
|
- EnvVar: "EDGEVPNNATRATELIMITPEER",
|
|
|
- Value: 10,
|
|
|
+ Name: "nat-ratelimit-peer",
|
|
|
+ Usage: "Rate limit perr requests",
|
|
|
+ EnvVars: []string{"EDGEVPNNATRATELIMITPEER"},
|
|
|
+ Value: 10,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "nat-ratelimit-interval",
|
|
|
- Usage: "Rate limit interval",
|
|
|
- EnvVar: "EDGEVPNNATRATELIMITINTERVAL",
|
|
|
- Value: 60,
|
|
|
+ Name: "nat-ratelimit-interval",
|
|
|
+ Usage: "Rate limit interval",
|
|
|
+ EnvVars: []string{"EDGEVPNNATRATELIMITINTERVAL"},
|
|
|
+ Value: 60,
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "nat-ratelimit",
|
|
|
- Usage: "Changes the default rate limiting configured in helping other peers determine their reachability status",
|
|
|
- EnvVar: "EDGEVPNNATRATELIMIT",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "nat-ratelimit",
|
|
|
+ Usage: "Changes the default rate limiting configured in helping other peers determine their reachability status",
|
|
|
+ EnvVars: []string{"EDGEVPNNATRATELIMIT"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "max-connections",
|
|
|
- Usage: "Max connections",
|
|
|
- EnvVar: "EDGEVPNMAXCONNS",
|
|
|
- Value: 0,
|
|
|
+ Name: "max-connections",
|
|
|
+ Usage: "Max connections",
|
|
|
+ EnvVars: []string{"EDGEVPNMAXCONNS"},
|
|
|
+ Value: 0,
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "ledger-state",
|
|
|
- Usage: "Specify a ledger state directory",
|
|
|
- EnvVar: "EDGEVPNLEDGERSTATE",
|
|
|
+ Name: "ledger-state",
|
|
|
+ Usage: "Specify a ledger state directory",
|
|
|
+ EnvVars: []string{"EDGEVPNLEDGERSTATE"},
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "mdns",
|
|
|
- Usage: "Enable mDNS for peer discovery",
|
|
|
- EnvVar: "EDGEVPNMDNS",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "mdns",
|
|
|
+ Usage: "Enable mDNS for peer discovery",
|
|
|
+ EnvVars: []string{"EDGEVPNMDNS"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "autorelay",
|
|
|
- Usage: "Automatically act as a relay if the node can accept inbound connections",
|
|
|
- EnvVar: "EDGEVPNAUTORELAY",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "autorelay",
|
|
|
+ Usage: "Automatically act as a relay if the node can accept inbound connections",
|
|
|
+ EnvVars: []string{"EDGEVPNAUTORELAY"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
Name: "concurrency",
|
|
|
Usage: "Number of concurrent requests to serve",
|
|
|
Value: runtime.NumCPU(),
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "holepunch",
|
|
|
- Usage: "Automatically try holepunching when possible",
|
|
|
- EnvVar: "EDGEVPNHOLEPUNCH",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "holepunch",
|
|
|
+ Usage: "Automatically try holepunching when possible",
|
|
|
+ EnvVars: []string{"EDGEVPNHOLEPUNCH"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "natservice",
|
|
|
- Usage: "Tries to determine reachability status of nodes",
|
|
|
- EnvVar: "EDGEVPNNATSERVICE",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "natservice",
|
|
|
+ Usage: "Tries to determine reachability status of nodes",
|
|
|
+ EnvVars: []string{"EDGEVPNNATSERVICE"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "natmap",
|
|
|
- Usage: "Tries to open a port in the firewall via upnp",
|
|
|
- EnvVar: "EDGEVPNNATMAP",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "natmap",
|
|
|
+ Usage: "Tries to open a port in the firewall via upnp",
|
|
|
+ EnvVars: []string{"EDGEVPNNATMAP"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
- &cli.BoolTFlag{
|
|
|
- Name: "dht",
|
|
|
- Usage: "Enable DHT for peer discovery",
|
|
|
- EnvVar: "EDGEVPNDHT",
|
|
|
+ &cli.BoolFlag{
|
|
|
+ Name: "dht",
|
|
|
+ Usage: "Enable DHT for peer discovery",
|
|
|
+ EnvVars: []string{"EDGEVPNDHT"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "low-profile",
|
|
|
- Usage: "Enable low profile. Lowers connections usage",
|
|
|
- EnvVar: "EDGEVPNLOWPROFILE",
|
|
|
+ Name: "low-profile",
|
|
|
+ Usage: "Enable low profile. Lowers connections usage",
|
|
|
+ EnvVars: []string{"EDGEVPNLOWPROFILE"},
|
|
|
+ Value: true,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "aliveness-healthcheck-interval",
|
|
|
- Usage: "Healthcheck interval",
|
|
|
- EnvVar: "HEALTHCHECKINTERVAL",
|
|
|
- Value: 120,
|
|
|
+ Name: "aliveness-healthcheck-interval",
|
|
|
+ Usage: "Healthcheck interval",
|
|
|
+ EnvVars: []string{"HEALTHCHECKINTERVAL"},
|
|
|
+ Value: 120,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "aliveness-healthcheck-scrub-interval",
|
|
|
- Usage: "Healthcheck scrub interval",
|
|
|
- EnvVar: "HEALTHCHECKSCRUBINTERVAL",
|
|
|
- Value: 600,
|
|
|
+ Name: "aliveness-healthcheck-scrub-interval",
|
|
|
+ Usage: "Healthcheck scrub interval",
|
|
|
+ EnvVars: []string{"HEALTHCHECKSCRUBINTERVAL"},
|
|
|
+ Value: 600,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "aliveness-healthcheck-max-interval",
|
|
|
- Usage: "Healthcheck max interval. Threshold after a node is determined offline",
|
|
|
- EnvVar: "HEALTHCHECKMAXINTERVAL",
|
|
|
- Value: 900,
|
|
|
+ Name: "aliveness-healthcheck-max-interval",
|
|
|
+ Usage: "Healthcheck max interval. Threshold after a node is determined offline",
|
|
|
+ EnvVars: []string{"HEALTHCHECKMAXINTERVAL"},
|
|
|
+ Value: 900,
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "log-level",
|
|
|
- Usage: "Specify loglevel",
|
|
|
- EnvVar: "EDGEVPNLOGLEVEL",
|
|
|
- Value: "info",
|
|
|
+ Name: "log-level",
|
|
|
+ Usage: "Specify loglevel",
|
|
|
+ EnvVars: []string{"EDGEVPNLOGLEVEL"},
|
|
|
+ Value: "info",
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "libp2p-log-level",
|
|
|
- Usage: "Specify libp2p loglevel",
|
|
|
- EnvVar: "EDGEVPNLIBP2PLOGLEVEL",
|
|
|
- Value: "fatal",
|
|
|
+ Name: "libp2p-log-level",
|
|
|
+ Usage: "Specify libp2p loglevel",
|
|
|
+ EnvVars: []string{"EDGEVPNLIBP2PLOGLEVEL"},
|
|
|
+ Value: "fatal",
|
|
|
},
|
|
|
&cli.StringSliceFlag{
|
|
|
- Name: "discovery-bootstrap-peers",
|
|
|
- Usage: "List of discovery peers to use",
|
|
|
- EnvVar: "EDGEVPNBOOTSTRAPPEERS",
|
|
|
+ Name: "discovery-bootstrap-peers",
|
|
|
+ Usage: "List of discovery peers to use",
|
|
|
+ EnvVars: []string{"EDGEVPNBOOTSTRAPPEERS"},
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "connection-high-water",
|
|
|
- Usage: "max number of connection allowed",
|
|
|
- EnvVar: "EDGEVPN_CONNECTION_HIGH_WATER",
|
|
|
- Value: 0,
|
|
|
+ Name: "connection-high-water",
|
|
|
+ Usage: "max number of connection allowed",
|
|
|
+ EnvVars: []string{"EDGEVPN_CONNECTION_HIGH_WATER"},
|
|
|
+ Value: 0,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "connection-low-water",
|
|
|
- Usage: "low number of connection allowed",
|
|
|
- EnvVar: "EDGEVPN_CONNECTION_LOW_WATER",
|
|
|
- Value: 0,
|
|
|
+ Name: "connection-low-water",
|
|
|
+ Usage: "low number of connection allowed",
|
|
|
+ EnvVars: []string{"EDGEVPN_CONNECTION_LOW_WATER"},
|
|
|
+ Value: 0,
|
|
|
},
|
|
|
&cli.StringSliceFlag{
|
|
|
- Name: "autorelay-static-peer",
|
|
|
- Usage: "List of autorelay static peers to use",
|
|
|
- EnvVar: "EDGEVPNAUTORELAYPEERS",
|
|
|
+ Name: "autorelay-static-peer",
|
|
|
+ Usage: "List of autorelay static peers to use",
|
|
|
+ EnvVars: []string{"EDGEVPNAUTORELAYPEERS"},
|
|
|
},
|
|
|
&cli.StringSliceFlag{
|
|
|
- Name: "blacklist",
|
|
|
- Usage: "List of peers/cidr to gate",
|
|
|
- EnvVar: "EDGEVPNBLACKLIST",
|
|
|
+ Name: "blacklist",
|
|
|
+ Usage: "List of peers/cidr to gate",
|
|
|
+ EnvVars: []string{"EDGEVPNBLACKLIST"},
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "token",
|
|
|
- Usage: "Specify an edgevpn token in place of a config file",
|
|
|
- EnvVar: "EDGEVPNTOKEN",
|
|
|
+ Name: "token",
|
|
|
+ Usage: "Specify an edgevpn token in place of a config file",
|
|
|
+ EnvVars: []string{"EDGEVPNTOKEN"},
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "limit-enable",
|
|
|
- Usage: "Enable resource management",
|
|
|
- EnvVar: "LIMITENABLE",
|
|
|
+ Name: "limit-enable",
|
|
|
+ Usage: "Enable resource management",
|
|
|
+ EnvVars: []string{"LIMITENABLE"},
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "limit-file",
|
|
|
- Usage: "Specify a resource limit config (json)",
|
|
|
- EnvVar: "LIMITFILE",
|
|
|
+ Name: "limit-file",
|
|
|
+ Usage: "Specify a resource limit config (json)",
|
|
|
+ EnvVars: []string{"LIMITFILE"},
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "limit-scope",
|
|
|
- Usage: "Specify a limit scope",
|
|
|
- EnvVar: "LIMITSCOPE",
|
|
|
- Value: "system",
|
|
|
+ Name: "limit-scope",
|
|
|
+ Usage: "Specify a limit scope",
|
|
|
+ EnvVars: []string{"LIMITSCOPE"},
|
|
|
+ Value: "system",
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "limit-config-streams",
|
|
|
- Usage: "Streams resource limit configuration",
|
|
|
- EnvVar: "LIMITCONFIGSTREAMS",
|
|
|
- Value: 200,
|
|
|
+ Name: "limit-config-streams",
|
|
|
+ Usage: "Streams resource limit configuration",
|
|
|
+ EnvVars: []string{"LIMITCONFIGSTREAMS"},
|
|
|
+ Value: 200,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "limit-config-streams-inbound",
|
|
|
- Usage: "Inbound streams resource limit configuration",
|
|
|
- EnvVar: "LIMITCONFIGSTREAMSINBOUND",
|
|
|
- Value: 30,
|
|
|
+ Name: "limit-config-streams-inbound",
|
|
|
+ Usage: "Inbound streams resource limit configuration",
|
|
|
+ EnvVars: []string{"LIMITCONFIGSTREAMSINBOUND"},
|
|
|
+ Value: 30,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "limit-config-streams-outbound",
|
|
|
- Usage: "Outbound streams resource limit configuration",
|
|
|
- EnvVar: "LIMITCONFIGSTREAMSOUTBOUND",
|
|
|
- Value: 30,
|
|
|
+ Name: "limit-config-streams-outbound",
|
|
|
+ Usage: "Outbound streams resource limit configuration",
|
|
|
+ EnvVars: []string{"LIMITCONFIGSTREAMSOUTBOUND"},
|
|
|
+ Value: 30,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "limit-config-conn",
|
|
|
- Usage: "Connections resource limit configuration",
|
|
|
- EnvVar: "LIMITCONFIGCONNS",
|
|
|
- Value: 200,
|
|
|
+ Name: "limit-config-conn",
|
|
|
+ Usage: "Connections resource limit configuration",
|
|
|
+ EnvVars: []string{"LIMITCONFIGCONNS"},
|
|
|
+ Value: 200,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "limit-config-conn-inbound",
|
|
|
- Usage: "Inbound connections resource limit configuration",
|
|
|
- EnvVar: "LIMITCONFIGCONNSINBOUND",
|
|
|
- Value: 30,
|
|
|
+ Name: "limit-config-conn-inbound",
|
|
|
+ Usage: "Inbound connections resource limit configuration",
|
|
|
+ EnvVars: []string{"LIMITCONFIGCONNSINBOUND"},
|
|
|
+ Value: 30,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "limit-config-conn-outbound",
|
|
|
- Usage: "Outbound connections resource limit configuration",
|
|
|
- EnvVar: "LIMITCONFIGCONNSOUTBOUND",
|
|
|
- Value: 30,
|
|
|
+ Name: "limit-config-conn-outbound",
|
|
|
+ Usage: "Outbound connections resource limit configuration",
|
|
|
+ EnvVars: []string{"LIMITCONFIGCONNSOUTBOUND"},
|
|
|
+ Value: 30,
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "limit-config-fd",
|
|
|
- Usage: "Max fd resource limit configuration",
|
|
|
- EnvVar: "LIMITCONFIGFD",
|
|
|
- Value: 30,
|
|
|
+ Name: "limit-config-fd",
|
|
|
+ Usage: "Max fd resource limit configuration",
|
|
|
+ EnvVars: []string{"LIMITCONFIGFD"},
|
|
|
+ Value: 30,
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "peerguard",
|
|
|
- Usage: "Enable peerguard. (Experimental)",
|
|
|
- EnvVar: "PEERGUARD",
|
|
|
+ Name: "peerguard",
|
|
|
+ Usage: "Enable peerguard. (Experimental)",
|
|
|
+ EnvVars: []string{"PEERGUARD"},
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "privkey-cache",
|
|
|
- Usage: "Enable privkey caching. (Experimental)",
|
|
|
- EnvVar: "EDGEVPNPRIVKEYCACHE",
|
|
|
+ Name: "privkey-cache",
|
|
|
+ Usage: "Enable privkey caching. (Experimental)",
|
|
|
+ EnvVars: []string{"EDGEVPNPRIVKEYCACHE"},
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "privkey-cache-dir",
|
|
|
- Usage: "Specify a directory used to store the generated privkey",
|
|
|
- EnvVar: "EDGEVPNPRIVKEYCACHEDIR",
|
|
|
- Value: stateDir(),
|
|
|
+ Name: "privkey-cache-dir",
|
|
|
+ Usage: "Specify a directory used to store the generated privkey",
|
|
|
+ EnvVars: []string{"EDGEVPNPRIVKEYCACHEDIR"},
|
|
|
+ Value: stateDir(),
|
|
|
},
|
|
|
&cli.StringSliceFlag{
|
|
|
- Name: "static-peertable",
|
|
|
- Usage: "List of static peers to use (in `ip:peerid` format)",
|
|
|
- EnvVar: "EDGEVPNSTATICPEERTABLE",
|
|
|
+ Name: "static-peertable",
|
|
|
+ Usage: "List of static peers to use (in `ip:peerid` format)",
|
|
|
+ EnvVars: []string{"EDGEVPNSTATICPEERTABLE"},
|
|
|
},
|
|
|
&cli.StringSliceFlag{
|
|
|
- Name: "whitelist",
|
|
|
- Usage: "List of peers in the whitelist",
|
|
|
- EnvVar: "EDGEVPNWHITELIST",
|
|
|
+ Name: "whitelist",
|
|
|
+ Usage: "List of peers in the whitelist",
|
|
|
+ EnvVars: []string{"EDGEVPNWHITELIST"},
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "peergate",
|
|
|
- Usage: "Enable peergating. (Experimental)",
|
|
|
- EnvVar: "PEERGATE",
|
|
|
+ Name: "peergate",
|
|
|
+ Usage: "Enable peergating. (Experimental)",
|
|
|
+ EnvVars: []string{"PEERGATE"},
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "peergate-autoclean",
|
|
|
- Usage: "Enable peergating autoclean. (Experimental)",
|
|
|
- EnvVar: "PEERGATE_AUTOCLEAN",
|
|
|
+ Name: "peergate-autoclean",
|
|
|
+ Usage: "Enable peergating autoclean. (Experimental)",
|
|
|
+ EnvVars: []string{"PEERGATE_AUTOCLEAN"},
|
|
|
},
|
|
|
&cli.BoolFlag{
|
|
|
- Name: "peergate-relaxed",
|
|
|
- Usage: "Enable peergating relaxation. (Experimental)",
|
|
|
- EnvVar: "PEERGATE_RELAXED",
|
|
|
+ Name: "peergate-relaxed",
|
|
|
+ Usage: "Enable peergating relaxation. (Experimental)",
|
|
|
+ EnvVars: []string{"PEERGATE_RELAXED"},
|
|
|
},
|
|
|
&cli.StringFlag{
|
|
|
- Name: "peergate-auth",
|
|
|
- Usage: "Peergate auth",
|
|
|
- EnvVar: "PEERGATE_AUTH",
|
|
|
- Value: "",
|
|
|
+ Name: "peergate-auth",
|
|
|
+ Usage: "Peergate auth",
|
|
|
+ EnvVars: []string{"PEERGATE_AUTH"},
|
|
|
+ Value: "",
|
|
|
},
|
|
|
&cli.IntFlag{
|
|
|
- Name: "peergate-interval",
|
|
|
- Usage: "Peergater interval time",
|
|
|
- EnvVar: "EDGEVPNPEERGATEINTERVAL",
|
|
|
- Value: 120,
|
|
|
+ Name: "peergate-interval",
|
|
|
+ Usage: "Peergater interval time",
|
|
|
+ EnvVars: []string{"EDGEVPNPEERGATEINTERVAL"},
|
|
|
+ Value: 120,
|
|
|
},
|
|
|
}
|
|
|
|