Skip to content

limosek/lvpn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LVPN

Blockchain powered VPN for sharing and anonymity with decentralisation. See Homepage

Installation

Installation does not need admin privileges. See Install guide

Support

Use GitHub issue tracker. You can earn coins by reporting bugs!

I want to donate development!

Great! We will do our best to make software great! See Possibiliies

Contributing

Do you want to contribute? Create a pull request! You can earn coins by creating pull request!

License

GPLv3

Client

Client part is multiplatform and can run with or without GUI. You can see openapi schema

usage: client.py [-h] [-c CONFIG] [-l {DEBUG,INFO,WARNING,ERROR}] [--log-file LOG_FILE] [--http-port HTTP_PORT] [--var-dir VAR_DIR] [--cfg-dir CFG_DIR] [--app-dir APP_DIR] [--tmp-dir TMP_DIR]
                 [--daemon-host DAEMON_HOST] [--daemon-bin DAEMON_BIN] [--daemon-rpc-url DAEMON_RPC_URL] [--daemon-p2p-port DAEMON_P2P_PORT] [--wallet-rpc-bin WALLET_RPC_BIN]
                 [--wallet-cli-bin WALLET_CLI_BIN] [--wallet-rpc-url WALLET_RPC_URL] [--wallet-rpc-port WALLET_RPC_PORT] [--wallet-rpc-user WALLET_RPC_USER]
                 [--wallet-rpc-password WALLET_RPC_PASSWORD] [--wallet-address WALLET_ADDRESS] [--spaces-dir SPACES_DIR] [--gates-dir GATES_DIR] [--providers-dir PROVIDERS_DIR]
                 [--my-spaces-dir MY_SPACES_DIR] [--my-gates-dir MY_GATES_DIR] [--my-providers-dir MY_PROVIDERS_DIR] [--manager-local-bind MANAGER_LOCAL_BIND]
                 [--manager-bearer-auth MANAGER_BEARER_AUTH] [--readonly-providers READONLY_PROVIDERS] [--sessions-dir SESSIONS_DIR] [--coin-type {lethean}] [--coin-unit COIN_UNIT]
                 [--lthn-price LTHN_PRICE] [--force-manager-url FORCE_MANAGER_URL] [--force-manager-wallet FORCE_MANAGER_WALLET] [--on-session-activation ON_SESSION_ACTIVATION]
                 [--unpaid-expiry UNPAID_EXPIRY] [--use-tx-pool USE_TX_POOL] [--wg-map-device WG_MAP_DEVICE] [--wg-cmd-prefix WG_CMD_PREFIX] [--wg-cmd-set-ip WG_CMD_SET_IP]
                 [--wg-cmd-create-interface WG_CMD_CREATE_INTERFACE] [--wg-cmd-delete-interface WG_CMD_DELETE_INTERFACE] [--enable-wg {0,1}] [--is-client IS_CLIENT] [--is-server IS_SERVER]
                 [--run-gui {0,1}] [--run-proxy {0,1}] [--run-wallet {0,1}] [--run-daemon {0,1}] [--wallet-name WALLET_NAME] [--wallet-password WALLET_PASSWORD] [--edge-bin EDGE_BIN]
                 [--chromium-bin CHROMIUM_BIN] [--use-http-proxy USE_HTTP_PROXY] [--local-bind LOCAL_BIND] [--ssh-engine {paramiko,ssh}] [--auto-connect AUTO_CONNECT]
                 [--auto-reconnect AUTO_RECONNECT] [--auto-pay AUTO_PAY]

options:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Config file path
  -l {DEBUG,INFO,WARNING,ERROR}, --log-level {DEBUG,INFO,WARNING,ERROR}
                        Log level [env var: WLC_LOGLEVEL]
  --log-file LOG_FILE   Log file
  --http-port HTTP_PORT
                        HTTP port to use for manager
  --var-dir VAR_DIR     Var directory [env var: WLC_VAR_DIR]
  --cfg-dir CFG_DIR     Cfg directory [env var: WLC_CFG_DIR]
  --app-dir APP_DIR     App directory
  --tmp-dir TMP_DIR     Temp directory [env var: WLC_TMP_DIR]
  --daemon-host DAEMON_HOST
                        Daemon host
  --daemon-bin DAEMON_BIN
                        Daemon binary file
  --daemon-rpc-url DAEMON_RPC_URL
                        Daemon RPC URL
  --daemon-p2p-port DAEMON_P2P_PORT
                        Daemon P2P port
  --wallet-rpc-bin WALLET_RPC_BIN
                        Wallet RPC binary file
  --wallet-cli-bin WALLET_CLI_BIN
                        Wallet CLI binary file
  --wallet-rpc-url WALLET_RPC_URL
                        Wallet RPC URL
  --wallet-rpc-port WALLET_RPC_PORT
                        Wallet RPC port
  --wallet-rpc-user WALLET_RPC_USER
                        Wallet RPC user
  --wallet-rpc-password WALLET_RPC_PASSWORD
                        Wallet RPC password. Default is to generate random.
  --wallet-address WALLET_ADDRESS
                        Wallet public address
  --spaces-dir SPACES_DIR
                        Directory containing all spaces VDPs
  --gates-dir GATES_DIR
                        Directory containing all gateway VDPs
  --providers-dir PROVIDERS_DIR
                        Directory containing all provider VDPs
  --my-spaces-dir MY_SPACES_DIR
                        Directory containing our VDPs
  --my-gates-dir MY_GATES_DIR
                        Directory containing our gateway VDPs
  --my-providers-dir MY_PROVIDERS_DIR
                        Directory containing our provider VDPs
  --manager-local-bind MANAGER_LOCAL_BIND
                        Bind address to use for manager
  --manager-bearer-auth MANAGER_BEARER_AUTH
                        Bearer authentication string for private APIs
  --readonly-providers READONLY_PROVIDERS
                        List of providers, delimited by comma, which cannot be updated by VDP from outside. Default to respect --my-providers
  --sessions-dir SESSIONS_DIR
                        Directory containing all sessions
  --coin-type {lethean}
                        Coin type to sue
  --coin-unit COIN_UNIT
                        Coin minimal unit
  --lthn-price LTHN_PRICE
                        Price for 1 LTHN. Use fixed number for fixed price or use *factor to factor actual price by number
  --force-manager-url FORCE_MANAGER_URL
                        Manually override manager url for all spaces. Used just for tests
  --force-manager-wallet FORCE_MANAGER_WALLET
                        Manually override wallet address url for all spaces. Used just for tests
  --on-session-activation ON_SESSION_ACTIVATION
                        External script to be run on session activation. Session file is passed as argument.
  --unpaid-expiry UNPAID_EXPIRY
                        How long time in seconds before unpaid session is deleted
  --use-tx-pool USE_TX_POOL
                        Use payments from pool (not confirmed by network) to accept payments.
  --wg-map-device WG_MAP_DEVICE
                        Wireguard device map mapping gateid to device name. Use gateid,name
  --wg-cmd-prefix WG_CMD_PREFIX
                        Wireguard prefix to run wg command. Can be 'sudo' or 'ssh root@server' or anything else what will be prepended before wg command.
  --wg-cmd-set-ip WG_CMD_SET_IP
                        Wireguard command to assign IP address to interface
  --wg-cmd-create-interface WG_CMD_CREATE_INTERFACE
                        Wireguard command to create interface. Default to not manage interfaces
  --wg-cmd-delete-interface WG_CMD_DELETE_INTERFACE
                        Wireguard command to delete interface. Default to not manage interfaces
  --enable-wg {0,1}     Enable wireguard support
  --is-client IS_CLIENT
                        For internal usage
  --is-server IS_SERVER
                        For internal usage
  --run-gui {0,1}       Run GUI
  --run-proxy {0,1}     Run local proxy
  --run-wallet {0,1}    Run local wallet
  --run-daemon {0,1}    Run local daemon RPC
  --wallet-name WALLET_NAME
                        Wallet name
  --wallet-password WALLET_PASSWORD
                        Wallet password
  --edge-bin EDGE_BIN   Edge browser binary
  --chromium-bin CHROMIUM_BIN
                        Chromium browser binary
  --use-http-proxy USE_HTTP_PROXY
                        Use HTTP proxy (CONNECT) to services [env var: HTTP_PROXY]
  --local-bind LOCAL_BIND
                        Bind address to use for proxy and TLS ports
  --ssh-engine {paramiko,ssh}
                        SSH engine to use
  --auto-connect AUTO_CONNECT
                        Auto connect uris
  --auto-reconnect AUTO_RECONNECT
                        Auto reconnect on failure
  --auto-pay AUTO_PAY   Auto pay service when there is an request to connect

Args that start with '--' can also be set in a config file (/etc/lvpn/client.ini or /etc/lvpn//client.ini or /home/lm-a/lvpn//client.ini or specified via -c). Config file syntax allows: key=value,
flag=true, stuff=[a,b,c] (for details, see syntax at https://goo.gl/R74nmi). In general, command-line values override environment variables which override config file values which override defaults.

Server

Server is based on multiple docker images. We will put more info later. You can see openapi schema

usage: server.py [-h] [-c CONFIG] [-l {DEBUG,INFO,WARNING,ERROR}] [--log-file LOG_FILE] [--http-port HTTP_PORT] [--var-dir VAR_DIR] [--cfg-dir CFG_DIR] [--app-dir APP_DIR] [--tmp-dir TMP_DIR]
                 [--daemon-host DAEMON_HOST] [--daemon-bin DAEMON_BIN] [--daemon-rpc-url DAEMON_RPC_URL] [--daemon-p2p-port DAEMON_P2P_PORT] [--wallet-rpc-bin WALLET_RPC_BIN]
                 [--wallet-cli-bin WALLET_CLI_BIN] [--wallet-rpc-url WALLET_RPC_URL] [--wallet-rpc-port WALLET_RPC_PORT] [--wallet-rpc-user WALLET_RPC_USER]
                 [--wallet-rpc-password WALLET_RPC_PASSWORD] [--wallet-address WALLET_ADDRESS] [--spaces-dir SPACES_DIR] [--gates-dir GATES_DIR] [--providers-dir PROVIDERS_DIR]
                 [--my-spaces-dir MY_SPACES_DIR] [--my-gates-dir MY_GATES_DIR] [--my-providers-dir MY_PROVIDERS_DIR] [--manager-local-bind MANAGER_LOCAL_BIND]
                 [--manager-bearer-auth MANAGER_BEARER_AUTH] [--readonly-providers READONLY_PROVIDERS] [--sessions-dir SESSIONS_DIR] [--coin-type {lethean}] [--coin-unit COIN_UNIT]
                 [--lthn-price LTHN_PRICE] [--force-manager-url FORCE_MANAGER_URL] [--force-manager-wallet FORCE_MANAGER_WALLET] [--on-session-activation ON_SESSION_ACTIVATION]
                 [--unpaid-expiry UNPAID_EXPIRY] [--use-tx-pool USE_TX_POOL] [--wg-map-device WG_MAP_DEVICE] [--wg-cmd-prefix WG_CMD_PREFIX] [--wg-cmd-set-ip WG_CMD_SET_IP]
                 [--wg-cmd-create-interface WG_CMD_CREATE_INTERFACE] [--wg-cmd-delete-interface WG_CMD_DELETE_INTERFACE] [--enable-wg {0,1}] [--is-client IS_CLIENT] [--is-server IS_SERVER]
                 [--stripe-api-key STRIPE_API_KEY] [--stripe-plink-id STRIPE_PLINK_ID] [--tradeogre-api-key TRADEOGRE_API_KEY] [--tradeogre-api-secret TRADEOGRE_API_SECRET]
                 [--provider-private-key PROVIDER_PRIVATE_KEY] [--provider-public-key PROVIDER_PUBLIC_KEY] [--ca-dir CA_DIR] [--ca-name CA_NAME] [--ssh-user-ca-private SSH_USER_CA_PRIVATE]
                 [--ssh-user-ca-public SSH_USER_CA_PUBLIC] [--ssh-host-ca-private SSH_HOST_CA_PRIVATE] [--ssh-host-ca-public SSH_HOST_CA_PUBLIC] [--ssh-user-key SSH_USER_KEY]

options:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Config file path
  -l {DEBUG,INFO,WARNING,ERROR}, --log-level {DEBUG,INFO,WARNING,ERROR}
                        Log level [env var: WLS_LOGLEVEL]
  --log-file LOG_FILE   Log file
  --http-port HTTP_PORT
                        HTTP port to use for manager
  --var-dir VAR_DIR     Var directory [env var: WLS_VAR_DIR]
  --cfg-dir CFG_DIR     Cfg directory [env var: WLS_CFG_DIR]
  --app-dir APP_DIR     App directory
  --tmp-dir TMP_DIR     Temp directory [env var: WLS_TMP_DIR]
  --daemon-host DAEMON_HOST
                        Daemon host
  --daemon-bin DAEMON_BIN
                        Daemon binary file
  --daemon-rpc-url DAEMON_RPC_URL
                        Daemon RPC URL
  --daemon-p2p-port DAEMON_P2P_PORT
                        Daemon P2P port
  --wallet-rpc-bin WALLET_RPC_BIN
                        Wallet RPC binary file
  --wallet-cli-bin WALLET_CLI_BIN
                        Wallet CLI binary file
  --wallet-rpc-url WALLET_RPC_URL
                        Wallet RPC URL
  --wallet-rpc-port WALLET_RPC_PORT
                        Wallet RPC port
  --wallet-rpc-user WALLET_RPC_USER
                        Wallet RPC user
  --wallet-rpc-password WALLET_RPC_PASSWORD
                        Wallet RPC password. If not entered, wallet subprocess is not started and payments are not processed.
  --wallet-address WALLET_ADDRESS
                        Wallet public address
  --spaces-dir SPACES_DIR
                        Directory containing all spaces VDPs
  --gates-dir GATES_DIR
                        Directory containing all gateway VDPs
  --providers-dir PROVIDERS_DIR
                        Directory containing all provider VDPs
  --my-spaces-dir MY_SPACES_DIR
                        Directory containing our VDPs
  --my-gates-dir MY_GATES_DIR
                        Directory containing our gateway VDPs
  --my-providers-dir MY_PROVIDERS_DIR
                        Directory containing our provider VDPs
  --manager-local-bind MANAGER_LOCAL_BIND
                        Bind address to use for manager
  --manager-bearer-auth MANAGER_BEARER_AUTH
                        Bearer authentication string for private APIs
  --readonly-providers READONLY_PROVIDERS
                        List of providers, delimited by comma, which cannot be updated by VDP from outside. Default to respect --my-providers
  --sessions-dir SESSIONS_DIR
                        Directory containing all sessions
  --coin-type {lethean}
                        Coin type to sue
  --coin-unit COIN_UNIT
                        Coin minimal unit
  --lthn-price LTHN_PRICE
                        Price for 1 LTHN. Use fixed number for fixed price or use *factor to factor actual price by number
  --force-manager-url FORCE_MANAGER_URL
                        Manually override manager url for all spaces. Used just for tests
  --force-manager-wallet FORCE_MANAGER_WALLET
                        Manually override wallet address url for all spaces. Used just for tests
  --on-session-activation ON_SESSION_ACTIVATION
                        External script to be run on session activation. Session file is passed as argument.
  --unpaid-expiry UNPAID_EXPIRY
                        How long time in seconds before unpaid session is deleted
  --use-tx-pool USE_TX_POOL
                        Use payments from pool (not confirmed by network) to accept payments.
  --wg-map-device WG_MAP_DEVICE
                        Wireguard device map mapping gateid to device name. Use gateid,name
  --wg-cmd-prefix WG_CMD_PREFIX
                        Wireguard prefix to run wg command. Can be 'sudo' or 'ssh root@server' or anything else what will be prepended before wg command.
  --wg-cmd-set-ip WG_CMD_SET_IP
                        Wireguard command to assign IP address to interface
  --wg-cmd-create-interface WG_CMD_CREATE_INTERFACE
                        Wireguard command to create interface. Default to not manage interfaces
  --wg-cmd-delete-interface WG_CMD_DELETE_INTERFACE
                        Wireguard command to delete interface. Default to not manage interfaces
  --enable-wg {0,1}     Enable wireguard support
  --is-client IS_CLIENT
                        For internal usage
  --is-server IS_SERVER
                        For internal usage
  --stripe-api-key STRIPE_API_KEY
                        Stripe private key for payments
  --stripe-plink-id STRIPE_PLINK_ID
                        Stripe payment link id for payment
  --tradeogre-api-key TRADEOGRE_API_KEY
                        TradeOgre API key for conversions
  --tradeogre-api-secret TRADEOGRE_API_SECRET
                        TradeOgre API secret key for conversions
  --provider-private-key PROVIDER_PRIVATE_KEY
                        Private provider key
  --provider-public-key PROVIDER_PUBLIC_KEY
                        Public provider key
  --ca-dir CA_DIR       Directory for Certificate authority
  --ca-name CA_NAME     Common name for CA creation
  --ssh-user-ca-private SSH_USER_CA_PRIVATE
                        SSH User CA private file
  --ssh-user-ca-public SSH_USER_CA_PUBLIC
                        SSH User CA public file
  --ssh-host-ca-private SSH_HOST_CA_PRIVATE
                        SSH Host CA private file
  --ssh-host-ca-public SSH_HOST_CA_PUBLIC
                        SSH Host CA public file
  --ssh-user-key SSH_USER_KEY
                        SSH User key

Args that start with '--' can also be set in a config file (/etc/lvpn/server.ini or specified via -c). Config file syntax allows: key=value, flag=true, stuff=[a,b,c] (for details, see syntax at
https://goo.gl/R74nmi). In general, command-line values override environment variables which override config file values which override defaults.

Mgmt

This is management utility used for server and client.

usage: mgmt.py [-h] [-c CONFIG] [-l {DEBUG,INFO,WARNING,ERROR}] [--log-file LOG_FILE] [--http-port HTTP_PORT] [--var-dir VAR_DIR] [--cfg-dir CFG_DIR] [--app-dir APP_DIR] [--tmp-dir TMP_DIR]
               [--daemon-host DAEMON_HOST] [--daemon-bin DAEMON_BIN] [--daemon-rpc-url DAEMON_RPC_URL] [--daemon-p2p-port DAEMON_P2P_PORT] [--wallet-rpc-bin WALLET_RPC_BIN]
               [--wallet-cli-bin WALLET_CLI_BIN] [--wallet-rpc-url WALLET_RPC_URL] [--wallet-rpc-port WALLET_RPC_PORT] [--wallet-rpc-user WALLET_RPC_USER] [--wallet-rpc-password WALLET_RPC_PASSWORD]
               [--wallet-address WALLET_ADDRESS] [--spaces-dir SPACES_DIR] [--gates-dir GATES_DIR] [--providers-dir PROVIDERS_DIR] [--my-spaces-dir MY_SPACES_DIR] [--my-gates-dir MY_GATES_DIR]
               [--my-providers-dir MY_PROVIDERS_DIR] [--manager-local-bind MANAGER_LOCAL_BIND] [--manager-bearer-auth MANAGER_BEARER_AUTH] [--readonly-providers READONLY_PROVIDERS]
               [--sessions-dir SESSIONS_DIR] [--coin-type {lethean}] [--coin-unit COIN_UNIT] [--lthn-price LTHN_PRICE] [--force-manager-url FORCE_MANAGER_URL]
               [--force-manager-wallet FORCE_MANAGER_WALLET] [--on-session-activation ON_SESSION_ACTIVATION] [--unpaid-expiry UNPAID_EXPIRY] [--use-tx-pool USE_TX_POOL]
               [--wg-map-device WG_MAP_DEVICE] [--wg-cmd-prefix WG_CMD_PREFIX] [--wg-cmd-set-ip WG_CMD_SET_IP] [--wg-cmd-create-interface WG_CMD_CREATE_INTERFACE]
               [--wg-cmd-delete-interface WG_CMD_DELETE_INTERFACE] [--enable-wg {0,1}] [--is-client IS_CLIENT] [--is-server IS_SERVER] [--stripe-api-key STRIPE_API_KEY]
               [--stripe-plink-id STRIPE_PLINK_ID] [--tradeogre-api-key TRADEOGRE_API_KEY] [--tradeogre-api-secret TRADEOGRE_API_SECRET] [--provider-private-key PROVIDER_PRIVATE_KEY]
               [--provider-public-key PROVIDER_PUBLIC_KEY] [--ca-dir CA_DIR] [--ca-name CA_NAME] [--ssh-user-ca-private SSH_USER_CA_PRIVATE] [--ssh-user-ca-public SSH_USER_CA_PUBLIC]
               [--ssh-host-ca-private SSH_HOST_CA_PRIVATE] [--ssh-host-ca-public SSH_HOST_CA_PUBLIC] [--ssh-user-key SSH_USER_KEY] [--run-gui {0,1}] [--run-proxy {0,1}] [--run-wallet {0,1}]
               [--run-daemon {0,1}] [--wallet-name WALLET_NAME] [--wallet-password WALLET_PASSWORD] [--edge-bin EDGE_BIN] [--chromium-bin CHROMIUM_BIN] [--use-http-proxy USE_HTTP_PROXY]
               [--local-bind LOCAL_BIND] [--ssh-engine {paramiko,ssh}] [--auto-connect AUTO_CONNECT] [--auto-reconnect AUTO_RECONNECT] [--auto-pay AUTO_PAY]
               {init,show-vdp,push-vdp,fetch-vdp,list-providers,list-spaces,list-gates,generate-provider-keys,generate-cfg,sign-text,verify-text,issue-crt,generate-ca,generate-vdp,create-session,prepare-client-session}
               [args ...]

positional arguments:
  {init,show-vdp,push-vdp,fetch-vdp,list-providers,list-spaces,list-gates,generate-provider-keys,generate-cfg,sign-text,verify-text,issue-crt,generate-ca,generate-vdp,create-session,prepare-client-session}
                        Command to be used
  args                  Args for command

options:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Config file path
  -l {DEBUG,INFO,WARNING,ERROR}, --log-level {DEBUG,INFO,WARNING,ERROR}
                        Log level [env var: WLS_LOGLEVEL]
  --log-file LOG_FILE   Log file
  --http-port HTTP_PORT
                        HTTP port to use for manager
  --var-dir VAR_DIR     Var directory [env var: WLS_VAR_DIR]
  --cfg-dir CFG_DIR     Cfg directory [env var: WLS_CFG_DIR]
  --app-dir APP_DIR     App directory
  --tmp-dir TMP_DIR     Temp directory [env var: WLS_TMP_DIR]
  --daemon-host DAEMON_HOST
                        Daemon host
  --daemon-bin DAEMON_BIN
                        Daemon binary file
  --daemon-rpc-url DAEMON_RPC_URL
                        Daemon RPC URL
  --daemon-p2p-port DAEMON_P2P_PORT
                        Daemon P2P port
  --wallet-rpc-bin WALLET_RPC_BIN
                        Wallet RPC binary file
  --wallet-cli-bin WALLET_CLI_BIN
                        Wallet CLI binary file
  --wallet-rpc-url WALLET_RPC_URL
                        Wallet RPC URL
  --wallet-rpc-port WALLET_RPC_PORT
                        Wallet RPC port
  --wallet-rpc-user WALLET_RPC_USER
                        Wallet RPC user
  --wallet-rpc-password WALLET_RPC_PASSWORD
                        Wallet RPC password. Default is to generate random.
  --wallet-address WALLET_ADDRESS
                        Wallet public address
  --spaces-dir SPACES_DIR
                        Directory containing all spaces VDPs
  --gates-dir GATES_DIR
                        Directory containing all gateway VDPs
  --providers-dir PROVIDERS_DIR
                        Directory containing all provider VDPs
  --my-spaces-dir MY_SPACES_DIR
                        Directory containing our VDPs
  --my-gates-dir MY_GATES_DIR
                        Directory containing our gateway VDPs
  --my-providers-dir MY_PROVIDERS_DIR
                        Directory containing our provider VDPs
  --manager-local-bind MANAGER_LOCAL_BIND
                        Bind address to use for manager
  --manager-bearer-auth MANAGER_BEARER_AUTH
                        Bearer authentication string for private APIs
  --readonly-providers READONLY_PROVIDERS
                        List of providers, delimited by comma, which cannot be updated by VDP from outside. Default to respect --my-providers
  --sessions-dir SESSIONS_DIR
                        Directory containing all sessions
  --coin-type {lethean}
                        Coin type to sue
  --coin-unit COIN_UNIT
                        Coin minimal unit
  --lthn-price LTHN_PRICE
                        Price for 1 LTHN. Use fixed number for fixed price or use *factor to factor actual price by number
  --force-manager-url FORCE_MANAGER_URL
                        Manually override manager url for all spaces. Used just for tests
  --force-manager-wallet FORCE_MANAGER_WALLET
                        Manually override wallet address url for all spaces. Used just for tests
  --on-session-activation ON_SESSION_ACTIVATION
                        External script to be run on session activation. Session file is passed as argument.
  --unpaid-expiry UNPAID_EXPIRY
                        How long time in seconds before unpaid session is deleted
  --use-tx-pool USE_TX_POOL
                        Use payments from pool (not confirmed by network) to accept payments.
  --wg-map-device WG_MAP_DEVICE
                        Wireguard device map mapping gateid to device name. Use gateid,name
  --wg-cmd-prefix WG_CMD_PREFIX
                        Wireguard prefix to run wg command. Can be 'sudo' or 'ssh root@server' or anything else what will be prepended before wg command.
  --wg-cmd-set-ip WG_CMD_SET_IP
                        Wireguard command to assign IP address to interface
  --wg-cmd-create-interface WG_CMD_CREATE_INTERFACE
                        Wireguard command to create interface. Default to not manage interfaces
  --wg-cmd-delete-interface WG_CMD_DELETE_INTERFACE
                        Wireguard command to delete interface. Default to not manage interfaces
  --enable-wg {0,1}     Enable wireguard support
  --is-client IS_CLIENT
                        For internal usage
  --is-server IS_SERVER
                        For internal usage
  --stripe-api-key STRIPE_API_KEY
                        Stripe private key for payments
  --stripe-plink-id STRIPE_PLINK_ID
                        Stripe payment link id for payment
  --tradeogre-api-key TRADEOGRE_API_KEY
                        TradeOgre API key for conversions
  --tradeogre-api-secret TRADEOGRE_API_SECRET
                        TradeOgre API secret key for conversions
  --provider-private-key PROVIDER_PRIVATE_KEY
                        Private provider key
  --provider-public-key PROVIDER_PUBLIC_KEY
                        Public provider key
  --ca-dir CA_DIR       Directory for Certificate authority
  --ca-name CA_NAME     Common name for CA creation
  --ssh-user-ca-private SSH_USER_CA_PRIVATE
                        SSH User CA private file
  --ssh-user-ca-public SSH_USER_CA_PUBLIC
                        SSH User CA public file
  --ssh-host-ca-private SSH_HOST_CA_PRIVATE
                        SSH Host CA private file
  --ssh-host-ca-public SSH_HOST_CA_PUBLIC
                        SSH Host CA public file
  --ssh-user-key SSH_USER_KEY
                        SSH User key
  --run-gui {0,1}       Run GUI
  --run-proxy {0,1}     Run local proxy
  --run-wallet {0,1}    Run local wallet
  --run-daemon {0,1}    Run local daemon RPC
  --wallet-name WALLET_NAME
                        Wallet name
  --wallet-password WALLET_PASSWORD
                        Wallet password
  --edge-bin EDGE_BIN   Edge browser binary
  --chromium-bin CHROMIUM_BIN
                        Chromium browser binary
  --use-http-proxy USE_HTTP_PROXY
                        Use HTTP proxy (CONNECT) to services [env var: HTTP_PROXY]
  --local-bind LOCAL_BIND
                        Bind address to use for proxy and TLS ports
  --ssh-engine {paramiko,ssh}
                        SSH engine to use
  --auto-connect AUTO_CONNECT
                        Auto connect uris
  --auto-reconnect AUTO_RECONNECT
                        Auto reconnect on failure
  --auto-pay AUTO_PAY   Auto pay service when there is an request to connect

Args that start with '--' can also be set in a config file (/etc/lvpn/mgmt.ini or specified via -c). Config file syntax allows: key=value, flag=true, stuff=[a,b,c] (for details, see syntax at
https://goo.gl/R74nmi). In general, command-line values override environment variables which override config file values which override defaults.