Browse Source

completed quickstart guide

afeiszli 4 years ago
parent
commit
22c3bbdb48
54 changed files with 1976 additions and 410 deletions
  1. 43 0
      compose/docker-compose.quick.yml
  2. 59 0
      compose/docker-compose.reference.yml
  3. 12 27
      compose/docker-compose.yml
  4. 2 0
      docs/Dockerfile
  5. BIN
      docs/_build/doctrees/about.doctree
  6. BIN
      docs/_build/doctrees/architecture.doctree
  7. BIN
      docs/_build/doctrees/environment.pickle
  8. BIN
      docs/_build/doctrees/index.doctree
  9. BIN
      docs/_build/doctrees/quick-start.doctree
  10. BIN
      docs/_build/doctrees/support.doctree
  11. BIN
      docs/_build/doctrees/troubleshoot.doctree
  12. BIN
      docs/_build/html/_images/access-key.png
  13. BIN
      docs/_build/html/_images/create-user.png
  14. BIN
      docs/_build/html/_images/default-net.png
  15. BIN
      docs/_build/html/_images/nc-install-output.png
  16. BIN
      docs/_build/html/_images/nm-node-success.png
  17. BIN
      docs/_build/html/_images/node-details.png
  18. BIN
      docs/_build/html/_images/nodes.png
  19. BIN
      docs/_build/html/_images/ping-node.png
  20. 1 1
      docs/_build/html/_sources/about.rst.txt
  21. 2 2
      docs/_build/html/_sources/architecture.rst.txt
  22. 13 2
      docs/_build/html/_sources/index.rst.txt
  23. 126 80
      docs/_build/html/_sources/quick-start.rst.txt
  24. 0 19
      docs/_build/html/_sources/support.rst.txt
  25. 19 0
      docs/_build/html/_sources/troubleshoot.rst.txt
  26. 81 4
      docs/_build/html/about.html
  27. 80 3
      docs/_build/html/architecture.html
  28. 94 3
      docs/_build/html/genindex.html
  29. 124 6
      docs/_build/html/index.html
  30. BIN
      docs/_build/html/objects.inv
  31. 231 98
      docs/_build/html/quick-start.html
  32. 94 3
      docs/_build/html/search.html
  33. 0 0
      docs/_build/html/searchindex.js
  34. 81 57
      docs/_build/html/support.html
  35. 753 0
      docs/_build/html/troubleshoot.html
  36. 1 1
      docs/about.rst
  37. 2 2
      docs/architecture.rst
  38. BIN
      docs/images/access-key.png
  39. BIN
      docs/images/create-user.png
  40. BIN
      docs/images/default-net.png
  41. 0 0
      docs/images/mesh-diagram.png
  42. 0 0
      docs/images/mesh.png
  43. BIN
      docs/images/nc-install-output.png
  44. 0 0
      docs/images/netmaker.png
  45. 0 0
      docs/images/nm-diagram.jpg
  46. BIN
      docs/images/nm-node-success.png
  47. BIN
      docs/images/node-details.png
  48. BIN
      docs/images/nodes.png
  49. BIN
      docs/images/ping-node.png
  50. 13 2
      docs/index.rst
  51. 126 80
      docs/quick-start.rst
  52. 0 19
      docs/support.rst
  53. 19 0
      docs/troubleshoot.rst
  54. 0 1
      docs/youtube-1.html.backup

+ 43 - 0
compose/docker-compose.quick.yml

@@ -0,0 +1,43 @@
+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.3
+    restart: always
+    environment:
+      SERVER_HOST: "HOST_IP"
+      DNS_MODE: "off"
+      CLIENT_MODE: "off"
+  netmaker-ui:
+    container_name: netmaker-ui
+    depends_on:
+      - netmaker
+    image: gravitl/netmaker-ui:v0.3
+    links:
+      - "netmaker:api"
+    ports:
+      - "80:80"
+    environment:
+      BACKEND_URL: "http://HOST_IP:8081"
+volumes:
+  mongovol: {}

+ 59 - 0
compose/docker-compose.reference.yml

@@ -0,0 +1,59 @@
+version: "3.4"
+
+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:
+    privileged: true
+    container_name: netmaker
+    depends_on:
+      - mongodb
+    image: gravitl/netmaker:v0.3
+    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
+  netmaker-ui:
+    container_name: netmaker-ui
+    depends_on:
+      - netmaker
+    image: gravitl/netmaker-ui:v0.3
+    links:
+      - "netmaker:api"
+    ports:
+      - "80:80"
+    environment:
+      BACKEND_URL: "http://3.236.149.180: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: {}

+ 12 - 27
compose/docker-compose.yml

@@ -1,5 +1,8 @@
 version: "3.4"
 
+volumes:
+  dnsconfig:
+  driver: local
 services:
   mongodb:
     image: mongo:4.2
@@ -13,25 +16,19 @@ services:
       MONGO_INITDB_ROOT_USERNAME: mongoadmin
       MONGO_INITDB_ROOT_PASSWORD: mongopass
   netmaker:
-    privileged: true
     container_name: netmaker
+    ports:
+      - "8081:8081"
+      - "50051:50051"
     depends_on:
       - mongodb
     image: gravitl/netmaker:v0.3
-    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:
+      MONGO_HOST: "mongodb"
+      SERVER_HOST: "HOST_IP"
+      DNS_MODE: "off"
+      CLIENT_MODE: "off"
   netmaker-ui:
     container_name: netmaker-ui
     depends_on:
@@ -42,18 +39,6 @@ services:
     ports:
       - "80:80"
     environment:
-      BACKEND_URL: "http://3.236.149.180: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
+      BACKEND_URL: "http://HOST_IP:8081"
 volumes:
   mongovol: {}
-  dnsconfig: {}

+ 2 - 0
docs/Dockerfile

@@ -0,0 +1,2 @@
+FROM nginx:1.19
+COPY _build/html /usr/share/nginx/html

BIN
docs/_build/doctrees/about.doctree


BIN
docs/_build/doctrees/architecture.doctree


BIN
docs/_build/doctrees/environment.pickle


BIN
docs/_build/doctrees/index.doctree


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


BIN
docs/_build/doctrees/support.doctree


BIN
docs/_build/doctrees/troubleshoot.doctree


BIN
docs/_build/html/_images/access-key.png


BIN
docs/_build/html/_images/create-user.png


BIN
docs/_build/html/_images/default-net.png


BIN
docs/_build/html/_images/nc-install-output.png


BIN
docs/_build/html/_images/nm-node-success.png


BIN
docs/_build/html/_images/node-details.png


BIN
docs/_build/html/_images/nodes.png


BIN
docs/_build/html/_images/ping-node.png


+ 1 - 1
docs/_build/html/_sources/about.rst.txt

@@ -7,7 +7,7 @@ What is Netmaker?
 
 Netmaker is a tool for creating and managing virtual overlay networks. If you have at least two machines with internet access which you need to connect with a secure tunnel, Netmaker is for you. If you have thousands of servers spread across multiple locations, data centers, or clouds, Netmaker is also for you. Netmaker connects machines securely, wherever they are.
 
-.. image:: mesh-diagram.png
+.. image:: images/mesh-diagram.png
    :width: 50%
    :alt: WireGuard Mesh
    :align: center

+ 2 - 2
docs/_build/html/_sources/architecture.rst.txt

@@ -2,7 +2,7 @@
 Architecture
 ===============
 
-.. image:: nm-diagram.jpg
+.. image:: images/nm-diagram.jpg
    :width: 45%
    :alt: Netmaker Architecture Diagram
    :align: center
@@ -28,7 +28,7 @@ Mesh Network
 
 When we refer to a mesh network in these documents we are typically referring to a "full mesh."
 
-.. image:: mesh.png
+.. image:: images/mesh.png
    :width: 33%
    :alt: Full Mesh Network Diagram
    :align: center

+ 13 - 2
docs/_build/html/_sources/index.rst.txt

@@ -4,7 +4,7 @@
    contain the root `toctree` directive.
 
 
-.. image:: netmaker.png
+.. image:: images/netmaker.png
    :width: 100%
    :alt: Netmaker WireGuard
    :align: center
@@ -100,10 +100,21 @@ A reference document for the Netmaker Server API, and example API calls for vari
 
    api
 
+Troubleshooting
+----------------
+
+Help with common Netmaker/netclient issues.
+
+.. toctree::
+   :maxdepth: 2
+
+   troubleshoot
+
+
 Support
 ----------------
 
-A few helpful documents for if you run into issues with Netmaker.
+Where to go for help, and a FAQ.
 
 .. toctree::
    :maxdepth: 2

+ 126 - 80
docs/_build/html/_sources/quick-start.rst.txt

@@ -2,90 +2,136 @@
 Quick Start
 ===========
 
-[Intro/Overview Video Tutorial](https://youtu.be/PWLPT320Ybo)  
-[Site-to-Site Video Tutorial](https://youtu.be/krCKBJhwwDk)  
-
-### Note about permissions
-The default installation requires special privileges on the server side, because Netmaker will control the local kernel Wireguard. This can be turned off and run in non-privileged mode if necessary (but disables some features). For more details, see the **Usage** docs.
-
-### Prereqs
- 1. A running linux server to host Netmaker, with an IP reachable by your computers (Debian-based preferred but not required).
- 2. Linux installed on the above server (Debian-based preferred but not required).
- 3. Install Docker and Docker Compose if running in Docker Mode (see below).
- 4. System dependencies installed:
-	 - Docker (if running in default Docker mode. DO NOT use snap install for docker.)
-	 - Docker Compose
-	 - Wireguard + Resolvectl (if running in default Client mode)
-
-#### CoreDNS Preparation
-v0.3 introduces CoreDNS as a private nameserver. To run CoreDNS on your server host, you must disable systemd-resolved to open port 53: 
-1. systemctl stop systemd-resolved
-2. systemctl disable systemd-resolved
-3. vim /etc/systemd/resolved.conf
-	 - uncomment **DNS=** and add 8.8.8.8 or whatever is your preference
-	 - uncomment **DNSStubListener=** and set to **"no"**
- 4. sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
-
-
-
-### Launch Netmaker
-Note, this installs Netmaker with CoreDNS and a Netclient (privileged).  If you want to run the server non-privileged or without CoreDNS, see the advanced usage docs. 
-
-1. Clone this repo or just copy contents of "docker-compose.yml" to your Netmaker server (from prereqs).
-2. In docker-compose.yml, change BACKEND_URL to the public IP of your server.
-3. Run `sudo docker-compose up -d`
-4. Navigate to your server's IP in the browser and you should see the Netmaker UI asking to create a new admin user.
-5. Create a new admin user
-6. You are now ready to begin using Netmaker. 
-
-### Create a Network
-You can also just use the "default" network.
-1. Click "CREATE NETWORK" in the upper left of your console
-2. Enter a valid address range, e.g. 10.11.12.0/24
-3. Enter a name such as "homenet"
-4. Additional options:
-	- **Dual Stack**: Machines will recieve a private IPv6 address in addition to their IPv4 address.
-	- **Local:** Will use local address range for endpoints instead of public. Use Case: Home or Office network where most devices do not have public IP's. In this case you can create a gateway into the network after creating the Local Network.
-
-After Network creation, you can edit the network in the NETWORK DETAILS pane, modifying the address range and default options. You can also toggle on **Allow Node Signup Without Keys**, which makes the next step unnecessary, but allows anyone to create a node in your network, which will be cordoned in pending state.
-
-### Create Keys
-1. Click the "ACCESS KEYS" tab
-2. Click "ADD NEW ACCESSS KEY"
-3. Give your key a name and number of uses
-4. Several values will be displayed. Save these somewhere, as they will only be displayed once:
-	- **Access Key:** Use only in special edge cases where server connection string must be modified
-	- **Access Token:** Use on machines that already have the netclient utility
-	- **Install Command:** Use on machines that do not have the netclient utility
-
-### Install Agent:
-For machines **without** netclient, run the install command (from above): `curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/netclient-install.sh | KEY=<your access key> sh -`  
-For machines **with** netclient run the following (with access token from above): `sudo netclient -c install -t <access token>`
-For networks with **manual signup** enabled (see above), install using the network name: `sudo netclient -c install -n <network name>`
-
-### Manage Nodes
+Introduction
+==============
+
+This is a guide to getting up and running with Netmaker as quickly as possible. 
+
+By default, Netmaker ships with DNS Mode and Client Mode enabled. However, these features require special permissions and are not necessary for a simple setup, so we are going to deploy without them. To learn more about enabling these features, check out the :doc:`installation docs <./server-installation>`.
+
+Prerequisites
+==================
+ #. A Linux server to host Netmaker, with an external IP reachable by your nodes (will be referred to as **your-host** in  document).
+ #. Docker and Docker Compose installed on the above server. Follow the official `Docker instructions <https://docs.docker.com/engine/install/>`_ for installing Docker and Docker Compose on your system.
+ #. All network nodes should be systemd-based (see Compatibility under :doc:`Architecture <./architecture>` docs)
+
+Install
+==============
+#. ``ssh root@your-host``
+#. ``wget -O docker-compose.yml https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/docker-compose.quick.yml``
+#. ``sed -i ‘s/HOST_IP/< Insert your-host IP Address Here >/g’ docker-compose.yml``
+#. ``docker-compose up -d``
+
+Navigate to the IP address of your host in the browser. You should see the below screen. If not, please see the Quick Start section of the :doc:`troubleshooting <./support>` docs.
+
+.. image:: images/create-user.png
+   :width: 80%
+   :alt: Create User Screen
+   :align: center
+
+Setup
+=================
+
+#. Create your admin user, with a username and password.
+#. Login with your new user
+#. Examine the **default** network. Click on DEFAULT under NETWORK DETAILS
+
+.. image:: images/default-net.png
+   :width: 80%
+   :alt: Create User Screen
+   :align: center
+
+This displays information about the **default** network, which is created on server startup. You can delete this network if you do not need it, but for standard use cases this network should be enough to get started. Nodes will get an address from the network address range (ADDRESSRANGE). If the range conflicts with a pre-existing private network on your devices, you may want to change this, or make a new network instead. Nodes will also get default settings from here for unset configurations. For instance, the DEFAULTKEEPALIVE field will set the PersistenKeepAlive for nodes.
+
+To get started quickly, we can just use the existing default network.
+
+Create Key
+------------
+
+#. Click on the ACCESS KEYS tab and select the DEFAULT network.
+#. Click ADD NEW ACCESS KEY
+#. Give it a name (ex: "mykey") and a number of uses (ex: 25)
+#. Click CREATE KEY (**Important:** Do not click out of the following screen until you have saved your key details. It will appear only once.)
+#. Copy the bottom command under "Your agent install command with access token" and save it somewhere locally. E.x: ``curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/scripts/netclient-install.sh | KEY=vm3ow4thatogiwnsla3thsl3894ths sh -``
+
+.. image:: images/access-key.png
+   :width: 80%
+   :alt: Access Key Screen
+   :align: center
+
+You will use this command to install the netclient on your nodes. There are three different values for three different scenarios: 
+
+* The **Access Key** value is the secret string that will allow your node to authenticate with the Netmaker network. This can be used with existing netclient installations where additional configurations (such as setting the server IP manually) may be required. This is not typical. E.g. ``netclient -c install -k <access key> -s 1.2.3.4 -p 50052``
+* The **Access Token** value is a base64 encoded string that contains the server IP and grpc port, as well as the access key. This is decoded by the netclient and can be used with existing netclient installations like this: ``netclient -c install -t <access token>``. You should use this method for adding a network to a node that is already on a network. For instance, Node A is in the **mynet** network and now you are adding it to **default**.
+* The **install command** value is a curl command that can be run on Linux systems. It is a simple script that downloads the netclient binary and runs the install command all in one.
+  
+Networks can also be enabled to allow nodes to sign up without keys at all. In this scenario, nodes enter a "pending state" and are not permitted to join the network until an admin approves them.
+
+Deploy Nodes
+=================
+
+1. SSH to each machine 
+2. ``sudo su -``
+3. **Prerequisite Check:** Every Linux machine on which you run the netclient must have WireGuard and systemd installed
+
+  * ``which wg`` (should show wg binary present)
+  * ``pidof systemd && echo "systemd found" || echo "systemd not found"``
+
+4. Run the install command, Ex: ``curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/scripts/netclient-install.sh | KEY=vm3ow4thatogiwnsla3thsl3894ths sh -``
+
+You should get output similar to the below. The netclient retrieves local settings, submits them to the server for processing, and retrieves updated settings. Then it sets the local network configuration. For more information about this process, see the :doc:`client installation <./client-installation>` documentation. If this process failed and you do not see your node in the console (see below), then reference the :doc:`troubleshooting <./troubleshoot>` documentation.
+
+.. image:: images/nc-install-output.png
+   :width: 80%
+   :alt: Output from Netclient Install
+   :align: center
+
+
+.. image:: images/nm-node-success.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+
+Repeat the above steps for every machine you would like to add to your network. You can re-use the same install command so long as you do not run out of uses on your access key (after which it will be invalidated and deleted).
+
+Once installed on all nodes, you can test the connection by pinging the private address of any node from any other node.
+
+
+.. image:: images/ping-node.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+Manage Nodes
+===============
+
 Your machines should now be visible in the control pane. 
-**Modify nodes:** Click the pencil icon in the NODES pane to modify details like WireGuard port, address, and node name. You can also **DELETE** nodes here and they will lose network access.
-**Approve nodes:** If a node is in pending state (signed up without key), you can approve it. An icon will appear for pending nodes that need approval.
 
-**Gateway Mode:** Click the Gateway icon to enable gateway mode on a given node. A popup will allow you to choose an existing network, or enter a custom address range.
-*Example: You create a network in netmaker called Homenet. It has several machines on your home server. You create another network called Cloudnet. It has several machines in AWS. You have one server (server X) which is added to both networks. On Cloudnet, you make Server X a gateway to Homenet. Now, the cloudnet machines have access to your homenet machines. via  Server X.*
+.. image:: images/nodes.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+You can view/modify/delete any node by selecting it in the NODES tab. For instance, you can change the name to something more sensible like "workstation" or "api server". You can also modify network settings here, such as keys or the WireGuard port. These settings will be picked up by the node on its next check in. For more information, see Advanced Configuration in the :doc:`Using Netmaker <./usage>` docs.
+
+.. image:: images/node-details.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+
+
+Nodes can be added/removed/modified on the network at any time. Nodes can also be added to multiple Netmaker networks. Any changes will get picked up by any nodes on a given network, and will take aboue ~30 seconds to take effect.
 
-*On Homenet, you add Server Y, a machine in AWS, and make it a gateway to a custom address range 172.16.0.0/16. The machines on your home network now have access to any AWS machines in that address range via Server Y*
+Uninstalling the netclient
+=============================
 
-### Manage DNS
-On the DNS tab you can create custom DNS entries for a given network.
+1. To remove your nodes from the default network, run the following on each node: ``sudo netclient -c remove -n default``
+2. To remove the netclient entirely from each node, run ``sudo rm -rf /etc/netclient`` (after running the first step)
 
- 1. All dns entries will be *postfixed* with a private TLD of the network name, for example, ".mynet"
- 2. Default DNS is created for node name + TLD, for instance, node-c42wt.mynet. This is not editable.
- 3. Click ADD ENTRY to add custom DNS
-	 - You can click CHOOSE NODE to direct DNS to a specific node in the network
-	 - You can also specify any custom address you would like, which can be outside the network (for instance, the IP for google.com)
-	 - Add a dns entry name, which will be postfixed with the network TLD. E.g. if you enter "privateapi.com", it will become "privateapi.com.networkname" 
+Uninstralling Netmaker
+===========================
 
-### Uninstalling Client
-To uninstall the client from a network: `sudo netclient -c remove -n < networkname >`
-To uninstall entirely, run the above for each network,  and then run `sudo rm -rf /etc/netclient`
+To uninstall Netmaker from the server, simply run `docker-compose down`
 
-### Uninstralling Netmaker
-To uninstall the netmaker server, simply run `docker-compose down`

+ 0 - 19
docs/_build/html/_sources/support.rst.txt

@@ -5,25 +5,6 @@ Support
 FAQ
 =====
 
-Troubleshooting
-=================
-
-Common Issues
----------------
-
-Server
--------
-
-UI
-----
-
-Agent
--------
-
-CoreDNS
---------
-
-
 Contact
 ========
 If you need help, try the discord or open a GitHub ticket.

+ 19 - 0
docs/_build/html/_sources/troubleshoot.rst.txt

@@ -0,0 +1,19 @@
+=================
+Troubleshooting
+=================
+
+Common Issues
+---------------
+
+Server
+-------
+
+UI
+----
+
+Agent
+-------
+
+CoreDNS
+--------
+

+ 81 - 4
docs/_build/html/about.html

@@ -283,7 +283,7 @@
     <li class="md-nav__item">
     
     
-      <a href="architecture.html#compatible-systems" class="md-nav__link">Compatible Systems</a>
+      <a href="architecture.html#compatible-systems-for-netclient" class="md-nav__link">Compatible Systems for Netclient</a>
       
     
     </li>
@@ -300,8 +300,50 @@
     
     
       <a href="quick-start.html" class="md-nav__link">Quick Start</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#prerequisites" class="md-nav__link">Prerequisites</a>
       
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#setup" class="md-nav__link">Setup</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#manage-nodes" class="md-nav__link">Manage Nodes</a>
+      
+    
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
@@ -453,19 +495,54 @@
     <li class="md-nav__item">
     
     
-      <a href="support.html" class="md-nav__link">Support</a>
+      <a href="troubleshoot.html" class="md-nav__link">Troubleshooting</a>
       <ul class="md-nav__list"> 
     <li class="md-nav__item">
     
     
-      <a href="support.html#faq" class="md-nav__link">FAQ</a>
+      <a href="troubleshoot.html#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#server" class="md-nav__link">Server</a>
       
     
     </li>
     <li class="md-nav__item">
     
     
-      <a href="support.html#troubleshooting" class="md-nav__link">Troubleshooting</a>
+      <a href="troubleshoot.html#ui" class="md-nav__link">UI</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#coredns" class="md-nav__link">CoreDNS</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html" class="md-nav__link">Support</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#faq" class="md-nav__link">FAQ</a>
       
     
     </li>

+ 80 - 3
docs/_build/html/architecture.html

@@ -328,8 +328,50 @@
     
     
       <a href="quick-start.html" class="md-nav__link">Quick Start</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#prerequisites" class="md-nav__link">Prerequisites</a>
       
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#setup" class="md-nav__link">Setup</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#manage-nodes" class="md-nav__link">Manage Nodes</a>
+      
+    
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
@@ -481,19 +523,54 @@
     <li class="md-nav__item">
     
     
-      <a href="support.html" class="md-nav__link">Support</a>
+      <a href="troubleshoot.html" class="md-nav__link">Troubleshooting</a>
       <ul class="md-nav__list"> 
     <li class="md-nav__item">
     
     
-      <a href="support.html#faq" class="md-nav__link">FAQ</a>
+      <a href="troubleshoot.html#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#server" class="md-nav__link">Server</a>
       
     
     </li>
     <li class="md-nav__item">
     
     
-      <a href="support.html#troubleshooting" class="md-nav__link">Troubleshooting</a>
+      <a href="troubleshoot.html#ui" class="md-nav__link">UI</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#coredns" class="md-nav__link">CoreDNS</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html" class="md-nav__link">Support</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#faq" class="md-nav__link">FAQ</a>
       
     
     </li>

+ 94 - 3
docs/_build/html/genindex.html

@@ -278,8 +278,64 @@
     
     
       <a href="quick-start.html" class="md-nav__link">Quick Start</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#setup" class="md-nav__link">Setup</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#manage-nodes" class="md-nav__link">Manage Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#uninstalling-the-netclient" class="md-nav__link">Uninstalling the netclient</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#uninstralling-netmaker" class="md-nav__link">Uninstralling Netmaker</a>
       
     
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
@@ -431,19 +487,54 @@
     <li class="md-nav__item">
     
     
-      <a href="support.html" class="md-nav__link">Support</a>
+      <a href="troubleshoot.html" class="md-nav__link">Troubleshooting</a>
       <ul class="md-nav__list"> 
     <li class="md-nav__item">
     
     
-      <a href="support.html#faq" class="md-nav__link">FAQ</a>
+      <a href="troubleshoot.html#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#server" class="md-nav__link">Server</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#ui" class="md-nav__link">UI</a>
       
     
     </li>
     <li class="md-nav__item">
     
     
-      <a href="support.html#troubleshooting" class="md-nav__link">Troubleshooting</a>
+      <a href="troubleshoot.html#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#coredns" class="md-nav__link">CoreDNS</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html" class="md-nav__link">Support</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#faq" class="md-nav__link">FAQ</a>
       
     
     </li>

+ 124 - 6
docs/_build/html/index.html

@@ -279,8 +279,64 @@
     
     
       <a href="quick-start.html" class="md-nav__link">Quick Start</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#setup" class="md-nav__link">Setup</a>
       
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#manage-nodes" class="md-nav__link">Manage Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#uninstalling-the-netclient" class="md-nav__link">Uninstalling the netclient</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#uninstralling-netmaker" class="md-nav__link">Uninstralling Netmaker</a>
+      
+    
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
@@ -432,19 +488,54 @@
     <li class="md-nav__item">
     
     
-      <a href="support.html" class="md-nav__link">Support</a>
+      <a href="troubleshoot.html" class="md-nav__link">Troubleshooting</a>
       <ul class="md-nav__list"> 
     <li class="md-nav__item">
     
     
-      <a href="support.html#faq" class="md-nav__link">FAQ</a>
+      <a href="troubleshoot.html#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#server" class="md-nav__link">Server</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#ui" class="md-nav__link">UI</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#coredns" class="md-nav__link">CoreDNS</a>
       
     
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
     
-      <a href="support.html#troubleshooting" class="md-nav__link">Troubleshooting</a>
+      <a href="support.html" class="md-nav__link">Support</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#faq" class="md-nav__link">FAQ</a>
       
     
     </li>
@@ -571,6 +662,8 @@
         </li>
         <li class="md-nav__item"><a href="#api-reference" class="md-nav__link">API Reference</a>
         </li>
+        <li class="md-nav__item"><a href="#troubleshooting" class="md-nav__link">Troubleshooting</a>
+        </li>
         <li class="md-nav__item"><a href="#support" class="md-nav__link">Support</a>
         </li>
         <li class="md-nav__item"><a href="#contributing" class="md-nav__link">Contributing</a>
@@ -636,7 +729,17 @@
 <p>A quick start guide to getting up and running with Netmaker and WireGuard as quickly as possible.</p>
 <div class="toctree-wrapper compound">
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick Start</a></li>
+<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick Start</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#introduction">Introduction</a></li>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#prerequisites">Prerequisites</a></li>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#install">Install</a></li>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#setup">Setup</a></li>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#deploy-nodes">Deploy Nodes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#manage-nodes">Manage Nodes</a></li>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#uninstalling-the-netclient">Uninstalling the netclient</a></li>
+<li class="toctree-l2"><a class="reference internal" href="quick-start.html#uninstralling-netmaker">Uninstralling Netmaker</a></li>
+</ul>
+</li>
 </ul>
 </div>
 
@@ -697,13 +800,28 @@
 </div>
 
 
+<h2 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permalink to this headline">¶</a></h2>
+<p>Help with common Netmaker/netclient issues.</p>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="troubleshoot.html">Troubleshooting</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="troubleshoot.html#common-issues">Common Issues</a></li>
+<li class="toctree-l2"><a class="reference internal" href="troubleshoot.html#server">Server</a></li>
+<li class="toctree-l2"><a class="reference internal" href="troubleshoot.html#ui">UI</a></li>
+<li class="toctree-l2"><a class="reference internal" href="troubleshoot.html#agent">Agent</a></li>
+<li class="toctree-l2"><a class="reference internal" href="troubleshoot.html#coredns">CoreDNS</a></li>
+</ul>
+</li>
+</ul>
+</div>
+
+
 <h2 id="support">Support<a class="headerlink" href="#support" title="Permalink to this headline">¶</a></h2>
-<p>A few helpful documents for if you run into issues with Netmaker.</p>
+<p>Where to go for help, and a FAQ.</p>
 <div class="toctree-wrapper compound">
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="support.html">Support</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="support.html#faq">FAQ</a></li>
-<li class="toctree-l2"><a class="reference internal" href="support.html#troubleshooting">Troubleshooting</a></li>
 <li class="toctree-l2"><a class="reference internal" href="support.html#contact">Contact</a></li>
 </ul>
 </li>

BIN
docs/_build/html/objects.inv


+ 231 - 98
docs/_build/html/quick-start.html

@@ -263,7 +263,7 @@
     <li class="md-nav__item">
     
     
-      <a href="architecture.html#compatible-systems" class="md-nav__link">Compatible Systems</a>
+      <a href="architecture.html#compatible-systems-for-netclient" class="md-nav__link">Compatible Systems for Netclient</a>
       
     
     </li>
@@ -286,11 +286,92 @@
       
         
 <nav class="md-nav md-nav--secondary">
+    <label class="md-nav__title" for="__toc">Contents</label>
   <ul class="md-nav__list" data-md-scrollfix="">
+        <li class="md-nav__item"><a href="#quick-start--page-root" class="md-nav__link">Quick Start</a><nav class="md-nav">
+              <ul class="md-nav__list">
+        <li class="md-nav__item"><a href="#introduction" class="md-nav__link">Introduction</a>
+        </li>
+        <li class="md-nav__item"><a href="#prerequisites" class="md-nav__link">Prerequisites</a>
+        </li>
+        <li class="md-nav__item"><a href="#install" class="md-nav__link">Install</a>
+        </li>
+        <li class="md-nav__item"><a href="#setup" class="md-nav__link">Setup</a><nav class="md-nav">
+              <ul class="md-nav__list">
+        <li class="md-nav__item"><a href="#create-key" class="md-nav__link">Create Key</a>
+        </li></ul>
+            </nav>
+        </li>
+        <li class="md-nav__item"><a href="#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+        </li>
+        <li class="md-nav__item"><a href="#manage-nodes" class="md-nav__link">Manage Nodes</a>
+        </li>
+        <li class="md-nav__item"><a href="#uninstalling-the-netclient" class="md-nav__link">Uninstalling the netclient</a>
+        </li>
+        <li class="md-nav__item"><a href="#uninstralling-netmaker" class="md-nav__link">Uninstralling Netmaker</a>
+        </li></ul>
+            </nav>
+        </li>
   </ul>
 </nav>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#setup" class="md-nav__link">Setup</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#manage-nodes" class="md-nav__link">Manage Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#uninstalling-the-netclient" class="md-nav__link">Uninstalling the netclient</a>
       
     
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#uninstralling-netmaker" class="md-nav__link">Uninstralling Netmaker</a>
+      
+    
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
@@ -442,19 +523,54 @@
     <li class="md-nav__item">
     
     
-      <a href="support.html" class="md-nav__link">Support</a>
+      <a href="troubleshoot.html" class="md-nav__link">Troubleshooting</a>
       <ul class="md-nav__list"> 
     <li class="md-nav__item">
     
     
-      <a href="support.html#faq" class="md-nav__link">FAQ</a>
+      <a href="troubleshoot.html#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#server" class="md-nav__link">Server</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#ui" class="md-nav__link">UI</a>
       
     
     </li>
     <li class="md-nav__item">
     
     
-      <a href="support.html#troubleshooting" class="md-nav__link">Troubleshooting</a>
+      <a href="troubleshoot.html#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#coredns" class="md-nav__link">CoreDNS</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html" class="md-nav__link">Support</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#faq" class="md-nav__link">FAQ</a>
       
     
     </li>
@@ -563,7 +679,32 @@
               <div class="md-sidebar__inner">
                 
 <nav class="md-nav md-nav--secondary">
+    <label class="md-nav__title" for="__toc">Contents</label>
   <ul class="md-nav__list" data-md-scrollfix="">
+        <li class="md-nav__item"><a href="#quick-start--page-root" class="md-nav__link">Quick Start</a><nav class="md-nav">
+              <ul class="md-nav__list">
+        <li class="md-nav__item"><a href="#introduction" class="md-nav__link">Introduction</a>
+        </li>
+        <li class="md-nav__item"><a href="#prerequisites" class="md-nav__link">Prerequisites</a>
+        </li>
+        <li class="md-nav__item"><a href="#install" class="md-nav__link">Install</a>
+        </li>
+        <li class="md-nav__item"><a href="#setup" class="md-nav__link">Setup</a><nav class="md-nav">
+              <ul class="md-nav__list">
+        <li class="md-nav__item"><a href="#create-key" class="md-nav__link">Create Key</a>
+        </li></ul>
+            </nav>
+        </li>
+        <li class="md-nav__item"><a href="#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+        </li>
+        <li class="md-nav__item"><a href="#manage-nodes" class="md-nav__link">Manage Nodes</a>
+        </li>
+        <li class="md-nav__item"><a href="#uninstalling-the-netclient" class="md-nav__link">Uninstalling the netclient</a>
+        </li>
+        <li class="md-nav__item"><a href="#uninstralling-netmaker" class="md-nav__link">Uninstralling Netmaker</a>
+        </li></ul>
+            </nav>
+        </li>
   </ul>
 </nav>
               </div>
@@ -575,111 +716,103 @@
             
   
 <h1 id="quick-start--page-root">Quick Start<a class="headerlink" href="#quick-start--page-root" title="Permalink to this headline">¶</a></h1>
-<p>[Intro/Overview Video Tutorial](<a class="reference external" href="https://youtu.be/PWLPT320Ybo">https://youtu.be/PWLPT320Ybo</a>)
-[Site-to-Site Video Tutorial](<a class="reference external" href="https://youtu.be/krCKBJhwwDk">https://youtu.be/krCKBJhwwDk</a>)</p>
-<p>### Note about permissions
-The default installation requires special privileges on the server side, because Netmaker will control the local kernel Wireguard. This can be turned off and run in non-privileged mode if necessary (but disables some features). For more details, see the <strong>Usage</strong> docs.</p>
-<dl class="simple">
-<dt>### Prereqs</dt><dd><ol class="arabic simple">
-<li><p>A running linux server to host Netmaker, with an IP reachable by your computers (Debian-based preferred but not required).</p></li>
-<li><p>Linux installed on the above server (Debian-based preferred but not required).</p></li>
-<li><p>Install Docker and Docker Compose if running in Docker Mode (see below).</p></li>
-<li><dl class="simple">
-<dt>System dependencies installed:</dt><dd><ul class="simple">
-<li><p>Docker (if running in default Docker mode. DO NOT use snap install for docker.)</p></li>
-<li><p>Docker Compose</p></li>
-<li><p>Wireguard + Resolvectl (if running in default Client mode)</p></li>
-</ul>
-</dd>
-</dl>
-</li>
-</ol>
-</dd>
-</dl>
-<p>#### CoreDNS Preparation
-v0.3 introduces CoreDNS as a private nameserver. To run CoreDNS on your server host, you must disable systemd-resolved to open port 53:
-1. systemctl stop systemd-resolved
-2. systemctl disable systemd-resolved
-3. vim /etc/systemd/resolved.conf</p>
+
+<h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
+<p>This is a guide to getting up and running with Netmaker as quickly as possible.</p>
+<p>By default, Netmaker ships with DNS Mode and Client Mode enabled. However, these features require special permissions and are not necessary for a simple setup, so we are going to deploy without them. To learn more about enabling these features, check out the <a class="reference internal" href="server-installation.html"><span class="doc">installation docs</span></a>.</p>
+
+
+<h2 id="prerequisites">Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">¶</a></h2>
 <blockquote>
-<div><blockquote>
-<div><ul class="simple">
-<li><p>uncomment <strong>DNS=</strong> and add 8.8.8.8 or whatever is your preference</p></li>
-<li><p>uncomment <strong>DNSStubListener=</strong> and set to <strong>“no”</strong></p></li>
-</ul>
-</div></blockquote>
-<ol class="arabic simple" start="4">
-<li><p>sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf</p></li>
+<div><ol class="arabic simple">
+<li><p>A Linux server to host Netmaker, with an external IP reachable by your nodes (will be referred to as <strong>your-host</strong> in  document).</p></li>
+<li><p>Docker and Docker Compose installed on the above server. Follow the official <a class="reference external" href="https://docs.docker.com/engine/install/">Docker instructions</a> for installing Docker and Docker Compose on your system.</p></li>
+<li><p>All network nodes should be systemd-based (see Compatibility under <a class="reference internal" href="architecture.html"><span class="doc">Architecture</span></a> docs)</p></li>
 </ol>
 </div></blockquote>
-<p>### Launch Netmaker
-Note, this installs Netmaker with CoreDNS and a Netclient (privileged).  If you want to run the server non-privileged or without CoreDNS, see the advanced usage docs.</p>
+
+
+<h2 id="install">Install<a class="headerlink" href="#install" title="Permalink to this headline">¶</a></h2>
 <ol class="arabic simple">
-<li><p>Clone this repo or just copy contents of “docker-compose.yml” to your Netmaker server (from prereqs).</p></li>
-<li><p>In docker-compose.yml, change BACKEND_URL to the public IP of your server.</p></li>
-<li><p>Run <cite>sudo docker-compose up -d</cite></p></li>
-<li><p>Navigate to your server’s IP in the browser and you should see the Netmaker UI asking to create a new admin user.</p></li>
-<li><p>Create a new admin user</p></li>
-<li><p>You are now ready to begin using Netmaker.</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">ssh</span> <span class="pre">root@your-host</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">wget</span> <span class="pre">-O</span> <span class="pre">docker-compose.yml</span> <span class="pre">https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/docker-compose.quick.yml</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">sed</span> <span class="pre">-i</span> <span class="pre">‘s/HOST_IP/&lt;</span> <span class="pre">Insert</span> <span class="pre">your-host</span> <span class="pre">IP</span> <span class="pre">Address</span> <span class="pre">Here</span> <span class="pre">&gt;/g’</span> <span class="pre">docker-compose.yml</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">docker-compose</span> <span class="pre">up</span> <span class="pre">-d</span></code></p></li>
 </ol>
-<p>### Create a Network
-You can also just use the “default” network.
-1. Click “CREATE NETWORK” in the upper left of your console
-2. Enter a valid address range, e.g. 10.11.12.0/24
-3. Enter a name such as “homenet”
-4. Additional options:</p>
-<blockquote>
-<div><ul class="simple">
-<li><p><strong>Dual Stack</strong>: Machines will recieve a private IPv6 address in addition to their IPv4 address.</p></li>
-<li><p><strong>Local:</strong> Will use local address range for endpoints instead of public. Use Case: Home or Office network where most devices do not have public IP’s. In this case you can create a gateway into the network after creating the Local Network.</p></li>
+<p>Navigate to the IP address of your host in the browser. You should see the below screen. If not, please see the Quick Start section of the <a class="reference internal" href="support.html"><span class="doc">troubleshooting</span></a> docs.</p>
+<a class="reference internal image-reference" href="_images/create-user.png"><img alt="Create User Screen" class="align-center" src="_images/create-user.png" style="width: 80%;"/></a>
+
+
+<h2 id="setup">Setup<a class="headerlink" href="#setup" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li><p>Create your admin user, with a username and password.</p></li>
+<li><p>Login with your new user</p></li>
+<li><p>Examine the <strong>default</strong> network. Click on DEFAULT under NETWORK DETAILS</p></li>
+</ol>
+<a class="reference internal image-reference" href="_images/default-net.png"><img alt="Create User Screen" class="align-center" src="_images/default-net.png" style="width: 80%;"/></a>
+<p>This displays information about the <strong>default</strong> network, which is created on server startup. You can delete this network if you do not need it, but for standard use cases this network should be enough to get started. Nodes will get an address from the network address range (ADDRESSRANGE). If the range conflicts with a pre-existing private network on your devices, you may want to change this, or make a new network instead. Nodes will also get default settings from here for unset configurations. For instance, the DEFAULTKEEPALIVE field will set the PersistenKeepAlive for nodes.</p>
+<p>To get started quickly, we can just use the existing default network.</p>
+
+<h3 id="create-key">Create Key<a class="headerlink" href="#create-key" title="Permalink to this headline">¶</a></h3>
+<ol class="arabic simple">
+<li><p>Click on the ACCESS KEYS tab and select the DEFAULT network.</p></li>
+<li><p>Click ADD NEW ACCESS KEY</p></li>
+<li><p>Give it a name (ex: “mykey”) and a number of uses (ex: 25)</p></li>
+<li><p>Click CREATE KEY (<strong>Important:</strong> Do not click out of the following screen until you have saved your key details. It will appear only once.)</p></li>
+<li><p>Copy the bottom command under “Your agent install command with access token” and save it somewhere locally. E.x: <code class="docutils literal notranslate"><span class="pre">curl</span> <span class="pre">-sfL</span> <span class="pre">https://raw.githubusercontent.com/gravitl/netmaker/v0.3/scripts/netclient-install.sh</span> <span class="pre">|</span> <span class="pre">KEY=vm3ow4thatogiwnsla3thsl3894ths</span> <span class="pre">sh</span> <span class="pre">-</span></code></p></li>
+</ol>
+<a class="reference internal image-reference" href="_images/access-key.png"><img alt="Access Key Screen" class="align-center" src="_images/access-key.png" style="width: 80%;"/></a>
+<p>You will use this command to install the netclient on your nodes. There are three different values for three different scenarios:</p>
+<ul class="simple">
+<li><p>The <strong>Access Key</strong> value is the secret string that will allow your node to authenticate with the Netmaker network. This can be used with existing netclient installations where additional configurations (such as setting the server IP manually) may be required. This is not typical. E.g. <code class="docutils literal notranslate"><span class="pre">netclient</span> <span class="pre">-c</span> <span class="pre">install</span> <span class="pre">-k</span> <span class="pre">&lt;access</span> <span class="pre">key&gt;</span> <span class="pre">-s</span> <span class="pre">1.2.3.4</span> <span class="pre">-p</span> <span class="pre">50052</span></code></p></li>
+<li><p>The <strong>Access Token</strong> value is a base64 encoded string that contains the server IP and grpc port, as well as the access key. This is decoded by the netclient and can be used with existing netclient installations like this: <code class="docutils literal notranslate"><span class="pre">netclient</span> <span class="pre">-c</span> <span class="pre">install</span> <span class="pre">-t</span> <span class="pre">&lt;access</span> <span class="pre">token&gt;</span></code>. You should use this method for adding a network to a node that is already on a network. For instance, Node A is in the <strong>mynet</strong> network and now you are adding it to <strong>default</strong>.</p></li>
+<li><p>The <strong>install command</strong> value is a curl command that can be run on Linux systems. It is a simple script that downloads the netclient binary and runs the install command all in one.</p></li>
 </ul>
-</div></blockquote>
-<p>After Network creation, you can edit the network in the NETWORK DETAILS pane, modifying the address range and default options. You can also toggle on <strong>Allow Node Signup Without Keys</strong>, which makes the next step unnecessary, but allows anyone to create a node in your network, which will be cordoned in pending state.</p>
-<p>### Create Keys
-1. Click the “ACCESS KEYS” tab
-2. Click “ADD NEW ACCESSS KEY”
-3. Give your key a name and number of uses
-4. Several values will be displayed. Save these somewhere, as they will only be displayed once:</p>
+<p>Networks can also be enabled to allow nodes to sign up without keys at all. In this scenario, nodes enter a “pending state” and are not permitted to join the network until an admin approves them.</p>
+
+
+
+<h2 id="deploy-nodes">Deploy Nodes<a class="headerlink" href="#deploy-nodes" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li><p>SSH to each machine</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">su</span> <span class="pre">-</span></code></p></li>
+<li><p><strong>Prerequisite Check:</strong> Every Linux machine on which you run the netclient must have WireGuard and systemd installed</p></li>
+</ol>
 <blockquote>
 <div><ul class="simple">
-<li><p><strong>Access Key:</strong> Use only in special edge cases where server connection string must be modified</p></li>
-<li><p><strong>Access Token:</strong> Use on machines that already have the netclient utility</p></li>
-<li><p><strong>Install Command:</strong> Use on machines that do not have the netclient utility</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">which</span> <span class="pre">wg</span></code> (should show wg binary present)</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">pidof</span> <span class="pre">systemd</span> <span class="pre">&amp;&amp;</span> <span class="pre">echo</span> <span class="pre">"systemd</span> <span class="pre">found"</span> <span class="pre">||</span> <span class="pre">echo</span> <span class="pre">"systemd</span> <span class="pre">not</span> <span class="pre">found"</span></code></p></li>
 </ul>
 </div></blockquote>
-<p>### Install Agent:
-For machines <strong>without</strong> netclient, run the install command (from above): <cite>curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/netclient-install.sh | KEY=&lt;your access key&gt; sh -</cite>
-For machines <strong>with</strong> netclient run the following (with access token from above): <cite>sudo netclient -c install -t &lt;access token&gt;</cite>
-For networks with <strong>manual signup</strong> enabled (see above), install using the network name: <cite>sudo netclient -c install -n &lt;network name&gt;</cite></p>
-<p>### Manage Nodes
-Your machines should now be visible in the control pane.
-<strong>Modify nodes:</strong> Click the pencil icon in the NODES pane to modify details like WireGuard port, address, and node name. You can also <strong>DELETE</strong> nodes here and they will lose network access.
-<strong>Approve nodes:</strong> If a node is in pending state (signed up without key), you can approve it. An icon will appear for pending nodes that need approval.</p>
-<p><strong>Gateway Mode:</strong> Click the Gateway icon to enable gateway mode on a given node. A popup will allow you to choose an existing network, or enter a custom address range.
-<em>Example: You create a network in netmaker called Homenet. It has several machines on your home server. You create another network called Cloudnet. It has several machines in AWS. You have one server (server X) which is added to both networks. On Cloudnet, you make Server X a gateway to Homenet. Now, the cloudnet machines have access to your homenet machines. via  Server X.</em></p>
-<p><em>On Homenet, you add Server Y, a machine in AWS, and make it a gateway to a custom address range 172.16.0.0/16. The machines on your home network now have access to any AWS machines in that address range via Server Y</em></p>
-<p>### Manage DNS
-On the DNS tab you can create custom DNS entries for a given network.</p>
-<blockquote>
-<div><ol class="arabic simple">
-<li><p>All dns entries will be <em>postfixed</em> with a private TLD of the network name, for example, “.mynet”</p></li>
-<li><p>Default DNS is created for node name + TLD, for instance, node-c42wt.mynet. This is not editable.</p></li>
-<li><dl class="simple">
-<dt>Click ADD ENTRY to add custom DNS</dt><dd><ul class="simple">
-<li><p>You can click CHOOSE NODE to direct DNS to a specific node in the network</p></li>
-<li><p>You can also specify any custom address you would like, which can be outside the network (for instance, the IP for google.com)</p></li>
-<li><p>Add a dns entry name, which will be postfixed with the network TLD. E.g. if you enter “privateapi.com”, it will become “privateapi.com.networkname”</p></li>
-</ul>
-</dd>
-</dl>
-</li>
+<ol class="arabic simple" start="4">
+<li><p>Run the install command, Ex: <code class="docutils literal notranslate"><span class="pre">curl</span> <span class="pre">-sfL</span> <span class="pre">https://raw.githubusercontent.com/gravitl/netmaker/v0.3/scripts/netclient-install.sh</span> <span class="pre">|</span> <span class="pre">KEY=vm3ow4thatogiwnsla3thsl3894ths</span> <span class="pre">sh</span> <span class="pre">-</span></code></p></li>
 </ol>
-</div></blockquote>
-<p>### Uninstalling Client
-To uninstall the client from a network: <cite>sudo netclient -c remove -n &lt; networkname &gt;</cite>
-To uninstall entirely, run the above for each network,  and then run <cite>sudo rm -rf /etc/netclient</cite></p>
-<p>### Uninstralling Netmaker
-To uninstall the netmaker server, simply run <cite>docker-compose down</cite></p>
+<p>You should get output similar to the below. The netclient retrieves local settings, submits them to the server for processing, and retrieves updated settings. Then it sets the local network configuration. For more information about this process, see the <a class="reference internal" href="client-installation.html"><span class="doc">client installation</span></a> documentation. If this process failed and you do not see your node in the console (see below), then reference the <a class="reference internal" href="troubleshoot.html"><span class="doc">troubleshooting</span></a> documentation.</p>
+<a class="reference internal image-reference" href="_images/nc-install-output.png"><img alt="Output from Netclient Install" class="align-center" src="_images/nc-install-output.png" style="width: 80%;"/></a>
+<a class="reference internal image-reference" href="_images/nm-node-success.png"><img alt="Node Success" class="align-center" src="_images/nm-node-success.png" style="width: 80%;"/></a>
+<p>Repeat the above steps for every machine you would like to add to your network. You can re-use the same install command so long as you do not run out of uses on your access key (after which it will be invalidated and deleted).</p>
+<p>Once installed on all nodes, you can test the connection by pinging the private address of any node from any other node.</p>
+<a class="reference internal image-reference" href="_images/ping-node.png"><img alt="Node Success" class="align-center" src="_images/ping-node.png" style="width: 80%;"/></a>
+
+
+<h2 id="manage-nodes">Manage Nodes<a class="headerlink" href="#manage-nodes" title="Permalink to this headline">¶</a></h2>
+<p>Your machines should now be visible in the control pane.</p>
+<a class="reference internal image-reference" href="_images/nodes.png"><img alt="Node Success" class="align-center" src="_images/nodes.png" style="width: 80%;"/></a>
+<p>You can view/modify/delete any node by selecting it in the NODES tab. For instance, you can change the name to something more sensible like “workstation” or “api server”. You can also modify network settings here, such as keys or the WireGuard port. These settings will be picked up by the node on its next check in. For more information, see Advanced Configuration in the <a class="reference internal" href="usage.html"><span class="doc">Using Netmaker</span></a> docs.</p>
+<a class="reference internal image-reference" href="_images/node-details.png"><img alt="Node Success" class="align-center" src="_images/node-details.png" style="width: 80%;"/></a>
+<p>Nodes can be added/removed/modified on the network at any time. Nodes can also be added to multiple Netmaker networks. Any changes will get picked up by any nodes on a given network, and will take aboue ~30 seconds to take effect.</p>
+
+
+<h2 id="uninstalling-the-netclient">Uninstalling the netclient<a class="headerlink" href="#uninstalling-the-netclient" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li><p>To remove your nodes from the default network, run the following on each node: <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">netclient</span> <span class="pre">-c</span> <span class="pre">remove</span> <span class="pre">-n</span> <span class="pre">default</span></code></p></li>
+<li><p>To remove the netclient entirely from each node, run <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">rm</span> <span class="pre">-rf</span> <span class="pre">/etc/netclient</span></code> (after running the first step)</p></li>
+</ol>
+
+
+<h2 id="uninstralling-netmaker">Uninstralling Netmaker<a class="headerlink" href="#uninstralling-netmaker" title="Permalink to this headline">¶</a></h2>
+<p>To uninstall Netmaker from the server, simply run <cite>docker-compose down</cite></p>
+
 
 
 

+ 94 - 3
docs/_build/html/search.html

@@ -284,8 +284,64 @@
     
     
       <a href="quick-start.html" class="md-nav__link">Quick Start</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#setup" class="md-nav__link">Setup</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#manage-nodes" class="md-nav__link">Manage Nodes</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#uninstalling-the-netclient" class="md-nav__link">Uninstalling the netclient</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#uninstralling-netmaker" class="md-nav__link">Uninstralling Netmaker</a>
       
     
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
@@ -437,19 +493,54 @@
     <li class="md-nav__item">
     
     
-      <a href="support.html" class="md-nav__link">Support</a>
+      <a href="troubleshoot.html" class="md-nav__link">Troubleshooting</a>
       <ul class="md-nav__list"> 
     <li class="md-nav__item">
     
     
-      <a href="support.html#faq" class="md-nav__link">FAQ</a>
+      <a href="troubleshoot.html#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#server" class="md-nav__link">Server</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#ui" class="md-nav__link">UI</a>
       
     
     </li>
     <li class="md-nav__item">
     
     
-      <a href="support.html#troubleshooting" class="md-nav__link">Troubleshooting</a>
+      <a href="troubleshoot.html#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#coredns" class="md-nav__link">CoreDNS</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html" class="md-nav__link">Support</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#faq" class="md-nav__link">FAQ</a>
       
     
     </li>

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


+ 81 - 57
docs/_build/html/support.html

@@ -57,7 +57,7 @@
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="Contribute" href="contribute.html" />
-    <link rel="prev" title="API Reference" href="api.html" />
+    <link rel="prev" title="Troubleshooting" href="troubleshoot.html" />
   
    
 
@@ -263,7 +263,7 @@
     <li class="md-nav__item">
     
     
-      <a href="architecture.html#compatible-systems" class="md-nav__link">Compatible Systems</a>
+      <a href="architecture.html#compatible-systems-for-netclient" class="md-nav__link">Compatible Systems for Netclient</a>
       
     
     </li>
@@ -280,8 +280,43 @@
     
     
       <a href="quick-start.html" class="md-nav__link">Quick Start</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#setup" class="md-nav__link">Setup</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
       
     
+    </li></ul>
+    
     </li>
     <li class="md-nav__item">
     
@@ -427,6 +462,48 @@
       <a href="api.html#api-documentation" class="md-nav__link">API Documentation</a>
       
     
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html" class="md-nav__link">Troubleshooting</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#server" class="md-nav__link">Server</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#ui" class="md-nav__link">UI</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="troubleshoot.html#coredns" class="md-nav__link">CoreDNS</a>
+      
+    
     </li></ul>
     
     </li>
@@ -446,20 +523,6 @@
               <ul class="md-nav__list">
         <li class="md-nav__item"><a href="#faq" class="md-nav__link">FAQ</a>
         </li>
-        <li class="md-nav__item"><a href="#troubleshooting" class="md-nav__link">Troubleshooting</a><nav class="md-nav">
-              <ul class="md-nav__list">
-        <li class="md-nav__item"><a href="#common-issues" class="md-nav__link">Common Issues</a>
-        </li>
-        <li class="md-nav__item"><a href="#server" class="md-nav__link">Server</a>
-        </li>
-        <li class="md-nav__item"><a href="#ui" class="md-nav__link">UI</a>
-        </li>
-        <li class="md-nav__item"><a href="#agent" class="md-nav__link">Agent</a>
-        </li>
-        <li class="md-nav__item"><a href="#coredns" class="md-nav__link">CoreDNS</a>
-        </li></ul>
-            </nav>
-        </li>
         <li class="md-nav__item"><a href="#contact" class="md-nav__link">Contact</a>
         </li></ul>
             </nav>
@@ -473,13 +536,6 @@
       <a href="#faq" class="md-nav__link">FAQ</a>
       
     
-    </li>
-    <li class="md-nav__item">
-    
-    
-      <a href="#troubleshooting" class="md-nav__link">Troubleshooting</a>
-      
-    
     </li>
     <li class="md-nav__item">
     
@@ -592,20 +648,6 @@
               <ul class="md-nav__list">
         <li class="md-nav__item"><a href="#faq" class="md-nav__link">FAQ</a>
         </li>
-        <li class="md-nav__item"><a href="#troubleshooting" class="md-nav__link">Troubleshooting</a><nav class="md-nav">
-              <ul class="md-nav__list">
-        <li class="md-nav__item"><a href="#common-issues" class="md-nav__link">Common Issues</a>
-        </li>
-        <li class="md-nav__item"><a href="#server" class="md-nav__link">Server</a>
-        </li>
-        <li class="md-nav__item"><a href="#ui" class="md-nav__link">UI</a>
-        </li>
-        <li class="md-nav__item"><a href="#agent" class="md-nav__link">Agent</a>
-        </li>
-        <li class="md-nav__item"><a href="#coredns" class="md-nav__link">CoreDNS</a>
-        </li></ul>
-            </nav>
-        </li>
         <li class="md-nav__item"><a href="#contact" class="md-nav__link">Contact</a>
         </li></ul>
             </nav>
@@ -625,24 +667,6 @@
 <h2 id="faq">FAQ<a class="headerlink" href="#faq" title="Permalink to this headline">¶</a></h2>
 
 
-<h2 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permalink to this headline">¶</a></h2>
-
-<h3 id="common-issues">Common Issues<a class="headerlink" href="#common-issues" title="Permalink to this headline">¶</a></h3>
-
-
-<h3 id="server">Server<a class="headerlink" href="#server" title="Permalink to this headline">¶</a></h3>
-
-
-<h3 id="ui">UI<a class="headerlink" href="#ui" title="Permalink to this headline">¶</a></h3>
-
-
-<h3 id="agent">Agent<a class="headerlink" href="#agent" title="Permalink to this headline">¶</a></h3>
-
-
-<h3 id="coredns">CoreDNS<a class="headerlink" href="#coredns" title="Permalink to this headline">¶</a></h3>
-
-
-
 <h2 id="contact">Contact<a class="headerlink" href="#contact" title="Permalink to this headline">¶</a></h2>
 <p>If you need help, try the discord or open a GitHub ticket.</p>
 <p>Email: <a class="reference external" href="mailto:info%40gravitl.com">info<span>@</span>gravitl<span>.</span>com</a>
@@ -660,7 +684,7 @@ Discord: <a class="reference external" href="https://discord.gg/zRb9Vfhk8A">http
     <div class="md-footer-nav">
       <nav class="md-footer-nav__inner md-grid">
           
-            <a href="api.html" title="API Reference"
+            <a href="troubleshoot.html" title="Troubleshooting"
                class="md-flex md-footer-nav__link md-footer-nav__link--prev"
                rel="prev">
               <div class="md-flex__cell md-flex__cell--shrink">
@@ -669,7 +693,7 @@ Discord: <a class="reference external" href="https://discord.gg/zRb9Vfhk8A">http
               <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
                 <span class="md-flex__ellipsis">
                   <span
-                      class="md-footer-nav__direction"> Previous </span> API Reference </span>
+                      class="md-footer-nav__direction"> Previous </span> Troubleshooting </span>
               </div>
             </a>
           

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

@@ -0,0 +1,753 @@
+
+<!DOCTYPE html>
+
+<html>
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta name="viewport" content="width=device-width,initial-scale=1">
+  <meta http-equiv="x-ua-compatible" content="ie=edge">
+  <meta name="lang:clipboard.copy" content="Copy to clipboard">
+  <meta name="lang:clipboard.copied" content="Copied to clipboard">
+  <meta name="lang:search.language" content="en">
+  <meta name="lang:search.pipeline.stopwords" content="True">
+  <meta name="lang:search.pipeline.trimmer" content="True">
+  <meta name="lang:search.result.none" content="No matching documents">
+  <meta name="lang:search.result.one" content="1 matching document">
+  <meta name="lang:search.result.other" content="# matching documents">
+  <meta name="lang:search.tokenizer" content="[\s\-]+">
+
+  
+    <link href="https://fonts.gstatic.com/" rel="preconnect" crossorigin>
+    <link href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700|Roboto:300,400,400i,700&display=fallback" rel="stylesheet">
+
+    <style>
+      body,
+      input {
+        font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif
+      }
+
+      code,
+      kbd,
+      pre {
+        font-family: "Roboto Mono", "Courier New", Courier, monospace
+      }
+    </style>
+  
+
+  <link rel="stylesheet" href="_static/stylesheets/application.css"/>
+  <link rel="stylesheet" href="_static/stylesheets/application-palette.css"/>
+  <link rel="stylesheet" href="_static/stylesheets/application-fixes.css"/>
+  
+  <link rel="stylesheet" href="_static/fonts/material-icons.css"/>
+  
+  <meta name="theme-color" content="#3f51b5">
+  <script src="_static/javascripts/modernizr.js"></script>
+  
+  
+  
+    <title>Troubleshooting &#8212; Netmaker 0.3.5 documentation</title>
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <link rel="stylesheet" href="_static/material.css" type="text/css" />
+    <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
+    <script src="_static/jquery.js"></script>
+    <script src="_static/underscore.js"></script>
+    <script src="_static/doctools.js"></script>
+    <link rel="author" title="About these documents" href="about.html" />
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Support" href="support.html" />
+    <link rel="prev" title="API Reference" href="api.html" />
+  
+   
+
+  </head>
+  <body dir=ltr
+        data-md-color-primary=indigo data-md-color-accent=light-blue>
+  
+  <svg class="md-svg">
+    <defs data-children-count="0">
+      
+      <svg xmlns="http://www.w3.org/2000/svg" width="416" height="448" viewBox="0 0 416 448" id="__github"><path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z"/></svg>
+      
+    </defs>
+  </svg>
+  
+  <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer">
+  <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search">
+  <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
+  <a href="#troubleshoot" tabindex="1" class="md-skip"> Skip to content </a>
+  <header class="md-header" data-md-component="header">
+  <nav class="md-header-nav md-grid">
+    <div class="md-flex navheader">
+      <div class="md-flex__cell md-flex__cell--shrink">
+        <a href="index.html" title="Netmaker 0.3.5 documentation"
+           class="md-header-nav__button md-logo">
+          
+            <i class="md-icon">&#xe869</i>
+          
+        </a>
+      </div>
+      <div class="md-flex__cell md-flex__cell--shrink">
+        <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
+      </div>
+      <div class="md-flex__cell md-flex__cell--stretch">
+        <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
+          <span class="md-header-nav__topic">Netmaker Docs</span>
+          <span class="md-header-nav__topic"> Troubleshooting </span>
+        </div>
+      </div>
+      <div class="md-flex__cell md-flex__cell--shrink">
+        <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
+        
+<div class="md-search" data-md-component="search" role="dialog">
+  <label class="md-search__overlay" for="__search"></label>
+  <div class="md-search__inner" role="search">
+    <form class="md-search__form" action="search.html" method="GET" name="search">
+      <input type="text" class="md-search__input" name="q" placeholder="Search"
+             autocapitalize="off" autocomplete="off" spellcheck="false"
+             data-md-component="query" data-md-state="active">
+      <label class="md-icon md-search__icon" for="__search"></label>
+      <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
+        &#xE5CD;
+      </button>
+    </form>
+    <div class="md-search__output">
+      <div class="md-search__scrollwrap" data-md-scrollfix>
+        <div class="md-search-result" data-md-component="result">
+          <div class="md-search-result__meta">
+            Type to start searching
+          </div>
+          <ol class="md-search-result__list"></ol>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+
+      </div>
+      
+        <div class="md-flex__cell md-flex__cell--shrink">
+          <div class="md-header-nav__source">
+            <a href="https://github.com/gravitl/netmaker/" title="Go to repository" class="md-source" data-md-source="github">
+
+    <div class="md-source__icon">
+      <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width="28" height="28">
+        <use xlink:href="#__github" width="24" height="24"></use>
+      </svg>
+    </div>
+  
+  <div class="md-source__repository">
+    Netmaker
+  </div>
+</a>
+          </div>
+        </div>
+      
+      
+  
+  <script src="_static/javascripts/version_dropdown.js"></script>
+  <script>
+    var json_loc = ""versions.json"",
+        target_loc = "../",
+        text = "Versions";
+    $( document ).ready( add_version_dropdown(json_loc, target_loc, text));
+  </script>
+  
+
+    </div>
+  </nav>
+</header>
+
+  
+  <div class="md-container">
+    
+    
+    
+  <nav class="md-tabs" data-md-component="tabs">
+    <div class="md-tabs__inner md-grid">
+      <ul class="md-tabs__list">
+          <li class="md-tabs__item"><a href="index.html" class="md-tabs__link">Netmaker 0.3.5 documentation</a></li>
+      </ul>
+    </div>
+  </nav>
+    <main class="md-main">
+      <div class="md-main__inner md-grid" data-md-component="container">
+        
+          <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
+            <div class="md-sidebar__scrollwrap">
+              <div class="md-sidebar__inner">
+                <nav class="md-nav md-nav--primary" data-md-level="0">
+  <label class="md-nav__title md-nav__title--site" for="__drawer">
+    <a href="index.html" title="Netmaker 0.3.5 documentation" class="md-nav__button md-logo">
+      
+        <i class="md-icon">&#xe869</i>
+      
+    </a>
+    <a href="index.html"
+       title="Netmaker 0.3.5 documentation">Netmaker Docs</a>
+  </label>
+    <div class="md-nav__source">
+      <a href="https://github.com/gravitl/netmaker/" title="Go to repository" class="md-source" data-md-source="github">
+
+    <div class="md-source__icon">
+      <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width="28" height="28">
+        <use xlink:href="#__github" width="24" height="24"></use>
+      </svg>
+    </div>
+  
+  <div class="md-source__repository">
+    Netmaker
+  </div>
+</a>
+    </div>
+  
+  
+
+  
+  <ul class="md-nav__list">
+    <li class="md-nav__item">
+    
+    
+      <a href="about.html" class="md-nav__link">About</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="about.html#what-is-netmaker" class="md-nav__link">What is Netmaker?</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="about.html#how-does-netmaker-work" class="md-nav__link">How Does Netmaker Work?</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="about.html#use-cases-for-netmaker" class="md-nav__link">Use Cases for Netmaker</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="architecture.html" class="md-nav__link">Architecture</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="architecture.html#core-concepts" class="md-nav__link">Core Concepts</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="architecture.html#components" class="md-nav__link">Components</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="architecture.html#technical-process" class="md-nav__link">Technical Process</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="architecture.html#compatible-systems-for-netclient" class="md-nav__link">Compatible Systems for Netclient</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="architecture.html#limitations" class="md-nav__link">Limitations</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html" class="md-nav__link">Quick Start</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#introduction" class="md-nav__link">Introduction</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#install" class="md-nav__link">Install</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#setup" class="md-nav__link">Setup</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="quick-start.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="server-installation.html" class="md-nav__link">Server Installation</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="server-installation.html#system-compatibility" class="md-nav__link">System Compatibility</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="server-installation.html#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="server-installation.html#installing-netmaker" class="md-nav__link">Installing Netmaker</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="client-installation.html" class="md-nav__link">Client Installation</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="client-installation.html#system-compatibility" class="md-nav__link">System Compatibility</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="client-installation.html#prerequisites" class="md-nav__link">Prerequisites</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="client-installation.html#installing-netclient" class="md-nav__link">Installing Netclient</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="client-installation.html#unmanaged-clients-pure-wireguard" class="md-nav__link">Unmanaged Clients (Pure WireGuard)</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="usage.html" class="md-nav__link">Using Netmaker</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="usage.html#external-tutorials" class="md-nav__link">External Tutorials</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="usage.html#basic" class="md-nav__link">Basic</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="usage.html#local-network" class="md-nav__link">Local Network</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="usage.html#site-to-site" class="md-nav__link">Site-to-Site</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="usage.html#dual-stack-with-ipv6" class="md-nav__link">Dual Stack with IPv6</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="usage.html#kubernetes-node-network" class="md-nav__link">Kubernetes Node Network</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="api.html" class="md-nav__link">API Reference</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="api.html#api-usage" class="md-nav__link">API Usage</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="api.html#authentication" class="md-nav__link">Authentication</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="api.html#format-of-calls-for-curl" class="md-nav__link">Format of Calls for Curl</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="api.html#api-documentation" class="md-nav__link">API Documentation</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+    <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
+    <label class="md-nav__link md-nav__link--active" for="__toc"> Troubleshooting </label>
+    
+      <a href="#" class="md-nav__link md-nav__link--active">Troubleshooting</a>
+      
+        
+<nav class="md-nav md-nav--secondary">
+    <label class="md-nav__title" for="__toc">Contents</label>
+  <ul class="md-nav__list" data-md-scrollfix="">
+        <li class="md-nav__item"><a href="#troubleshoot--page-root" class="md-nav__link">Troubleshooting</a><nav class="md-nav">
+              <ul class="md-nav__list">
+        <li class="md-nav__item"><a href="#common-issues" class="md-nav__link">Common Issues</a>
+        </li>
+        <li class="md-nav__item"><a href="#server" class="md-nav__link">Server</a>
+        </li>
+        <li class="md-nav__item"><a href="#ui" class="md-nav__link">UI</a>
+        </li>
+        <li class="md-nav__item"><a href="#agent" class="md-nav__link">Agent</a>
+        </li>
+        <li class="md-nav__item"><a href="#coredns" class="md-nav__link">CoreDNS</a>
+        </li></ul>
+            </nav>
+        </li>
+  </ul>
+</nav>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="#common-issues" class="md-nav__link">Common Issues</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#server" class="md-nav__link">Server</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#ui" class="md-nav__link">UI</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#agent" class="md-nav__link">Agent</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="#coredns" class="md-nav__link">CoreDNS</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html" class="md-nav__link">Support</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#faq" class="md-nav__link">FAQ</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="support.html#contact" class="md-nav__link">Contact</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="contribute.html" class="md-nav__link">Contribute</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="contribute.html#submitting-an-issue" class="md-nav__link">Submitting an Issue</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="contribute.html#submitting-an-enhancement" class="md-nav__link">Submitting an Enhancement</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="contribute.html#contributing-code" class="md-nav__link">Contributing Code</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="conduct.html" class="md-nav__link">Code of Conduct</a>
+      <ul class="md-nav__list"> 
+    <li class="md-nav__item">
+    
+    
+      <a href="conduct.html#our-pledge" class="md-nav__link">Our Pledge</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="conduct.html#our-standards" class="md-nav__link">Our Standards</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="conduct.html#our-responsibilities" class="md-nav__link">Our Responsibilities</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="conduct.html#scope" class="md-nav__link">Scope</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="conduct.html#enforcement" class="md-nav__link">Enforcement</a>
+      
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="conduct.html#attribution" class="md-nav__link">Attribution</a>
+      
+    
+    </li></ul>
+    
+    </li>
+    <li class="md-nav__item">
+    
+    
+      <a href="license.html" class="md-nav__link">License</a>
+      
+    
+    </li>
+  </ul>
+  
+
+</nav>
+              </div>
+            </div>
+          </div>
+          <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
+            <div class="md-sidebar__scrollwrap">
+              <div class="md-sidebar__inner">
+                
+<nav class="md-nav md-nav--secondary">
+    <label class="md-nav__title" for="__toc">Contents</label>
+  <ul class="md-nav__list" data-md-scrollfix="">
+        <li class="md-nav__item"><a href="#troubleshoot--page-root" class="md-nav__link">Troubleshooting</a><nav class="md-nav">
+              <ul class="md-nav__list">
+        <li class="md-nav__item"><a href="#common-issues" class="md-nav__link">Common Issues</a>
+        </li>
+        <li class="md-nav__item"><a href="#server" class="md-nav__link">Server</a>
+        </li>
+        <li class="md-nav__item"><a href="#ui" class="md-nav__link">UI</a>
+        </li>
+        <li class="md-nav__item"><a href="#agent" class="md-nav__link">Agent</a>
+        </li>
+        <li class="md-nav__item"><a href="#coredns" class="md-nav__link">CoreDNS</a>
+        </li></ul>
+            </nav>
+        </li>
+  </ul>
+</nav>
+              </div>
+            </div>
+          </div>
+        
+        <div class="md-content">
+          <article class="md-content__inner md-typeset" role="main">
+            
+  
+<h1 id="troubleshoot--page-root">Troubleshooting<a class="headerlink" href="#troubleshoot--page-root" title="Permalink to this headline">¶</a></h1>
+
+<h2 id="common-issues">Common Issues<a class="headerlink" href="#common-issues" title="Permalink to this headline">¶</a></h2>
+
+
+<h2 id="server">Server<a class="headerlink" href="#server" title="Permalink to this headline">¶</a></h2>
+
+
+<h2 id="ui">UI<a class="headerlink" href="#ui" title="Permalink to this headline">¶</a></h2>
+
+
+<h2 id="agent">Agent<a class="headerlink" href="#agent" title="Permalink to this headline">¶</a></h2>
+
+
+<h2 id="coredns">CoreDNS<a class="headerlink" href="#coredns" title="Permalink to this headline">¶</a></h2>
+
+
+
+
+          </article>
+        </div>
+      </div>
+    </main>
+  </div>
+  <footer class="md-footer">
+    <div class="md-footer-nav">
+      <nav class="md-footer-nav__inner md-grid">
+          
+            <a href="api.html" title="API Reference"
+               class="md-flex md-footer-nav__link md-footer-nav__link--prev"
+               rel="prev">
+              <div class="md-flex__cell md-flex__cell--shrink">
+                <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
+              </div>
+              <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
+                <span class="md-flex__ellipsis">
+                  <span
+                      class="md-footer-nav__direction"> Previous </span> API Reference </span>
+              </div>
+            </a>
+          
+          
+            <a href="support.html" title="Support"
+               class="md-flex md-footer-nav__link md-footer-nav__link--next"
+               rel="next">
+            <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"><span
+                class="md-flex__ellipsis"> <span
+                class="md-footer-nav__direction"> Next </span> Support </span>
+            </div>
+            <div class="md-flex__cell md-flex__cell--shrink"><i
+                class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
+            </div>
+          
+        </a>
+        
+      </nav>
+    </div>
+    <div class="md-footer-meta md-typeset">
+      <div class="md-footer-meta__inner md-grid">
+        <div class="md-footer-copyright">
+          <div class="md-footer-copyright__highlight">
+              &#169; Copyright 2021, Alex Feiszli.
+              
+          </div>
+            Created using
+            <a href="http://www.sphinx-doc.org/">Sphinx</a> 3.5.4.
+             and
+            <a href="https://github.com/bashtage/sphinx-material/">Material for
+              Sphinx</a>
+        </div>
+      </div>
+    </div>
+  </footer>
+  <script src="_static/javascripts/application.js"></script>
+  <script>app.initialize({version: "1.0.4", url: {base: ".."}})</script>
+  </body>
+</html>

+ 1 - 1
docs/about.rst

@@ -7,7 +7,7 @@ What is Netmaker?
 
 Netmaker is a tool for creating and managing virtual overlay networks. If you have at least two machines with internet access which you need to connect with a secure tunnel, Netmaker is for you. If you have thousands of servers spread across multiple locations, data centers, or clouds, Netmaker is also for you. Netmaker connects machines securely, wherever they are.
 
-.. image:: mesh-diagram.png
+.. image:: images/mesh-diagram.png
    :width: 50%
    :alt: WireGuard Mesh
    :align: center

+ 2 - 2
docs/architecture.rst

@@ -2,7 +2,7 @@
 Architecture
 ===============
 
-.. image:: nm-diagram.jpg
+.. image:: images/nm-diagram.jpg
    :width: 45%
    :alt: Netmaker Architecture Diagram
    :align: center
@@ -28,7 +28,7 @@ Mesh Network
 
 When we refer to a mesh network in these documents we are typically referring to a "full mesh."
 
-.. image:: mesh.png
+.. image:: images/mesh.png
    :width: 33%
    :alt: Full Mesh Network Diagram
    :align: center

BIN
docs/images/access-key.png


BIN
docs/images/create-user.png


BIN
docs/images/default-net.png


+ 0 - 0
docs/mesh-diagram.png → docs/images/mesh-diagram.png


+ 0 - 0
docs/mesh.png → docs/images/mesh.png


BIN
docs/images/nc-install-output.png


+ 0 - 0
docs/netmaker.png → docs/images/netmaker.png


+ 0 - 0
docs/nm-diagram.jpg → docs/images/nm-diagram.jpg


BIN
docs/images/nm-node-success.png


BIN
docs/images/node-details.png


BIN
docs/images/nodes.png


BIN
docs/images/ping-node.png


+ 13 - 2
docs/index.rst

@@ -4,7 +4,7 @@
    contain the root `toctree` directive.
 
 
-.. image:: netmaker.png
+.. image:: images/netmaker.png
    :width: 100%
    :alt: Netmaker WireGuard
    :align: center
@@ -100,10 +100,21 @@ A reference document for the Netmaker Server API, and example API calls for vari
 
    api
 
+Troubleshooting
+----------------
+
+Help with common Netmaker/netclient issues.
+
+.. toctree::
+   :maxdepth: 2
+
+   troubleshoot
+
+
 Support
 ----------------
 
-A few helpful documents for if you run into issues with Netmaker.
+Where to go for help, and a FAQ.
 
 .. toctree::
    :maxdepth: 2

+ 126 - 80
docs/quick-start.rst

@@ -2,90 +2,136 @@
 Quick Start
 ===========
 
-[Intro/Overview Video Tutorial](https://youtu.be/PWLPT320Ybo)  
-[Site-to-Site Video Tutorial](https://youtu.be/krCKBJhwwDk)  
-
-### Note about permissions
-The default installation requires special privileges on the server side, because Netmaker will control the local kernel Wireguard. This can be turned off and run in non-privileged mode if necessary (but disables some features). For more details, see the **Usage** docs.
-
-### Prereqs
- 1. A running linux server to host Netmaker, with an IP reachable by your computers (Debian-based preferred but not required).
- 2. Linux installed on the above server (Debian-based preferred but not required).
- 3. Install Docker and Docker Compose if running in Docker Mode (see below).
- 4. System dependencies installed:
-	 - Docker (if running in default Docker mode. DO NOT use snap install for docker.)
-	 - Docker Compose
-	 - Wireguard + Resolvectl (if running in default Client mode)
-
-#### CoreDNS Preparation
-v0.3 introduces CoreDNS as a private nameserver. To run CoreDNS on your server host, you must disable systemd-resolved to open port 53: 
-1. systemctl stop systemd-resolved
-2. systemctl disable systemd-resolved
-3. vim /etc/systemd/resolved.conf
-	 - uncomment **DNS=** and add 8.8.8.8 or whatever is your preference
-	 - uncomment **DNSStubListener=** and set to **"no"**
- 4. sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
-
-
-
-### Launch Netmaker
-Note, this installs Netmaker with CoreDNS and a Netclient (privileged).  If you want to run the server non-privileged or without CoreDNS, see the advanced usage docs. 
-
-1. Clone this repo or just copy contents of "docker-compose.yml" to your Netmaker server (from prereqs).
-2. In docker-compose.yml, change BACKEND_URL to the public IP of your server.
-3. Run `sudo docker-compose up -d`
-4. Navigate to your server's IP in the browser and you should see the Netmaker UI asking to create a new admin user.
-5. Create a new admin user
-6. You are now ready to begin using Netmaker. 
-
-### Create a Network
-You can also just use the "default" network.
-1. Click "CREATE NETWORK" in the upper left of your console
-2. Enter a valid address range, e.g. 10.11.12.0/24
-3. Enter a name such as "homenet"
-4. Additional options:
-	- **Dual Stack**: Machines will recieve a private IPv6 address in addition to their IPv4 address.
-	- **Local:** Will use local address range for endpoints instead of public. Use Case: Home or Office network where most devices do not have public IP's. In this case you can create a gateway into the network after creating the Local Network.
-
-After Network creation, you can edit the network in the NETWORK DETAILS pane, modifying the address range and default options. You can also toggle on **Allow Node Signup Without Keys**, which makes the next step unnecessary, but allows anyone to create a node in your network, which will be cordoned in pending state.
-
-### Create Keys
-1. Click the "ACCESS KEYS" tab
-2. Click "ADD NEW ACCESSS KEY"
-3. Give your key a name and number of uses
-4. Several values will be displayed. Save these somewhere, as they will only be displayed once:
-	- **Access Key:** Use only in special edge cases where server connection string must be modified
-	- **Access Token:** Use on machines that already have the netclient utility
-	- **Install Command:** Use on machines that do not have the netclient utility
-
-### Install Agent:
-For machines **without** netclient, run the install command (from above): `curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/netclient-install.sh | KEY=<your access key> sh -`  
-For machines **with** netclient run the following (with access token from above): `sudo netclient -c install -t <access token>`
-For networks with **manual signup** enabled (see above), install using the network name: `sudo netclient -c install -n <network name>`
-
-### Manage Nodes
+Introduction
+==============
+
+This is a guide to getting up and running with Netmaker as quickly as possible. 
+
+By default, Netmaker ships with DNS Mode and Client Mode enabled. However, these features require special permissions and are not necessary for a simple setup, so we are going to deploy without them. To learn more about enabling these features, check out the :doc:`installation docs <./server-installation>`.
+
+Prerequisites
+==================
+ #. A Linux server to host Netmaker, with an external IP reachable by your nodes (will be referred to as **your-host** in  document).
+ #. Docker and Docker Compose installed on the above server. Follow the official `Docker instructions <https://docs.docker.com/engine/install/>`_ for installing Docker and Docker Compose on your system.
+ #. All network nodes should be systemd-based (see Compatibility under :doc:`Architecture <./architecture>` docs)
+
+Install
+==============
+#. ``ssh root@your-host``
+#. ``wget -O docker-compose.yml https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/docker-compose.quick.yml``
+#. ``sed -i ‘s/HOST_IP/< Insert your-host IP Address Here >/g’ docker-compose.yml``
+#. ``docker-compose up -d``
+
+Navigate to the IP address of your host in the browser. You should see the below screen. If not, please see the Quick Start section of the :doc:`troubleshooting <./support>` docs.
+
+.. image:: images/create-user.png
+   :width: 80%
+   :alt: Create User Screen
+   :align: center
+
+Setup
+=================
+
+#. Create your admin user, with a username and password.
+#. Login with your new user
+#. Examine the **default** network. Click on DEFAULT under NETWORK DETAILS
+
+.. image:: images/default-net.png
+   :width: 80%
+   :alt: Create User Screen
+   :align: center
+
+This displays information about the **default** network, which is created on server startup. You can delete this network if you do not need it, but for standard use cases this network should be enough to get started. Nodes will get an address from the network address range (ADDRESSRANGE). If the range conflicts with a pre-existing private network on your devices, you may want to change this, or make a new network instead. Nodes will also get default settings from here for unset configurations. For instance, the DEFAULTKEEPALIVE field will set the PersistenKeepAlive for nodes.
+
+To get started quickly, we can just use the existing default network.
+
+Create Key
+------------
+
+#. Click on the ACCESS KEYS tab and select the DEFAULT network.
+#. Click ADD NEW ACCESS KEY
+#. Give it a name (ex: "mykey") and a number of uses (ex: 25)
+#. Click CREATE KEY (**Important:** Do not click out of the following screen until you have saved your key details. It will appear only once.)
+#. Copy the bottom command under "Your agent install command with access token" and save it somewhere locally. E.x: ``curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/scripts/netclient-install.sh | KEY=vm3ow4thatogiwnsla3thsl3894ths sh -``
+
+.. image:: images/access-key.png
+   :width: 80%
+   :alt: Access Key Screen
+   :align: center
+
+You will use this command to install the netclient on your nodes. There are three different values for three different scenarios: 
+
+* The **Access Key** value is the secret string that will allow your node to authenticate with the Netmaker network. This can be used with existing netclient installations where additional configurations (such as setting the server IP manually) may be required. This is not typical. E.g. ``netclient -c install -k <access key> -s 1.2.3.4 -p 50052``
+* The **Access Token** value is a base64 encoded string that contains the server IP and grpc port, as well as the access key. This is decoded by the netclient and can be used with existing netclient installations like this: ``netclient -c install -t <access token>``. You should use this method for adding a network to a node that is already on a network. For instance, Node A is in the **mynet** network and now you are adding it to **default**.
+* The **install command** value is a curl command that can be run on Linux systems. It is a simple script that downloads the netclient binary and runs the install command all in one.
+  
+Networks can also be enabled to allow nodes to sign up without keys at all. In this scenario, nodes enter a "pending state" and are not permitted to join the network until an admin approves them.
+
+Deploy Nodes
+=================
+
+1. SSH to each machine 
+2. ``sudo su -``
+3. **Prerequisite Check:** Every Linux machine on which you run the netclient must have WireGuard and systemd installed
+
+  * ``which wg`` (should show wg binary present)
+  * ``pidof systemd && echo "systemd found" || echo "systemd not found"``
+
+4. Run the install command, Ex: ``curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/scripts/netclient-install.sh | KEY=vm3ow4thatogiwnsla3thsl3894ths sh -``
+
+You should get output similar to the below. The netclient retrieves local settings, submits them to the server for processing, and retrieves updated settings. Then it sets the local network configuration. For more information about this process, see the :doc:`client installation <./client-installation>` documentation. If this process failed and you do not see your node in the console (see below), then reference the :doc:`troubleshooting <./troubleshoot>` documentation.
+
+.. image:: images/nc-install-output.png
+   :width: 80%
+   :alt: Output from Netclient Install
+   :align: center
+
+
+.. image:: images/nm-node-success.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+
+Repeat the above steps for every machine you would like to add to your network. You can re-use the same install command so long as you do not run out of uses on your access key (after which it will be invalidated and deleted).
+
+Once installed on all nodes, you can test the connection by pinging the private address of any node from any other node.
+
+
+.. image:: images/ping-node.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+Manage Nodes
+===============
+
 Your machines should now be visible in the control pane. 
-**Modify nodes:** Click the pencil icon in the NODES pane to modify details like WireGuard port, address, and node name. You can also **DELETE** nodes here and they will lose network access.
-**Approve nodes:** If a node is in pending state (signed up without key), you can approve it. An icon will appear for pending nodes that need approval.
 
-**Gateway Mode:** Click the Gateway icon to enable gateway mode on a given node. A popup will allow you to choose an existing network, or enter a custom address range.
-*Example: You create a network in netmaker called Homenet. It has several machines on your home server. You create another network called Cloudnet. It has several machines in AWS. You have one server (server X) which is added to both networks. On Cloudnet, you make Server X a gateway to Homenet. Now, the cloudnet machines have access to your homenet machines. via  Server X.*
+.. image:: images/nodes.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+You can view/modify/delete any node by selecting it in the NODES tab. For instance, you can change the name to something more sensible like "workstation" or "api server". You can also modify network settings here, such as keys or the WireGuard port. These settings will be picked up by the node on its next check in. For more information, see Advanced Configuration in the :doc:`Using Netmaker <./usage>` docs.
+
+.. image:: images/node-details.png
+   :width: 80%
+   :alt: Node Success
+   :align: center
+
+
+
+Nodes can be added/removed/modified on the network at any time. Nodes can also be added to multiple Netmaker networks. Any changes will get picked up by any nodes on a given network, and will take aboue ~30 seconds to take effect.
 
-*On Homenet, you add Server Y, a machine in AWS, and make it a gateway to a custom address range 172.16.0.0/16. The machines on your home network now have access to any AWS machines in that address range via Server Y*
+Uninstalling the netclient
+=============================
 
-### Manage DNS
-On the DNS tab you can create custom DNS entries for a given network.
+1. To remove your nodes from the default network, run the following on each node: ``sudo netclient -c remove -n default``
+2. To remove the netclient entirely from each node, run ``sudo rm -rf /etc/netclient`` (after running the first step)
 
- 1. All dns entries will be *postfixed* with a private TLD of the network name, for example, ".mynet"
- 2. Default DNS is created for node name + TLD, for instance, node-c42wt.mynet. This is not editable.
- 3. Click ADD ENTRY to add custom DNS
-	 - You can click CHOOSE NODE to direct DNS to a specific node in the network
-	 - You can also specify any custom address you would like, which can be outside the network (for instance, the IP for google.com)
-	 - Add a dns entry name, which will be postfixed with the network TLD. E.g. if you enter "privateapi.com", it will become "privateapi.com.networkname" 
+Uninstralling Netmaker
+===========================
 
-### Uninstalling Client
-To uninstall the client from a network: `sudo netclient -c remove -n < networkname >`
-To uninstall entirely, run the above for each network,  and then run `sudo rm -rf /etc/netclient`
+To uninstall Netmaker from the server, simply run `docker-compose down`
 
-### Uninstralling Netmaker
-To uninstall the netmaker server, simply run `docker-compose down`

+ 0 - 19
docs/support.rst

@@ -5,25 +5,6 @@ Support
 FAQ
 =====
 
-Troubleshooting
-=================
-
-Common Issues
----------------
-
-Server
--------
-
-UI
-----
-
-Agent
--------
-
-CoreDNS
---------
-
-
 Contact
 ========
 If you need help, try the discord or open a GitHub ticket.

+ 19 - 0
docs/troubleshoot.rst

@@ -0,0 +1,19 @@
+=================
+Troubleshooting
+=================
+
+Common Issues
+---------------
+
+Server
+-------
+
+UI
+----
+
+Agent
+-------
+
+CoreDNS
+--------
+

+ 0 - 1
docs/youtube-1.html.backup

@@ -1 +0,0 @@
-<iframe width=100% height=500px src="https://www.youtube.com/embed/PWLPT320Ybo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

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