Browse Source

updating install docs

afeiszli 3 years ago
parent
commit
3ea101ba5d

+ 7 - 0
README.md

@@ -49,3 +49,10 @@ Netmaker's source code and all artifacts in this repository are freely available
 
 
 Email: [email protected]  
 Email: [email protected]  
 Discord: https://discord.gg/zRb9Vfhk8A
 Discord: https://discord.gg/zRb9Vfhk8A
+
+#### Business Support
+
+https://gravitl.com/plans/business
+
+### Disclaimer
+ [WireGuard](https://wireguard.com/) is a registered trademark of Jason A. Donenfeld.

+ 0 - 26
compose/docker-compose.localserver.yml

@@ -1,26 +0,0 @@
-version: "3.4"
-
-volumes:
-  dnsconfig:
-  driver: local
-services:
-  mongodb:
-    image: mongo:4.2
-    ports:
-      - "27017:27017"
-    container_name: mongodb
-    volumes:
-      - mongovol:/data/db
-    restart: always
-    environment:
-      MONGO_INITDB_ROOT_USERNAME: mongoadmin
-      MONGO_INITDB_ROOT_PASSWORD: mongopass
-  netmaker-ui:
-    container_name: netmaker-ui
-    image: gravitl/netmaker-ui:v0.5
-    ports:
-      - "80:80"
-    environment:
-      BACKEND_URL: "http://HOST_IP:8081"
-volumes:
-  mongovol: {}

+ 0 - 55
compose/docker-compose.noclient.yml

@@ -1,55 +0,0 @@
-version: "3.4"
-
-volumes:
-  dnsconfig:
-  driver: local
-services:
-  mongodb:
-    image: mongo:4.2
-    ports:
-      - "27017:27017"
-    container_name: mongodb
-    volumes:
-      - mongovol:/data/db
-    restart: always
-    environment:
-      MONGO_INITDB_ROOT_USERNAME: mongoadmin
-      MONGO_INITDB_ROOT_PASSWORD: mongopass
-  netmaker:
-    container_name: netmaker
-    ports:
-      - "8081:8081"
-      - "50051:50051"
-    depends_on:
-      - mongodb
-    image: gravitl/netmaker:v0.5
-    restart: always
-    environment:
-      SERVER_HOST: "HOST_IP"
-      CLIENT_MODE: "off"
-      SERVER_GRPC_WIREGUARD: "off"
-  netmaker-ui:
-    container_name: netmaker-ui
-    depends_on:
-      - netmaker
-    image: gravitl/netmaker-ui:v0.5
-    links:
-      - "netmaker:api"
-    ports:
-      - "80:80"
-    environment:
-      BACKEND_URL: "http://HOST_IP:8081"
-  coredns:
-    depends_on:
-      - netmaker 
-    image: coredns/coredns
-    command: -conf /root/dnsconfig/Corefile
-    container_name: coredns
-    restart: always
-    ports:
-      - "53:53/udp"
-    volumes:
-      - dnsconfig:/root/dnsconfig
-volumes:
-  mongovol: {}
-  dnsconfig: {}

+ 0 - 71
compose/docker-compose.quickstart.yml

@@ -1,71 +0,0 @@
-version: "3.4"
-
-services:
-  rqlite:
-    container_name: rqlite
-    image: rqlite/rqlite
-    network_mode: host
-    restart: always
-    volumes:
-      - sqldata:/rqlite/file/data
-  netmaker:
-    depends_on:
-      - rqlite
-    privileged: true
-    container_name: netmaker
-    image: gravitl/netmaker:v0.7
-    volumes:
-      - ./:/local
-      - /etc/netclient:/etc/netclient
-      - dnsconfig:/root/config/dnsconfig
-      - /usr/bin/wg:/usr/bin/wg
-      - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket
-      - /run/systemd/system:/run/systemd/system
-      - /etc/systemd/system:/etc/systemd/system
-      - /sys/fs/cgroup:/sys/fs/cgroup
-    cap_add: 
-      - NET_ADMIN
-      - SYS_MODULE
-    restart: always
-    network_mode: host
-    environment:
-      SERVER_HOST: "SERVER_PUBLIC_IP"
-      SERVER_API_CONN_STRING: "api.NETMAKER_BASE_DOMAIN:443"
-      SERVER_GRPC_CONN_STRING: "grpc.NETMAKER_BASE_DOMAIN:443"
-      COREDNS_ADDR: "SERVER_PUBLIC_IP"
-      GRPC_SSL: "on"
-      DNS_MODE: "on"
-      SERVER_HTTP_HOST: "api.NETMAKER_BASE_DOMAIN"
-      SERVER_GRPC_HOST: "grpc.NETMAKER_BASE_DOMAIN"
-      API_PORT: "8081"
-      GRPC_PORT: "50051"
-      CLIENT_MODE: "on"
-      MASTER_KEY: "REPLACE_MASTER_KEY"
-      SERVER_GRPC_WIREGUARD: "off"
-      CORS_ALLOWED_ORIGIN: "*"
-  netmaker-ui:
-    container_name: netmaker-ui
-    depends_on:
-      - netmaker
-    image: gravitl/netmaker-ui:v0.7
-    links:
-      - "netmaker:api"
-    ports:
-      - "8082:80"
-    environment:
-      BACKEND_URL: "https://api.NETMAKER_BASE_DOMAIN"
-    restart: always
-  coredns:
-    depends_on:
-      - netmaker 
-    image: coredns/coredns
-    command: -conf /root/dnsconfig/Corefile
-    container_name: coredns
-    restart: always
-    ports:
-      - "53:53/udp"
-    volumes:
-      - dnsconfig:/root/dnsconfig
-volumes:
-  sqldata: {}
-  dnsconfig: {}

+ 0 - 133
compose/docker-compose.reference copy.yml

@@ -1,133 +0,0 @@
-services:
-  rqlite:
-    container_name: rqlite
-    image: rqlite/rqlite
-    network_mode: host
-    restart: always
-    volumes:
-      - sqldata:/rqlite/file/data
-  netmaker:
-    depends_on:
-      - rqlite
-    privileged: true
-    container_name: netmaker
-    image: gravitl/netmaker:v0.7
-    volumes:
-      - ./:/local
-      - /etc/netclient:/etc/netclient
-      - dnsconfig:/root/config/dnsconfig
-      - /usr/bin/wg:/usr/bin/wg
-      - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket
-      - /run/systemd/system:/run/systemd/system
-      - /etc/systemd/system:/etc/systemd/system
-      - /sys/fs/cgroup:/sys/fs/cgroup
-    cap_add: 
-      - NET_ADMIN
-      - SYS_MODULE
-    restart: always
-    network_mode: host
-    environment:
-      SERVER_HOST: "SERVER_PUBLIC_IP"
-      SERVER_API_CONN_STRING: "api.NETMAKER_BASE_DOMAIN:443"
-      SERVER_GRPC_CONN_STRING: "grpc.NETMAKER_BASE_DOMAIN:443"
-      COREDNS_ADDR: "SERVER_PUBLIC_IP"
-      GRPC_SSL: "on"
-      SERVER_HTTP_HOST: "api.NETMAKER_BASE_DOMAIN"
-      SERVER_GRPC_HOST: "grpc.NETMAKER_BASE_DOMAIN"
-      API_PORT: "8081"
-      GRPC_PORT: "50051"
-      CLIENT_MODE: "on"
-      MASTER_KEY: "REPLACE_MASTER_KEY"
-      SERVER_GRPC_WIREGUARD: "off"
-      CORS_ALLOWED_ORIGIN: "*"
-  netmaker-ui:
-    container_name: netmaker-ui
-    depends_on:
-      - netmaker
-    image: gravitl/netmaker-ui:v0.7
-    links:
-      - "netmaker:api"
-    ports:
-      - "8082:80"
-    environment:
-      BACKEND_URL: "https://api.NETMAKER_BASE_DOMAIN"
-  coredns:
-    depends_on:
-      - netmaker 
-    image: coredns/coredns
-    command: -conf /root/dnsconfig/Corefile
-    container_name: coredns
-    restart: always
-    ports:
-      - "53:53/udp"
-    volumes:
-      - dnsconfig:/root/dnsconfig
-
-
-version: "3.4"
-
-services:
-  rqlite: # The rqlite instance that backs up Netmaker
-    container_name: rqlite
-    image: rqlite/rqlite
-    network_mode: host
-    restart: always
-    volumes:
-      - sqldata:/rqlite/file/data
-  netmaker: # The Primary Server for running Netmaker
-    privileged: true # Necessary to run sudo/root level commands on host system. Take out if not running with CLIENT_MODE=on
-    container_name: netmaker
-    depends_on:
-      - mongodb
-    image: gravitl/netmaker:v0.7
-    volumes: # Volume mounts necessary for Netmaker to control netclient, wireguard, and networking on host (except dnsconfig, which is where dns config files are stored for use by CoreDNS)
-      - ./:/local
-      - /etc/netclient:/etc/netclient
-      - dnsconfig:/root/config/dnsconfig # Netmaker writes Corefile to this location, which gets mounted by CoreDNS for DNS configuration.
-      - /usr/bin/wg:/usr/bin/wg
-      - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket
-      - /run/systemd/system:/run/systemd/system
-      - /etc/systemd/system:/etc/systemd/system
-      - /sys/fs/cgroup:/sys/fs/cgroup
-    cap_add: # Necessary for CLIENT_MODE. Should be removed if turned off. 
-      - NET_ADMIN
-      - SYS_MODULE
-    restart: always
-    network_mode: host # Necessary for CLIENT_MODE. Should be removed if turned off, but then need to add port mappings
-    environment:
-      GRPC_SSL: "off" # Tells clients to use SSL to connect to GRPC. Switch to on to turn on.
-      SERVER_API_CONN_STRING: "" # Changes the api connection string. IP:PORT format. By default is empty and uses SERVER_HOST:API_PORT
-      SERVER_GRPC_CONN_STRING: "" # Changes the grpc connection string. IP:PORT format. By default is empty and uses SERVER_HOST:GRPC_PORT
-      SERVER_HOST: "" # All the Docker Compose files pre-populate this with HOST_IP, which you replace as part of the install instructions. This will set both HTTP and GRPC host.
-      API_PORT: 8081 # The HTTP API port for Netmaker. Used for API calls / communication from front end. If changed, need to change port of BACKEND_URL for netmaker-ui.
-      GRPC_PORT: 50051 # The GRPC port for Netmaker. Used for communications from nodes.
-      MASTER_KEY: "secretkey" # The admin master key for accessing the API. Change this in any production installation.
-      CORS_ALLOWED_ORIGIN: "*" # The "allowed origin" for API requests. Change to restrict where API requests can come from.
-      REST_BACKEND: "on" # Enables the REST backend (API running on API_PORT at SERVER_HTTP_HOST). Change to "off" to turn off.
-      AGENT_BACKEND: "on" # Enables the AGENT backend (GRPC running on GRPC_PORT at SERVER_GRPC_HOST). Change to "off" to turn off.
-      DNS_MODE: "on" # Enables DNS Mode, meaning config files will be generated for CoreDNS. Note, turning "off" does not remove CoreDNS. You still need to remove CoreDNS from compose file.
-  netmaker-ui: # The Netmaker UI Component
-    container_name: netmaker-ui
-    depends_on:
-      - netmaker
-    image: gravitl/netmaker-ui:v0.7
-    links:
-      - "netmaker:api"
-    ports:
-      - "8082:80"
-    environment:
-      BACKEND_URL: "http://HOST_IP:8081" # URL where UI will send API requests. Change based on SERVER_HOST, SERVER_HTTP_HOST, and API_PORT
-  coredns: # The DNS Server. Remove this section if DNS_MODE="off"
-    depends_on:
-      - netmaker 
-    image: coredns/coredns
-    command: -conf /root/dnsconfig/Corefile # Config location for Corefile. This is the path of file which is also mounted to Netmaker for modification.
-    container_name: coredns
-    restart: always
-    ports:
-      - "53:53/udp" # Likely needs to run at port 53 for adequate nameserver usage.
-    volumes:
-      - dnsconfig:/root/dnsconfig
-volumes:
-  sqldata: {}
-  dnsconfig: {}

+ 0 - 42
compose/docker-compose.server-only.yml

@@ -1,42 +0,0 @@
-version: "3.4"
-
-volumes:
-  dnsconfig:
-  driver: local
-services:
-  mongodb:
-    image: mongo:4.2
-    ports:
-      - "27017:27017"
-    container_name: mongodb
-    volumes:
-      - mongovol:/data/db
-    restart: always
-    environment:
-      MONGO_INITDB_ROOT_USERNAME: mongoadmin
-      MONGO_INITDB_ROOT_PASSWORD: mongopass
-  netmaker:
-    container_name: netmaker
-    depends_on:
-      - mongodb
-    image: gravitl/netmaker:v0.5
-    ports:
-      - "8081:8081"
-      - "50051:50051"
-    volumes:
-      - ./:/local
-      - /etc/netclient:/etc/netclient
-      - dnsconfig:/root/config/dnsconfig
-      - /usr/bin/wg:/usr/bin/wg:ro
-      - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket
-      - /run/systemd/system:/run/systemd/system
-      - /etc/systemd/system:/etc/systemd/system
-      - /sys/fs/cgroup:/sys/fs/cgroup
-    restart: always
-    environment:
-      CLIENT_MODE: "off"
-      DNS_MODE: "off"
-      SERVER_HOST: "localhost"
-volumes:
-  mongovol: {}
-  dnsconfig: {}

+ 0 - 45
compose/docker-compose.slim.yml

@@ -1,45 +0,0 @@
-version: "3.4"
-
-volumes:
-  dnsconfig:
-  driver: local
-services:
-  mongodb:
-    image: mongo:4.2
-    ports:
-      - "27017:27017"
-    container_name: mongodb
-    volumes:
-      - mongovol:/data/db
-    restart: always
-    environment:
-      MONGO_INITDB_ROOT_USERNAME: mongoadmin
-      MONGO_INITDB_ROOT_PASSWORD: mongopass
-  netmaker:
-    container_name: netmaker
-    ports:
-      - "8081:8081"
-      - "50051:50051"
-    depends_on:
-      - mongodb
-    image: gravitl/netmaker:v0.5
-    restart: always
-    environment:
-      SERVER_HOST: "HOST_IP"
-      DNS_MODE: "off"
-      CLIENT_MODE: "off"
-      MONGO_HOST: "mongodb"
-      SERVER_GRPC_WIREGUARD: "off"
-  netmaker-ui:
-    container_name: netmaker-ui
-    depends_on:
-      - netmaker
-    image: gravitl/netmaker-ui:v0.5
-    links:
-      - "netmaker:api"
-    ports:
-      - "80:80"
-    environment:
-      BACKEND_URL: "http://HOST_IP:8081"
-volumes:
-  mongovol: {}

+ 0 - 48
compose/docker-compose.test.yml

@@ -1,48 +0,0 @@
-version: "3.4"
-
-services:
-  rqlite:
-    container_name: rqlite
-    image: rqlite/rqlite
-    network_mode: host
-    restart: always
-    volumes:
-      - sqldata:/rqlite/file/data
-  netmaker:
-    depends_on:
-      - rqlite
-    privileged: true
-    container_name: netmaker
-    image: gravitl/netmaker:v0.7
-    volumes:
-      - ./:/local
-      - /etc/netclient:/etc/netclient
-      - /usr/bin/wg:/usr/bin/wg
-      - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket
-      - /run/systemd/system:/run/systemd/system
-      - /etc/systemd/system:/etc/systemd/system
-      - /sys/fs/cgroup:/sys/fs/cgroup
-    cap_add: 
-      - NET_ADMIN
-      - SYS_MODULE
-    restart: always
-    network_mode: host
-    environment:
-      GRPC_SSL: "off"
-      API_PORT: "8081"
-      GRPC_PORT: "50051"
-      DNS_MODE: "off"
-      CORS_ALLOWED_ORIGIN: "*"
-  netmaker-ui:
-    container_name: netmaker-ui
-    depends_on:
-      - netmaker
-    image: gravitl/netmaker-ui:v0.7
-    links:
-      - "netmaker:api"
-    ports:
-      - "80:80"
-    environment:
-      BACKEND_URL: "http://HOST_IP:8081"
-volumes:
-  sqldata: {}

+ 14 - 18
compose/docker-compose.yml

@@ -1,19 +1,10 @@
 version: "3.4"
 version: "3.4"
 
 
 services:
 services:
-  rqlite:
-    container_name: rqlite
-    image: rqlite/rqlite
-    network_mode: host
-    restart: always
-    volumes:
-      - sqldata:/rqlite/file/data
   netmaker:
   netmaker:
-    depends_on:
-      - rqlite
     privileged: true
     privileged: true
     container_name: netmaker
     container_name: netmaker
-    image: gravitl/netmaker:v0.7
+    image: gravitl/netmaker:v0.8
     volumes:
     volumes:
       - ./:/local
       - ./:/local
       - /etc/netclient:/etc/netclient
       - /etc/netclient:/etc/netclient
@@ -23,6 +14,7 @@ services:
       - /run/systemd/system:/run/systemd/system
       - /run/systemd/system:/run/systemd/system
       - /etc/systemd/system:/etc/systemd/system
       - /etc/systemd/system:/etc/systemd/system
       - /sys/fs/cgroup:/sys/fs/cgroup
       - /sys/fs/cgroup:/sys/fs/cgroup
+      - sqldata:/root/data
     cap_add: 
     cap_add: 
       - NET_ADMIN
       - NET_ADMIN
       - SYS_MODULE
       - SYS_MODULE
@@ -30,28 +22,32 @@ services:
     network_mode: host
     network_mode: host
     environment:
     environment:
       SERVER_HOST: "SERVER_PUBLIC_IP"
       SERVER_HOST: "SERVER_PUBLIC_IP"
-      SERVER_API_CONN_STRING: "SERVER_PUBLIC_IP:8081"
-      SERVER_GRPC_CONN_STRING: "SERVER_PUBLIC_IP:50051"
+      SERVER_API_CONN_STRING: "api.NETMAKER_BASE_DOMAIN:443"
+      SERVER_GRPC_CONN_STRING: "grpc.NETMAKER_BASE_DOMAIN:443"
       COREDNS_ADDR: "SERVER_PUBLIC_IP"
       COREDNS_ADDR: "SERVER_PUBLIC_IP"
-      GRPC_SSL: "off"
+      GRPC_SSL: "on"
       DNS_MODE: "on"
       DNS_MODE: "on"
-      SERVER_HTTP_HOST: "SERVER_PUBLIC_IP"
-      SERVER_GRPC_HOST: "SERVER_PUBLIC_IP"
+      SERVER_HTTP_HOST: "api.NETMAKER_BASE_DOMAIN"
+      SERVER_GRPC_HOST: "grpc.NETMAKER_BASE_DOMAIN"
       API_PORT: "8081"
       API_PORT: "8081"
       GRPC_PORT: "50051"
       GRPC_PORT: "50051"
+      CLIENT_MODE: "on"
       MASTER_KEY: "REPLACE_MASTER_KEY"
       MASTER_KEY: "REPLACE_MASTER_KEY"
+      SERVER_GRPC_WIREGUARD: "off"
       CORS_ALLOWED_ORIGIN: "*"
       CORS_ALLOWED_ORIGIN: "*"
+      DATABASE: "sqlite"
   netmaker-ui:
   netmaker-ui:
     container_name: netmaker-ui
     container_name: netmaker-ui
     depends_on:
     depends_on:
       - netmaker
       - netmaker
-    image: gravitl/netmaker-ui:v0.7
+    image: gravitl/netmaker-ui:v0.8
     links:
     links:
       - "netmaker:api"
       - "netmaker:api"
     ports:
     ports:
       - "8082:80"
       - "8082:80"
     environment:
     environment:
       BACKEND_URL: "https://api.NETMAKER_BASE_DOMAIN"
       BACKEND_URL: "https://api.NETMAKER_BASE_DOMAIN"
+    restart: always
   coredns:
   coredns:
     depends_on:
     depends_on:
       - netmaker 
       - netmaker 
@@ -60,8 +56,8 @@ services:
     container_name: coredns
     container_name: coredns
     restart: always
     restart: always
     ports:
     ports:
-      - "53:53/udp"
-      - "53:53/tcp"
+      - "COREDNS_IP:53:53/udp"
+      - "COREDNS_IP:53:53/tcp"
     volumes:
     volumes:
       - dnsconfig:/root/dnsconfig
       - dnsconfig:/root/dnsconfig
 volumes:
 volumes:

BIN
docs/_build/doctrees/environment.pickle


BIN
docs/_build/doctrees/external-clients.doctree


BIN
docs/_build/doctrees/quick-start.doctree


+ 13 - 0
docs/_build/html/_sources/external-clients.rst.txt

@@ -57,3 +57,16 @@ Example config file:
 .. literalinclude:: ./examplecode/myclient.conf
 .. literalinclude:: ./examplecode/myclient.conf
 
 
 Your client should now be able to access the network! A client can be invalidated at any time by simply deleting it from the UI.
 Your client should now be able to access the network! A client can be invalidated at any time by simply deleting it from the UI.
+
+Configuring DNS for Ext Clients (OPTIONAL)
+============================================
+
+If you wish to have a DNS field on your ext clients conf, simply edit the network field as shown below to 1.1.1.1 or 8.8.8.8 for example.
+If you do not want DNS on your ext client conf files, simply leave it blank.
+
+.. image:: images/exclient5.png
+   :width: 80%
+   :alt: Gateway
+   :align: center
+
+Important to note, your client automatically adds egress gateway ranges (if any on the same network) to it's allowed IPs.

+ 23 - 29
docs/_build/html/_sources/quick-start.rst.txt

@@ -7,16 +7,15 @@ This quick start guide is an **opinionated** guide for getting up and running wi
 0. Introduction
 0. Introduction
 ==================
 ==================
 
 
-We assume for this installation that you want all of the Netmaker features enabled, want your server to be secure, and want it to be accessible from anywhere. 
+We assume for this installation that you want all of the Netmaker features enabled, you want your server to be secure, and you want your server to be accessible from anywhere.
 
 
-This instance will not be HA. However, it should comfortably handle around one hundred concurrent clients and support most use cases.
+This instance will not be HA. However, it should comfortably handle around one hundred concurrent clients and support the most common use cases.
 
 
-If you are deploying for an enterprise use case, please contact [email protected] for support.
+If you are deploying for a business or enterprise use case and this setup will not fit your needs, please contact [email protected], or check out the business subscription plans at https://gravitl.com/plans/business.
 
 
 By the end of this guide, you will have Netmaker installed on a public VM linked to your custom domain, secured behind an Nginx reverse proxy.
 By the end of this guide, you will have Netmaker installed on a public VM linked to your custom domain, secured behind an Nginx reverse proxy.
 
 
-If this configuration does not fit your use case, see the :doc:`Advanced Installation <./server-installation>` docs. 
-
+For information about deploying more advanced configurations, see the :doc:`Advanced Installation <./server-installation>` docs. 
 
 
 
 
 1. Prerequisites
 1. Prerequisites
@@ -24,9 +23,10 @@ If this configuration does not fit your use case, see the :doc:`Advanced Install
 -  **Virtual Machine**
 -  **Virtual Machine**
    
    
    - Preferably from a cloud provider (e.x: DigitalOcean, Linode, AWS, GCP, etc.)
    - Preferably from a cloud provider (e.x: DigitalOcean, Linode, AWS, GCP, etc.)
+      - We do not recommend Oracle Cloud, as VM's here have been known to cause network interference.
    - Public, static IP 
    - Public, static IP 
-   - Min 2GB RAM, 1 CPU (4GB RAM, 2CPU preferred)
-   - 5GB+ of storage
+   - Min 1GB RAM, 1 CPU (4GB RAM, 2CPU preferred)
+   - 2GB+ of storage 
    - Ubuntu  20.04 Installed
    - Ubuntu  20.04 Installed
 
 
 - **Domain**
 - **Domain**
@@ -47,11 +47,11 @@ Begin by installing the community version of Docker and docker-compose (there ar
 
 
   sudo apt-get remove docker docker-engine docker.io containerd runc
   sudo apt-get remove docker docker-engine docker.io containerd runc
   sudo apt-get update
   sudo apt-get update
-  sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
+  sudo apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  
   echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
   echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
   sudo apt-get update
   sudo apt-get update
-  sudo apt-get install docker-ce docker-ce-cli containerd.io
+  sudo apt-get -y install docker-ce docker-ce-cli containerd.io
   sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
   sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
   sudo chmod +x /usr/local/bin/docker-compose
   sudo chmod +x /usr/local/bin/docker-compose
   docker --version
   docker --version
@@ -64,7 +64,7 @@ Install Dependencies
 
 
 In addition to Docker, this installation requires WireGuard, Nginx, and Certbot.
 In addition to Docker, this installation requires WireGuard, Nginx, and Certbot.
 
 
-``sudo apt install wireguard wireguard-tools nginx certbot python3-certbot-nginx net-tools``
+``sudo apt -y install wireguard wireguard-tools nginx certbot python3-certbot-nginx net-tools``
 
 
  
  
 3. Prepare VM
 3. Prepare VM
@@ -109,20 +109,9 @@ Make sure firewall settings are appropriate for Netmaker. You need ports 53 and
   - allow 443/tcp from all
   - allow 443/tcp from all
   - allow 53/udp and 53/tcp from all
   - allow 53/udp and 53/tcp from all
 
 
-Prepare for DNS
-----------------------------------------------------------------
-
-On Ubuntu 20.04, by default there is a service consuming port 53 related to DNS resolution. We need port 53 open in order to run our own DNS server. The below steps will disable systemd-resolved, and insert a generic DNS nameserver for local resolution.
-
-.. code-block::
-
-  systemctl stop systemd-resolved
-  systemctl disable systemd-resolved 
-  vim /etc/systemd/resolved.conf
-    *  uncomment DNS and add 8.8.8.8 or whatever reachable nameserver is your preference  *
-    *  uncomment DNSStubListener and set to "no"  *
-  ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
+In addition to the above ports, you will need to make sure that your cloud's firewall or security groups are opened for the range of ports that Netmaker's WireGuard interfaces consume.
 
 
+Netmaker will create one interface per network, starting from 51821. So, if you plan on having 5 networks, you will want to have at least 51821-51825 open (udp).
 
 
 Prepare Nginx
 Prepare Nginx
 -----------------
 -----------------
@@ -148,23 +137,28 @@ Insert your domain in the configuration file and add to nginx:
 Prepare Templates
 Prepare Templates
 ------------------
 ------------------
 
 
+**Note on COREDNS_IP:** Depending on your cloud provider, the public IP may not be bound directly to the VM on which you are running. In such cases, CoreDNS cannot bind to this IP, and you should use the IP of the default interface on your machine in place of COREDNS_IP. If the public IP **is** bound to the VM, you can simply use the same IP as SERVER_PUBLIC_IP.
+
 .. code-block::
 .. code-block::
 
 
-  wget https://raw.githubusercontent.com/gravitl/netmaker/develop/compose/docker-compose.quickstart.yml
-  sed -i 's/NETMAKER_BASE_DOMAIN/<your base domain>/g' docker-compose.quickstart.yml
-  sed -i 's/SERVER_PUBLIC_IP/<your server ip>/g' docker-compose.quickstart.yml
+  wget https://raw.githubusercontent.com/gravitl/netmaker/develop/compose/docker-compose.yml
+  sed -i 's/NETMAKER_BASE_DOMAIN/<your base domain>/g' docker-compose.yml
+  sed -i 's/SERVER_PUBLIC_IP/<your server ip>/g' docker-compose.yml
+  sed -i 's/COREDNS_IP/<your server ip>/g' docker-compose.yml
 
 
 Generate a unique master key and insert it:
 Generate a unique master key and insert it:
 
 
 .. code-block::
 .. code-block::
 
 
   tr -dc A-Za-z0-9 </dev/urandom | head -c 30 ; echo ''
   tr -dc A-Za-z0-9 </dev/urandom | head -c 30 ; echo ''
-  sed -i 's/REPLACE_MASTER_KEY/<your generated key>/g' docker-compose.quickstart.yml
+  sed -i 's/REPLACE_MASTER_KEY/<your generated key>/g' docker-compose.yml
+
+You may want to save this key for future use with the API.
 
 
 Start Netmaker
 Start Netmaker
 ----------------
 ----------------
 
 
-``sudo docker-compose -f docker-compose.quickstart.yml up -d``
+``sudo docker-compose -f docker-compose.yml up -d``
 
 
 navigate to dashboard.<your base domain> to see your nginx instance.
 navigate to dashboard.<your base domain> to see your nginx instance.
 
 
@@ -172,4 +166,4 @@ To troubleshoot issues, start with:
 
 
 ``docker logs netmaker``
 ``docker logs netmaker``
 
 
-Or check out the :doc:`troubleshoooting docs <./troubleshoot>`.
+Or check out the :doc:`troubleshoooting docs <./troubleshoot>`.

+ 18 - 0
docs/_build/html/external-clients.html

@@ -484,6 +484,8 @@
         <li class="md-nav__item"><a href="#configuring-an-ingress-gateway" class="md-nav__link">Configuring an Ingress Gateway</a>
         <li class="md-nav__item"><a href="#configuring-an-ingress-gateway" class="md-nav__link">Configuring an Ingress Gateway</a>
         </li>
         </li>
         <li class="md-nav__item"><a href="#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
         <li class="md-nav__item"><a href="#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
+        </li>
+        <li class="md-nav__item"><a href="#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
         </li></ul>
         </li></ul>
             </nav>
             </nav>
         </li>
         </li>
@@ -510,6 +512,13 @@
       <a href="#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       <a href="#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       
       
     
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
+      
+    
     </li></ul>
     </li></ul>
     
     
     </li>
     </li>
@@ -702,6 +711,8 @@
         <li class="md-nav__item"><a href="#configuring-an-ingress-gateway" class="md-nav__link">Configuring an Ingress Gateway</a>
         <li class="md-nav__item"><a href="#configuring-an-ingress-gateway" class="md-nav__link">Configuring an Ingress Gateway</a>
         </li>
         </li>
         <li class="md-nav__item"><a href="#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
         <li class="md-nav__item"><a href="#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
+        </li>
+        <li class="md-nav__item"><a href="#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
         </li></ul>
         </li></ul>
             </nav>
             </nav>
         </li>
         </li>
@@ -760,6 +771,13 @@
 <p>Your client should now be able to access the network! A client can be invalidated at any time by simply deleting it from the UI.</p>
 <p>Your client should now be able to access the network! A client can be invalidated at any time by simply deleting it from the UI.</p>
 
 
 
 
+<h2 id="configuring-dns-for-ext-clients-optional">Configuring DNS for Ext Clients (OPTIONAL)<a class="headerlink" href="#configuring-dns-for-ext-clients-optional" title="Permalink to this headline">¶</a></h2>
+<p>If you wish to have a DNS field on your ext clients conf, simply edit the network field as shown below to 1.1.1.1 or 8.8.8.8 for example.
+If you do not want DNS on your ext client conf files, simply leave it blank.</p>
+<a class="reference internal image-reference" href="images/exclient5.png"><img alt="Gateway" class="align-center" src="images/exclient5.png" style="width: 80%;"/></a>
+<p>Important to note, your client automatically adds egress gateway ranges (if any on the same network) to it’s allowed IPs.</p>
+
+
 
 
 
 
           </article>
           </article>

+ 7 - 0
docs/_build/html/genindex.html

@@ -488,6 +488,13 @@
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       
       
     
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="external-clients.html#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
+      
+    
     </li></ul>
     </li></ul>
     
     
     </li>
     </li>

+ 8 - 0
docs/_build/html/index.html

@@ -489,6 +489,13 @@
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       
       
     
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="external-clients.html#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
+      
+    
     </li></ul>
     </li></ul>
     
     
     </li>
     </li>
@@ -819,6 +826,7 @@
 <li class="toctree-l2"><a class="reference internal" href="external-clients.html#introduction">Introduction</a></li>
 <li class="toctree-l2"><a class="reference internal" href="external-clients.html#introduction">Introduction</a></li>
 <li class="toctree-l2"><a class="reference internal" href="external-clients.html#configuring-an-ingress-gateway">Configuring an Ingress Gateway</a></li>
 <li class="toctree-l2"><a class="reference internal" href="external-clients.html#configuring-an-ingress-gateway">Configuring an Ingress Gateway</a></li>
 <li class="toctree-l2"><a class="reference internal" href="external-clients.html#adding-clients-to-a-gateway">Adding Clients to a Gateway</a></li>
 <li class="toctree-l2"><a class="reference internal" href="external-clients.html#adding-clients-to-a-gateway">Adding Clients to a Gateway</a></li>
+<li class="toctree-l2"><a class="reference internal" href="external-clients.html#configuring-dns-for-ext-clients-optional">Configuring DNS for Ext Clients (OPTIONAL)</a></li>
 </ul>
 </ul>
 </li>
 </li>
 </ul>
 </ul>

+ 33 - 31
docs/_build/html/quick-start.html

@@ -308,8 +308,6 @@
         </li>
         </li>
         <li class="md-nav__item"><a href="#prepare-firewall" class="md-nav__link">Prepare Firewall</a>
         <li class="md-nav__item"><a href="#prepare-firewall" class="md-nav__link">Prepare Firewall</a>
         </li>
         </li>
-        <li class="md-nav__item"><a href="#prepare-for-dns" class="md-nav__link">Prepare for DNS</a>
-        </li>
         <li class="md-nav__item"><a href="#prepare-nginx" class="md-nav__link">Prepare Nginx</a>
         <li class="md-nav__item"><a href="#prepare-nginx" class="md-nav__link">Prepare Nginx</a>
         </li></ul>
         </li></ul>
             </nav>
             </nav>
@@ -536,6 +534,13 @@
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       
       
     
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="external-clients.html#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
+      
+    
     </li></ul>
     </li></ul>
     
     
     </li>
     </li>
@@ -741,8 +746,6 @@
         </li>
         </li>
         <li class="md-nav__item"><a href="#prepare-firewall" class="md-nav__link">Prepare Firewall</a>
         <li class="md-nav__item"><a href="#prepare-firewall" class="md-nav__link">Prepare Firewall</a>
         </li>
         </li>
-        <li class="md-nav__item"><a href="#prepare-for-dns" class="md-nav__link">Prepare for DNS</a>
-        </li>
         <li class="md-nav__item"><a href="#prepare-nginx" class="md-nav__link">Prepare Nginx</a>
         <li class="md-nav__item"><a href="#prepare-nginx" class="md-nav__link">Prepare Nginx</a>
         </li></ul>
         </li></ul>
             </nav>
             </nav>
@@ -771,21 +774,27 @@
 <p>This quick start guide is an <strong>opinionated</strong> guide for getting up and running with Netmaker as quickly as possible.</p>
 <p>This quick start guide is an <strong>opinionated</strong> guide for getting up and running with Netmaker as quickly as possible.</p>
 
 
 <h2 id="introduction">0. Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
 <h2 id="introduction">0. Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
-<p>We assume for this installation that you want all of the Netmaker features enabled, want your server to be secure, and want it to be accessible from anywhere.</p>
-<p>This instance will not be HA. However, it should comfortably handle around one hundred concurrent clients and support most use cases.</p>
-<p>If you are deploying for an enterprise use case, please contact <a class="reference external" href="mailto:info%40gravitl.com">info<span>@</span>gravitl<span>.</span>com</a> for support.</p>
+<p>We assume for this installation that you want all of the Netmaker features enabled, you want your server to be secure, and you want your server to be accessible from anywhere.</p>
+<p>This instance will not be HA. However, it should comfortably handle around one hundred concurrent clients and support the most common use cases.</p>
+<p>If you are deploying for a business or enterprise use case and this setup will not fit your needs, please contact <a class="reference external" href="mailto:info%40gravitl.com">info<span>@</span>gravitl<span>.</span>com</a>, or check out the business subscription plans at <a class="reference external" href="https://gravitl.com/plans/business">https://gravitl.com/plans/business</a>.</p>
 <p>By the end of this guide, you will have Netmaker installed on a public VM linked to your custom domain, secured behind an Nginx reverse proxy.</p>
 <p>By the end of this guide, you will have Netmaker installed on a public VM linked to your custom domain, secured behind an Nginx reverse proxy.</p>
-<p>If this configuration does not fit your use case, see the <a class="reference internal" href="server-installation.html"><span class="doc">Advanced Installation</span></a> docs.</p>
+<p>For information about deploying more advanced configurations, see the <a class="reference internal" href="server-installation.html"><span class="doc">Advanced Installation</span></a> docs.</p>
 
 
 
 
 <h2 id="prerequisites">1. Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">¶</a></h2>
 <h2 id="prerequisites">1. Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">¶</a></h2>
 <ul class="simple">
 <ul class="simple">
 <li><p><strong>Virtual Machine</strong></p>
 <li><p><strong>Virtual Machine</strong></p>
 <ul>
 <ul>
-<li><p>Preferably from a cloud provider (e.x: DigitalOcean, Linode, AWS, GCP, etc.)</p></li>
+<li><dl class="simple">
+<dt>Preferably from a cloud provider (e.x: DigitalOcean, Linode, AWS, GCP, etc.)</dt><dd><ul>
+<li><p>We do not recommend Oracle Cloud, as VM’s here have been known to cause network interference.</p></li>
+</ul>
+</dd>
+</dl>
+</li>
 <li><p>Public, static IP</p></li>
 <li><p>Public, static IP</p></li>
-<li><p>Min 2GB RAM, 1 CPU (4GB RAM, 2CPU preferred)</p></li>
-<li><p>5GB+ of storage</p></li>
+<li><p>Min 1GB RAM, 1 CPU (4GB RAM, 2CPU preferred)</p></li>
+<li><p>2GB+ of storage</p></li>
 <li><p>Ubuntu  20.04 Installed</p></li>
 <li><p>Ubuntu  20.04 Installed</p></li>
 </ul>
 </ul>
 </li>
 </li>
@@ -805,11 +814,11 @@
 <p>Begin by installing the community version of Docker and docker-compose (there are issues with the snap version). You can follow the official <a class="reference external" href="https://docs.docker.com/engine/install/">Docker instructions here</a>. Or, you can use the below series of commands which should work on Ubuntu 20.04.</p>
 <p>Begin by installing the community version of Docker and docker-compose (there are issues with the snap version). You can follow the official <a class="reference external" href="https://docs.docker.com/engine/install/">Docker instructions here</a>. Or, you can use the below series of commands which should work on Ubuntu 20.04.</p>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">remove</span> <span class="n">docker</span> <span class="n">docker</span><span class="o">-</span><span class="n">engine</span> <span class="n">docker</span><span class="o">.</span><span class="n">io</span> <span class="n">containerd</span> <span class="n">runc</span>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">remove</span> <span class="n">docker</span> <span class="n">docker</span><span class="o">-</span><span class="n">engine</span> <span class="n">docker</span><span class="o">.</span><span class="n">io</span> <span class="n">containerd</span> <span class="n">runc</span>
 <span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">update</span>
 <span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">update</span>
-<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">apt</span><span class="o">-</span><span class="n">transport</span><span class="o">-</span><span class="n">https</span> <span class="n">ca</span><span class="o">-</span><span class="n">certificates</span> <span class="n">curl</span> <span class="n">gnupg</span> <span class="n">lsb</span><span class="o">-</span><span class="n">release</span>
+<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">apt</span><span class="o">-</span><span class="n">transport</span><span class="o">-</span><span class="n">https</span> <span class="n">ca</span><span class="o">-</span><span class="n">certificates</span> <span class="n">curl</span> <span class="n">gnupg</span> <span class="n">lsb</span><span class="o">-</span><span class="n">release</span>
 <span class="n">curl</span> <span class="o">-</span><span class="n">fsSL</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">download</span><span class="o">.</span><span class="n">docker</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">linux</span><span class="o">/</span><span class="n">ubuntu</span><span class="o">/</span><span class="n">gpg</span> <span class="o">|</span> <span class="n">sudo</span> <span class="n">gpg</span> <span class="o">--</span><span class="n">dearmor</span> <span class="o">-</span><span class="n">o</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">keyrings</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">archive</span><span class="o">-</span><span class="n">keyring</span><span class="o">.</span><span class="n">gpg</span>
 <span class="n">curl</span> <span class="o">-</span><span class="n">fsSL</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">download</span><span class="o">.</span><span class="n">docker</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">linux</span><span class="o">/</span><span class="n">ubuntu</span><span class="o">/</span><span class="n">gpg</span> <span class="o">|</span> <span class="n">sudo</span> <span class="n">gpg</span> <span class="o">--</span><span class="n">dearmor</span> <span class="o">-</span><span class="n">o</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">keyrings</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">archive</span><span class="o">-</span><span class="n">keyring</span><span class="o">.</span><span class="n">gpg</span>
 <span class="n">echo</span> <span class="s2">"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</span> <span class="o">|</span> <span class="n">sudo</span> <span class="n">tee</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">apt</span><span class="o">/</span><span class="n">sources</span><span class="o">.</span><span class="n">list</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">docker</span><span class="o">.</span><span class="n">list</span> <span class="o">&gt;</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span>
 <span class="n">echo</span> <span class="s2">"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</span> <span class="o">|</span> <span class="n">sudo</span> <span class="n">tee</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">apt</span><span class="o">/</span><span class="n">sources</span><span class="o">.</span><span class="n">list</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">docker</span><span class="o">.</span><span class="n">list</span> <span class="o">&gt;</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">null</span>
 <span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">update</span>
 <span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">update</span>
-<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="n">install</span> <span class="n">docker</span><span class="o">-</span><span class="n">ce</span> <span class="n">docker</span><span class="o">-</span><span class="n">ce</span><span class="o">-</span><span class="n">cli</span> <span class="n">containerd</span><span class="o">.</span><span class="n">io</span>
+<span class="n">sudo</span> <span class="n">apt</span><span class="o">-</span><span class="n">get</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">docker</span><span class="o">-</span><span class="n">ce</span> <span class="n">docker</span><span class="o">-</span><span class="n">ce</span><span class="o">-</span><span class="n">cli</span> <span class="n">containerd</span><span class="o">.</span><span class="n">io</span>
 <span class="n">sudo</span> <span class="n">curl</span> <span class="o">-</span><span class="n">L</span> <span class="s2">"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)"</span> <span class="o">-</span><span class="n">o</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span>
 <span class="n">sudo</span> <span class="n">curl</span> <span class="o">-</span><span class="n">L</span> <span class="s2">"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)"</span> <span class="o">-</span><span class="n">o</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span>
 <span class="n">sudo</span> <span class="n">chmod</span> <span class="o">+</span><span class="n">x</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span>
 <span class="n">sudo</span> <span class="n">chmod</span> <span class="o">+</span><span class="n">x</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span>
 <span class="n">docker</span> <span class="o">--</span><span class="n">version</span>
 <span class="n">docker</span> <span class="o">--</span><span class="n">version</span>
@@ -821,7 +830,7 @@
 
 
 <h3 id="id1">Install Dependencies<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
 <h3 id="id1">Install Dependencies<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
 <p>In addition to Docker, this installation requires WireGuard, Nginx, and Certbot.</p>
 <p>In addition to Docker, this installation requires WireGuard, Nginx, and Certbot.</p>
-<p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">apt</span> <span class="pre">install</span> <span class="pre">wireguard</span> <span class="pre">wireguard-tools</span> <span class="pre">nginx</span> <span class="pre">certbot</span> <span class="pre">python3-certbot-nginx</span> <span class="pre">net-tools</span></code></p>
+<p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">apt</span> <span class="pre">-y</span> <span class="pre">install</span> <span class="pre">wireguard</span> <span class="pre">wireguard-tools</span> <span class="pre">nginx</span> <span class="pre">certbot</span> <span class="pre">python3-certbot-nginx</span> <span class="pre">net-tools</span></code></p>
 
 
 
 
 
 
@@ -864,18 +873,8 @@
 </ul>
 </ul>
 </dd>
 </dd>
 </dl>
 </dl>
-
-
-<h3 id="prepare-for-dns">Prepare for DNS<a class="headerlink" href="#prepare-for-dns" title="Permalink to this headline">¶</a></h3>
-<p>On Ubuntu 20.04, by default there is a service consuming port 53 related to DNS resolution. We need port 53 open in order to run our own DNS server. The below steps will disable systemd-resolved, and insert a generic DNS nameserver for local resolution.</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">systemctl</span> <span class="n">stop</span> <span class="n">systemd</span><span class="o">-</span><span class="n">resolved</span>
-<span class="n">systemctl</span> <span class="n">disable</span> <span class="n">systemd</span><span class="o">-</span><span class="n">resolved</span>
-<span class="n">vim</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">resolved</span><span class="o">.</span><span class="n">conf</span>
-  <span class="o">*</span>  <span class="n">uncomment</span> <span class="n">DNS</span> <span class="ow">and</span> <span class="n">add</span> <span class="mf">8.8.8.8</span> <span class="ow">or</span> <span class="n">whatever</span> <span class="n">reachable</span> <span class="n">nameserver</span> <span class="ow">is</span> <span class="n">your</span> <span class="n">preference</span>  <span class="o">*</span>
-  <span class="o">*</span>  <span class="n">uncomment</span> <span class="n">DNSStubListener</span> <span class="ow">and</span> <span class="nb">set</span> <span class="n">to</span> <span class="s2">"no"</span>  <span class="o">*</span>
-<span class="n">ln</span> <span class="o">-</span><span class="n">sf</span> <span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">systemd</span><span class="o">/</span><span class="n">resolve</span><span class="o">/</span><span class="n">resolv</span><span class="o">.</span><span class="n">conf</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">resolv</span><span class="o">.</span><span class="n">conf</span>
-</pre></div>
-</div>
+<p>In addition to the above ports, you will need to make sure that your cloud’s firewall or security groups are opened for the range of ports that Netmaker’s WireGuard interfaces consume.</p>
+<p>Netmaker will create one interface per network, starting from 51821. So, if you plan on having 5 networks, you will want to have at least 51821-51825 open (udp).</p>
 
 
 
 
 <h3 id="prepare-nginx">Prepare Nginx<a class="headerlink" href="#prepare-nginx" title="Permalink to this headline">¶</a></h3>
 <h3 id="prepare-nginx">Prepare Nginx<a class="headerlink" href="#prepare-nginx" title="Permalink to this headline">¶</a></h3>
@@ -895,20 +894,23 @@
 <h2 id="install-netmaker">4. Install Netmaker<a class="headerlink" href="#install-netmaker" title="Permalink to this headline">¶</a></h2>
 <h2 id="install-netmaker">4. Install Netmaker<a class="headerlink" href="#install-netmaker" title="Permalink to this headline">¶</a></h2>
 
 
 <h3 id="prepare-templates">Prepare Templates<a class="headerlink" href="#prepare-templates" title="Permalink to this headline">¶</a></h3>
 <h3 id="prepare-templates">Prepare Templates<a class="headerlink" href="#prepare-templates" title="Permalink to this headline">¶</a></h3>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">wget</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">raw</span><span class="o">.</span><span class="n">githubusercontent</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">gravitl</span><span class="o">/</span><span class="n">netmaker</span><span class="o">/</span><span class="n">develop</span><span class="o">/</span><span class="n">compose</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">quickstart</span><span class="o">.</span><span class="n">yml</span>
-<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/NETMAKER_BASE_DOMAIN/&lt;your base domain&gt;/g'</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">quickstart</span><span class="o">.</span><span class="n">yml</span>
-<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/SERVER_PUBLIC_IP/&lt;your server ip&gt;/g'</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">quickstart</span><span class="o">.</span><span class="n">yml</span>
+<p><strong>Note on COREDNS_IP:</strong> Depending on your cloud provider, the public IP may not be bound directly to the VM on which you are running. In such cases, CoreDNS cannot bind to this IP, and you should use the IP of the default interface on your machine in place of COREDNS_IP. If the public IP <strong>is</strong> bound to the VM, you can simply use the same IP as SERVER_PUBLIC_IP.</p>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">wget</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">raw</span><span class="o">.</span><span class="n">githubusercontent</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">gravitl</span><span class="o">/</span><span class="n">netmaker</span><span class="o">/</span><span class="n">develop</span><span class="o">/</span><span class="n">compose</span><span class="o">/</span><span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">yml</span>
+<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/NETMAKER_BASE_DOMAIN/&lt;your base domain&gt;/g'</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">yml</span>
+<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/SERVER_PUBLIC_IP/&lt;your server ip&gt;/g'</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">yml</span>
+<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/COREDNS_IP/&lt;your server ip&gt;/g'</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">yml</span>
 </pre></div>
 </pre></div>
 </div>
 </div>
 <p>Generate a unique master key and insert it:</p>
 <p>Generate a unique master key and insert it:</p>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">tr</span> <span class="o">-</span><span class="n">dc</span> <span class="n">A</span><span class="o">-</span><span class="n">Za</span><span class="o">-</span><span class="n">z0</span><span class="o">-</span><span class="mi">9</span> <span class="o">&lt;/</span><span class="n">dev</span><span class="o">/</span><span class="n">urandom</span> <span class="o">|</span> <span class="n">head</span> <span class="o">-</span><span class="n">c</span> <span class="mi">30</span> <span class="p">;</span> <span class="n">echo</span> <span class="s1">''</span>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">tr</span> <span class="o">-</span><span class="n">dc</span> <span class="n">A</span><span class="o">-</span><span class="n">Za</span><span class="o">-</span><span class="n">z0</span><span class="o">-</span><span class="mi">9</span> <span class="o">&lt;/</span><span class="n">dev</span><span class="o">/</span><span class="n">urandom</span> <span class="o">|</span> <span class="n">head</span> <span class="o">-</span><span class="n">c</span> <span class="mi">30</span> <span class="p">;</span> <span class="n">echo</span> <span class="s1">''</span>
-<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/REPLACE_MASTER_KEY/&lt;your generated key&gt;/g'</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">quickstart</span><span class="o">.</span><span class="n">yml</span>
+<span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'s/REPLACE_MASTER_KEY/&lt;your generated key&gt;/g'</span> <span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="o">.</span><span class="n">yml</span>
 </pre></div>
 </pre></div>
 </div>
 </div>
+<p>You may want to save this key for future use with the API.</p>
 
 
 
 
 <h3 id="start-netmaker">Start Netmaker<a class="headerlink" href="#start-netmaker" title="Permalink to this headline">¶</a></h3>
 <h3 id="start-netmaker">Start Netmaker<a class="headerlink" href="#start-netmaker" title="Permalink to this headline">¶</a></h3>
-<p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">docker-compose</span> <span class="pre">-f</span> <span class="pre">docker-compose.quickstart.yml</span> <span class="pre">up</span> <span class="pre">-d</span></code></p>
+<p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">docker-compose</span> <span class="pre">-f</span> <span class="pre">docker-compose.yml</span> <span class="pre">up</span> <span class="pre">-d</span></code></p>
 <p>navigate to dashboard.&lt;your base domain&gt; to see your nginx instance.</p>
 <p>navigate to dashboard.&lt;your base domain&gt; to see your nginx instance.</p>
 <p>To troubleshoot issues, start with:</p>
 <p>To troubleshoot issues, start with:</p>
 <p><code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">logs</span> <span class="pre">netmaker</span></code></p>
 <p><code class="docutils literal notranslate"><span class="pre">docker</span> <span class="pre">logs</span> <span class="pre">netmaker</span></code></p>

+ 7 - 0
docs/_build/html/search.html

@@ -494,6 +494,13 @@
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       
       
     
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="external-clients.html#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
+      
+    
     </li></ul>
     </li></ul>
     
     
     </li>
     </li>

File diff suppressed because it is too large
+ 0 - 0
docs/_build/html/searchindex.js


+ 7 - 0
docs/_build/html/server-installation.html

@@ -548,6 +548,13 @@
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       
       
     
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="external-clients.html#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
+      
+    
     </li></ul>
     </li></ul>
     
     
     </li>
     </li>

+ 7 - 0
docs/_build/html/troubleshoot.html

@@ -490,6 +490,13 @@
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       <a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
       
       
     
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="external-clients.html#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
+      
+    
     </li></ul>
     </li></ul>
     
     
     </li>
     </li>

+ 23 - 16
docs/quick-start.rst

@@ -7,15 +7,15 @@ This quick start guide is an **opinionated** guide for getting up and running wi
 0. Introduction
 0. Introduction
 ==================
 ==================
 
 
-We assume for this installation that you want all of the Netmaker features enabled, want your server to be secure, and want it to be accessible from anywhere.
+We assume for this installation that you want all of the Netmaker features enabled, you want your server to be secure, and you want your server to be accessible from anywhere.
 
 
-This instance will not be HA. However, it should comfortably handle around one hundred concurrent clients and support most use cases.
+This instance will not be HA. However, it should comfortably handle around one hundred concurrent clients and support the most common use cases.
 
 
-If you are deploying for a business or enterprise use case and this setup will not fit your needs, please contact [email protected], or check out the business subscription plans at gravitl.com/plans.
+If you are deploying for a business or enterprise use case and this setup will not fit your needs, please contact [email protected], or check out the business subscription plans at https://gravitl.com/plans/business.
 
 
 By the end of this guide, you will have Netmaker installed on a public VM linked to your custom domain, secured behind an Nginx reverse proxy.
 By the end of this guide, you will have Netmaker installed on a public VM linked to your custom domain, secured behind an Nginx reverse proxy.
 
 
-If this configuration does not fit your use case, see the :doc:`Advanced Installation <./server-installation>` docs. 
+For information about deploying more advanced configurations, see the :doc:`Advanced Installation <./server-installation>` docs. 
 
 
 
 
 1. Prerequisites
 1. Prerequisites
@@ -47,11 +47,11 @@ Begin by installing the community version of Docker and docker-compose (there ar
 
 
   sudo apt-get remove docker docker-engine docker.io containerd runc
   sudo apt-get remove docker docker-engine docker.io containerd runc
   sudo apt-get update
   sudo apt-get update
-  sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
+  sudo apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg  
   echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
   echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
   sudo apt-get update
   sudo apt-get update
-  sudo apt-get install docker-ce docker-ce-cli containerd.io
+  sudo apt-get -y install docker-ce docker-ce-cli containerd.io
   sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
   sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
   sudo chmod +x /usr/local/bin/docker-compose
   sudo chmod +x /usr/local/bin/docker-compose
   docker --version
   docker --version
@@ -64,7 +64,7 @@ Install Dependencies
 
 
 In addition to Docker, this installation requires WireGuard, Nginx, and Certbot.
 In addition to Docker, this installation requires WireGuard, Nginx, and Certbot.
 
 
-``sudo apt install wireguard wireguard-tools nginx certbot python3-certbot-nginx net-tools``
+``sudo apt -y install wireguard wireguard-tools nginx certbot python3-certbot-nginx net-tools``
 
 
  
  
 3. Prepare VM
 3. Prepare VM
@@ -109,6 +109,10 @@ Make sure firewall settings are appropriate for Netmaker. You need ports 53 and
   - allow 443/tcp from all
   - allow 443/tcp from all
   - allow 53/udp and 53/tcp from all
   - allow 53/udp and 53/tcp from all
 
 
+In addition to the above ports, you will need to make sure that your cloud's firewall or security groups are opened for the range of ports that Netmaker's WireGuard interfaces consume.
+
+Netmaker will create one interface per network, starting from 51821. So, if you plan on having 5 networks, you will want to have at least 51821-51825 open (udp).
+
 Prepare Nginx
 Prepare Nginx
 -----------------
 -----------------
 
 
@@ -122,10 +126,8 @@ Insert your domain in the configuration file and add to nginx:
 
 
 .. code-block::
 .. code-block::
 
 
-  NETMAKER_BASE_DOMAIN=<your base domain>
-  sed -i 's/NETMAKER_BASE_DOMAIN/$NETMAKER_BASE_DOMAIN/g' netmaker-nginx-template.conf
-  sudo cp netmaker-nginx-template.conf /etc/nginx/sites-available/netmaker-nginx.conf
-  sudo ln -s /etc/nginx/sites-available/netmaker-nginx.conf /etc/nginx/sites-enabled/netmaker.nginx.conf
+  sed -i 's/NETMAKER_BASE_DOMAIN/<your base domain>/g' netmaker-nginx-template.conf
+  sudo cp netmaker-nginx-template.conf /etc/nginx/conf.d/<your base domain>.conf
   nginx -t && nginx -s reload
   nginx -t && nginx -s reload
   systemctl restart nginx
   systemctl restart nginx
 
 
@@ -135,23 +137,28 @@ Insert your domain in the configuration file and add to nginx:
 Prepare Templates
 Prepare Templates
 ------------------
 ------------------
 
 
+**Note on COREDNS_IP:** Depending on your cloud provider, the public IP may not be bound directly to the VM on which you are running. In such cases, CoreDNS cannot bind to this IP, and you should use the IP of the default interface on your machine in place of COREDNS_IP. If the public IP **is** bound to the VM, you can simply use the same IP as SERVER_PUBLIC_IP.
+
 .. code-block::
 .. code-block::
 
 
-  wget https://raw.githubusercontent.com/gravitl/netmaker/develop/compose/docker-compose.quickstart.yml
-  sed -i 's/NETMAKER_BASE_DOMAIN/$NETMAKER_BASE_DOMAIN/g' docker-compose.quickstart.yml
-  sed -i 's/SERVER_PUBLIC_IP/<your server ip>/g' docker-compose.quickstart.yml
+  wget https://raw.githubusercontent.com/gravitl/netmaker/develop/compose/docker-compose.yml
+  sed -i 's/NETMAKER_BASE_DOMAIN/<your base domain>/g' docker-compose.yml
+  sed -i 's/SERVER_PUBLIC_IP/<your server ip>/g' docker-compose.yml
+  sed -i 's/COREDNS_IP/<your server ip>/g' docker-compose.yml
 
 
 Generate a unique master key and insert it:
 Generate a unique master key and insert it:
 
 
 .. code-block::
 .. code-block::
 
 
   tr -dc A-Za-z0-9 </dev/urandom | head -c 30 ; echo ''
   tr -dc A-Za-z0-9 </dev/urandom | head -c 30 ; echo ''
-  sed -i 's/REPLACE_MASTER_KEY/<your generated key>/g' docker-compose.quickstart.yml
+  sed -i 's/REPLACE_MASTER_KEY/<your generated key>/g' docker-compose.yml
+
+You may want to save this key for future use with the API.
 
 
 Start Netmaker
 Start Netmaker
 ----------------
 ----------------
 
 
-``sudo docker-compose -f docker-compose.quickstart.yml up -d``
+``sudo docker-compose -f docker-compose.yml up -d``
 
 
 navigate to dashboard.<your base domain> to see your nginx instance.
 navigate to dashboard.<your base domain> to see your nginx instance.
 
 

+ 1 - 0
models/names.go

@@ -12,6 +12,7 @@ var NAMES = []string{
 	"iconic",
 	"iconic",
 	"threat",
 	"threat",
 	"strike",
 	"strike",
+	"boy",
 	"vital",
 	"vital",
 	"unity",
 	"unity",
 	"audio",
 	"audio",

+ 2 - 2
netclient/netclient.exe.manifest.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     <assemblyIdentity
     <assemblyIdentity
-            version="0.7.3.0"
+            version="0.8.0"
             processorArchitecture="*"
             processorArchitecture="*"
             name="netclient.exe"
             name="netclient.exe"
             type="win32"
             type="win32"
@@ -10,7 +10,7 @@
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
     <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
         <security>
         <security>
             <requestedPrivileges>
             <requestedPrivileges>
-                <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+                <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
             </requestedPrivileges>
             </requestedPrivileges>
         </security>
         </security>
     </trustInfo>
     </trustInfo>

BIN
netmaker-arm


BIN
netmaker-arm64


BIN
netmaker32


Some files were not shown because too many files changed in this diff