netmaker/docs/_build/html/server-installation.html

1318 lines
76 KiB
HTML
Raw Normal View History

2021-05-26 05:57:06 +08:00
<!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>Server Installation &#8212; Netmaker 0.3.5 documentation</title>
2021-06-02 00:23:05 +08:00
<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>
2021-05-26 05:57:06 +08:00
<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="Client Installation" href="client-installation.html" />
<link rel="prev" title="Quick Start" href="quick-start.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="#server-installation" 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"> Server Installation </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>
<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">
<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"> Server Installation </label>
<a href="#" class="md-nav__link md-nav__link--active">Server Installation</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="#server-installation--page-root" class="md-nav__link">Server Installation</a><nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item"><a href="#notes-on-optional-features" class="md-nav__link">Notes on Optional Features</a>
</li>
<li class="md-nav__item"><a href="#system-compatibility" class="md-nav__link">System Compatibility</a>
</li>
<li class="md-nav__item"><a href="#dns-mode-prereqisite-setup" class="md-nav__link">DNS Mode Prereqisite Setup</a>
</li>
<li class="md-nav__item"><a href="#docker-compose-install" class="md-nav__link">Docker Compose Install</a><nav class="md-nav">
<ul class="md-nav__list">
2021-06-02 00:23:05 +08:00
<li class="md-nav__item"><a href="#slim-install-no-dns-no-client-mode-no-secure-grpc" class="md-nav__link">Slim Install - No DNS, No Client Mode, No Secure GRPC</a>
2021-05-26 05:57:06 +08:00
</li>
2021-06-02 00:23:05 +08:00
<li class="md-nav__item"><a href="#full-install-dns-client-mode-and-secure-grpc-enabled" class="md-nav__link">Full Install - DNS, Client Mode, and Secure GRPC Enabled</a>
2021-05-26 05:57:06 +08:00
</li>
<li class="md-nav__item"><a href="#server-only-install-ui-dns-client-disabled" class="md-nav__link">Server Only Install - UI, DNS, Client Disabled</a>
</li>
<li class="md-nav__item"><a href="#no-dns-coredns-disabled-client-enabled" class="md-nav__link">No DNS - CoreDNS Disabled, Client Enabled</a>
</li>
<li class="md-nav__item"><a href="#no-client-dns-enabled-client-disabled" class="md-nav__link">No Client - DNS Enabled, Client Disabled</a>
</li>
<li class="md-nav__item"><a href="#reference-compose-file-annotated" class="md-nav__link">Reference Compose File - Annotated</a>
</li></ul>
</nav>
</li>
<li class="md-nav__item"><a href="#linux-install-without-docker" class="md-nav__link">Linux Install without Docker</a><nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item"><a href="#mongodb-setup" class="md-nav__link">MongoDB Setup</a>
</li>
<li class="md-nav__item"><a href="#server-setup" class="md-nav__link">Server Setup</a>
</li>
<li class="md-nav__item"><a href="#ui-setup" class="md-nav__link">UI Setup</a>
</li>
<li class="md-nav__item"><a href="#coredns-setup" class="md-nav__link">CoreDNS Setup</a>
</li></ul>
</nav>
</li>
<li class="md-nav__item"><a href="#kubernetes-install" class="md-nav__link">Kubernetes Install</a>
</li>
<li class="md-nav__item"><a href="#configuration-reference" class="md-nav__link">Configuration Reference</a><nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item"><a href="#variable-description" class="md-nav__link">Variable Description</a>
</li>
<li class="md-nav__item"><a href="#config-file-reference" class="md-nav__link">Config File Reference</a>
</li></ul>
</nav>
</li></ul>
</nav>
</li>
</ul>
</nav>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#notes-on-optional-features" class="md-nav__link">Notes on Optional Features</a>
</li>
<li class="md-nav__item">
<a href="#system-compatibility" class="md-nav__link">System Compatibility</a>
</li>
<li class="md-nav__item">
<a href="#dns-mode-prereqisite-setup" class="md-nav__link">DNS Mode Prereqisite Setup</a>
</li>
<li class="md-nav__item">
<a href="#docker-compose-install" class="md-nav__link">Docker Compose Install</a>
</li>
<li class="md-nav__item">
<a href="#linux-install-without-docker" class="md-nav__link">Linux Install without Docker</a>
</li>
<li class="md-nav__item">
<a href="#kubernetes-install" class="md-nav__link">Kubernetes Install</a>
</li>
<li class="md-nav__item">
<a href="#configuration-reference" class="md-nav__link">Configuration Reference</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">
2021-06-02 00:23:05 +08:00
<a href="client-installation.html#introduction-to-netclient" class="md-nav__link">Introduction to Netclient</a>
</li>
<li class="md-nav__item">
<a href="client-installation.html#modes-and-system-compatibility" class="md-nav__link">Modes and System Compatibility</a>
2021-05-26 05:57:06 +08:00
</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#configuration" class="md-nav__link">Configuration</a>
</li>
<li class="md-nav__item">
<a href="client-installation.html#installation" class="md-nav__link">Installation</a>
</li>
<li class="md-nav__item">
<a href="client-installation.html#managing-netclient" class="md-nav__link">Managing Netclient</a>
2021-06-02 00:23:05 +08:00
</li></ul>
2021-05-26 05:57:06 +08:00
</li>
<li class="md-nav__item">
2021-06-02 00:23:05 +08:00
<a href="external-clients.html" class="md-nav__link">External Clients</a>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="external-clients.html#introduction" class="md-nav__link">Introduction</a>
2021-05-26 05:57:06 +08:00
</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">
<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>
<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#issues-bugs-and-feature-requests" class="md-nav__link">Issues, Bugs, and Feature Requests</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="#server-installation--page-root" class="md-nav__link">Server Installation</a><nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item"><a href="#notes-on-optional-features" class="md-nav__link">Notes on Optional Features</a>
</li>
<li class="md-nav__item"><a href="#system-compatibility" class="md-nav__link">System Compatibility</a>
</li>
<li class="md-nav__item"><a href="#dns-mode-prereqisite-setup" class="md-nav__link">DNS Mode Prereqisite Setup</a>
</li>
<li class="md-nav__item"><a href="#docker-compose-install" class="md-nav__link">Docker Compose Install</a><nav class="md-nav">
<ul class="md-nav__list">
2021-06-02 00:23:05 +08:00
<li class="md-nav__item"><a href="#slim-install-no-dns-no-client-mode-no-secure-grpc" class="md-nav__link">Slim Install - No DNS, No Client Mode, No Secure GRPC</a>
2021-05-26 05:57:06 +08:00
</li>
2021-06-02 00:23:05 +08:00
<li class="md-nav__item"><a href="#full-install-dns-client-mode-and-secure-grpc-enabled" class="md-nav__link">Full Install - DNS, Client Mode, and Secure GRPC Enabled</a>
2021-05-26 05:57:06 +08:00
</li>
<li class="md-nav__item"><a href="#server-only-install-ui-dns-client-disabled" class="md-nav__link">Server Only Install - UI, DNS, Client Disabled</a>
</li>
<li class="md-nav__item"><a href="#no-dns-coredns-disabled-client-enabled" class="md-nav__link">No DNS - CoreDNS Disabled, Client Enabled</a>
</li>
<li class="md-nav__item"><a href="#no-client-dns-enabled-client-disabled" class="md-nav__link">No Client - DNS Enabled, Client Disabled</a>
</li>
<li class="md-nav__item"><a href="#reference-compose-file-annotated" class="md-nav__link">Reference Compose File - Annotated</a>
</li></ul>
</nav>
</li>
<li class="md-nav__item"><a href="#linux-install-without-docker" class="md-nav__link">Linux Install without Docker</a><nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item"><a href="#mongodb-setup" class="md-nav__link">MongoDB Setup</a>
</li>
<li class="md-nav__item"><a href="#server-setup" class="md-nav__link">Server Setup</a>
</li>
<li class="md-nav__item"><a href="#ui-setup" class="md-nav__link">UI Setup</a>
</li>
<li class="md-nav__item"><a href="#coredns-setup" class="md-nav__link">CoreDNS Setup</a>
</li></ul>
</nav>
</li>
<li class="md-nav__item"><a href="#kubernetes-install" class="md-nav__link">Kubernetes Install</a>
</li>
<li class="md-nav__item"><a href="#configuration-reference" class="md-nav__link">Configuration Reference</a><nav class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item"><a href="#variable-description" class="md-nav__link">Variable Description</a>
</li>
<li class="md-nav__item"><a href="#config-file-reference" class="md-nav__link">Config File Reference</a>
</li></ul>
</nav>
</li></ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset" role="main">
<h1 id="server-installation--page-root">Server Installation<a class="headerlink" href="#server-installation--page-root" title="Permalink to this headline"></a></h1>
<p>This section outlines installing the Netmaker server, including Netmaker, Netmaker UI, MongoDB, and CoreDNS</p>
<h2 id="notes-on-optional-features">Notes on Optional Features<a class="headerlink" href="#notes-on-optional-features" title="Permalink to this headline"></a></h2>
<p>There are a few key options to keep in mind when deploying Netmaker. All of the following options are enabled by default but can be disabled with a single flag at runtime (see Customization). In addition to these options, there are many more Customizable components which will be discussed later on and help to solve for special challenges and use cases.</p>
<p><strong>Client Mode:</strong> Client Mode enables Netmaker to control the underlying host servers Network. This can make management a bit easier, because Netmaker can be added into networks via a button click in the UI. This is especially useful for things like Gateways, and will open up additional options in future versions, for instance, allowing Netmaker to easily become a relay server.</p>
<p>Client Mode requires many additional privileges on the host machine, since Netmaker needs to control kernel WireGuard. Because of this, if running in Client Mode, you must run with root privileges and mount many system directories to the Netmaker container. Running without Client Mode allows you to install without privilege escalation and increases the number of compatible systems substantially.</p>
<p><strong>DNS Mode:</strong> DNS Mode enables Netmaker to write configuration files for CoreDNS, which can be set as a DNS Server for nodes. DNS Mode, paired with a CoreDNS deployment, requires use of port 53. On many linux systems (such as Ubuntu), port 53 is already in use to support local DNS, via systemd-resolved. Running in DNS Mode may require making modifications on the host machine.</p>
2021-06-02 00:23:05 +08:00
<p><strong>Secure GRPC</strong>: Secure GRPC ensures all communications between nodes and the server are encrypted. Netmaker sets up a default “comms” network that exists only for nodes to connect to the server. It acts as a hub-and-spoke WireGuard network. In the below installation instructions, when port 50555 needs to be open, this is referring to the WireGuard port for Netmakers GRPC comms. When it is port 50051, secure comms is not enabled.</p>
<p>When Secure GRPC is enabled, before any nodes can join a Netmaker network, they request to join the comms network, and are given the appropriate WireGuard configs to connect to the server. Then they are able to make requests against the private netmaker endpoint specified for the comms network (10.101.0.1 by default). If switched off, communications are not secure between the hub and nodes over GRPC (it is like http vs https), and likewise, certificates must be added to gain secure communications.</p>
2021-05-26 05:57:06 +08:00
<p><strong>Agent Backend:</strong> The Agent Backend is the GRPC server (by default running on port 50051). This port is not needed for the admin server. If your use case requires special access configuration, you can run two Netmaker instances, one for the admin server, and one for node access.</p>
<p><strong>REST Backend:</strong> Similar to the above, the REST backend runs by default on port 8081, and is used for admin API and UI access. By enabling the REST backend while disabling the Agent backend, you can separate the two functions for more restricted environments.</p>
<h2 id="system-compatibility">System Compatibility<a class="headerlink" href="#system-compatibility" title="Permalink to this headline"></a></h2>
2021-06-02 00:23:05 +08:00
<p>Both <strong>Client Mode</strong> and <strong>Secure GRPC</strong> require WireGuard to be installed on the host system, and will require elevated privileges to perform network operations..</p>
<p>When both of these features are <strong>disabled</strong>, Netmaker can be run on any system that supports Docker, including Windows, Mac, and Linux, and other systems. With these features disabled, no special privileges are required. Netmaker will only need ports for GRPC (50051 by default), the API (8081 by default), and CoreDNS (53, if enabled).</p>
<p>With Client Mode and/or Secure GRPC <strong>enabled</strong> (the default), Netmaker has the same limitations as the <a class="reference internal" href="client-installation.html"><span class="doc">netclient</span></a> (client networking agent), because client mode just means that the Netmaker server is also running a netclient.</p>
<p>These modes require privileged (root) access to the host machine. In addition, Client Mode requires multiple host directory mounts. WireGuard must be installed, the system must be systemd Linux (see <a class="reference internal" href="architecture.html"><span class="doc">compatible systems</span></a> for more details).</p>
<p>To run a non-docker installation, you must run the Netmaker binary, CoreDNS binary, MongoDB, and a web server directly on the host. This requires all the requirements for those individual components. Our guided install assumes systemd-based linux, but there are many other ways to install Netmakers individual components onto machines that do not support Docker.</p>
2021-05-26 05:57:06 +08:00
<h2 id="dns-mode-prereqisite-setup">DNS Mode Prereqisite Setup<a class="headerlink" href="#dns-mode-prereqisite-setup" title="Permalink to this headline"></a></h2>
2021-06-02 00:23:05 +08:00
<p>If you plan on running the server in DNS Mode, know that a <a class="reference external" href="https://coredns.io/manual/toc/">CoreDNS Server</a> will be installed. CoreDNS is a light-weight, fast, and easy-to-configure DNS server. It is recommended to bind CoreDNS to port 53 of the host system, and it will do so by default. The clients will expect the nameserver to be on port 53, and many systems have issues resolving a different port.</p>
<p>However, on your host system (for Netmaker), this may conflict with an existing process. On linux systems running systemd-resolved, there is likely a service consuming port 53. The below steps will disable systemd-resolved, and replace it with a generic (e.g. Google) nameserver. Be warned that this may have consequences for any existing private DNS configuration. The following was tested on Ubuntu 20.04 and should be run prior to deploying the docker containers.</p>
2021-05-26 05:57:06 +08:00
<ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">systemctl</span> <span class="pre">stop</span> <span class="pre">systemd-resolved</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">systemctl</span> <span class="pre">disable</span> <span class="pre">systemd-resolved</span></code></p></li>
<li><dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">vim</span> <span class="pre">/etc/systemd/resolved.conf</span></code></dt><dd><ul class="simple">
<li><p>uncomment DNS and add 8.8.8.8 or whatever reachable nameserver is your preference</p></li>
<li><p>uncomment DNSStubListener and set to “no”</p></li>
</ul>
</dd>
</dl>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">ln</span> <span class="pre">-sf</span> <span class="pre">/run/systemd/resolve/resolv.conf</span> <span class="pre">/etc/resolv.conf</span></code></p></li>
</ol>
<p>Port 53 should now be available for CoreDNS to use.</p>
<h2 id="docker-compose-install">Docker Compose Install<a class="headerlink" href="#docker-compose-install" title="Permalink to this headline"></a></h2>
<p>The most simple (and recommended) way of installing Netmaker is to use one of the provided <a class="reference external" href="https://github.com/gravitl/netmaker/tree/feature_v0.3.5_docs/compose">Docker Compose files</a>. Below are instructions for several different options to install Netmaker via Docker Compose, followed by an annotated reference Docker Compose in case your use case requires additional customization.</p>
2021-06-02 00:23:05 +08:00
<h3 id="slim-install-no-dns-no-client-mode-no-secure-grpc">Slim Install - No DNS, No Client Mode, No Secure GRPC<a class="headerlink" href="#slim-install-no-dns-no-client-mode-no-secure-grpc" title="Permalink to this headline"></a></h3>
2021-05-26 05:57:06 +08:00
<p>This is the same docker compose covered in the <a class="reference internal" href="quick-start.html"><span class="doc">quick start</span></a>. It requires no special privileges and can run on any system with Docker and Docker Compose. However, it also does not have the full feature set, and lacks Client Mode and DNS Mode.</p>
<dl class="simple">
<dt><strong>Prerequisites:</strong></dt><dd><ul class="simple">
<li><p>ports 80, 8081, and 50051 are not blocked by firewall</p></li>
<li><p>ports 80, 8081, 50051, and 27017 are not in use</p></li>
</ul>
</dd>
<dt><strong>Notes:</strong></dt><dd><ul class="simple">
<li><p>You can still run the netclient on the host system even if Client Mode is not enabled. It will just be managed like the netclient on any other nodes, and will not be automatically managed by thhe server/UI.</p></li>
<li><p>You can change the port mappings in the Docker Compose if the listed ports are already in use.</p></li>
</ul>
</dd>
</dl>
<p>Assuming you have Docker and Docker Compose installed, you can just run the following, replacing <strong>&lt; Insert your-host IP Address Here &gt;</strong> with your host IP (or domain):</p>
<ol class="arabic simple">
<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.slim.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>
2021-06-02 00:23:05 +08:00
<h3 id="full-install-dns-client-mode-and-secure-grpc-enabled">Full Install - DNS, Client Mode, and Secure GRPC Enabled<a class="headerlink" href="#full-install-dns-client-mode-and-secure-grpc-enabled" title="Permalink to this headline"></a></h3>
2021-05-26 05:57:06 +08:00
<p>This installation gives you the fully-featured product with Client Mode and DNS Mode.</p>
<dl class="simple">
<dt><strong>Prerequisites:</strong></dt><dd><ul class="simple">
<li><p>systemd linux (Debian or Ubuntu reccommended)</p></li>
<li><p>sudo privileges</p></li>
<li><p>DNS Mode Prerequisite Setup (see above)</p></li>
<li><p>WireGuard installed</p></li>
2021-06-02 00:23:05 +08:00
<li><p>ports 80, 8081, 53, and 50555 are not blocked by firewall</p></li>
<li><p>ports 80, 8081, 53, 50555, and 27017 are not in use</p></li>
2021-05-26 05:57:06 +08:00
</ul>
</dd>
<dt><strong>Notes:</strong></dt><dd><ul class="simple">
<li><p>You can change the port mappings in the Docker Compose if the listed ports are already in use.</p></li>
<li><p>You can run CoreDNS on a non-53 port, but this likely will cause issues on the client side (DNS on non-standard port). We do not recommend this and do not cover how to manage running CoreDNS on a different port for clients, which will likely have problems resolving a nameserver on a non-53 port.</p></li>
</ul>
</dd>
</dl>
<p>Assuming you have Docker and Docker Compose installed, you can just run the following, replacing <strong>&lt; Insert your-host IP Address Here &gt;</strong> with your host IP (or domain):</p>
<ol class="arabic simple">
<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><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.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>
<h3 id="server-only-install-ui-dns-client-disabled">Server Only Install - UI, DNS, Client Disabled<a class="headerlink" href="#server-only-install-ui-dns-client-disabled" title="Permalink to this headline"></a></h3>
<p>A “Server Only” install can be helpful for scenarios in which you do not want to run the UI. the UI is not mandatory for running a Netmaker network, but it makes the process easier. This mode also diables DNS and Client Modes, though you can add those back in if needed. There is no UI dependency on Client Mode or DNS Mode.</p>
<dl class="simple">
<dt><strong>Prerequisites:</strong></dt><dd><ul class="simple">
<li><p>ports 8081 and 50051 are not blocked by firewall</p></li>
<li><p>ports 8081, 50051, and 27017 are not in use</p></li>
</ul>
</dd>
<dt><strong>Notes:</strong></dt><dd><ul class="simple">
<li><p>You can still run the netclient on the host system even if Client Mode is not enabled. It will just be managed like the netclient on any other nodes, and will not be automatically managed by thhe server/UI.</p></li>
<li><p>You can change the port mappings in the Docker Compose if the listed ports are already in use.</p></li>
</ul>
</dd>
</dl>
<p>Assuming you have Docker and Docker Compose installed, you can just run the following, replacing <strong>&lt; Insert your-host IP Address Here &gt;</strong> with your host IP (or domain):</p>
<ol class="arabic simple">
<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.server-only.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>
</ol>
<h3 id="no-dns-coredns-disabled-client-enabled">No DNS - CoreDNS Disabled, Client Enabled<a class="headerlink" href="#no-dns-coredns-disabled-client-enabled" title="Permalink to this headline"></a></h3>
<p>DNS Mode is currently limited to clients that can run resolvectl (systemd-resolved, see <a class="reference internal" href="architecture.html"><span class="doc">Architecture docs</span></a> for more info). You may wish to disable DNS mode for various reasons. This installation option gives you the full feature set minus CoreDNS.</p>
<dl class="simple">
<dt><strong>Prerequisites:</strong></dt><dd><ul class="simple">
<li><p>systemd linux (Debian or Ubuntu reccommended)</p></li>
<li><p>sudo privileges</p></li>
<li><p>WireGuard installed</p></li>
2021-06-02 00:23:05 +08:00
<li><p>ports 80, 8081, and 50555 are not blocked by firewall</p></li>
<li><p>ports 80, 8081, 50555, and 27017 are not in use</p></li>
2021-05-26 05:57:06 +08:00
</ul>
</dd>
<dt><strong>Notes:</strong></dt><dd><ul class="simple">
<li><p>You can change the port mappings in the Docker Compose if the listed ports are already in use.</p></li>
<li><p>If you would like to run DNS Mode, but disable it on some clients, this is also an option. See the <a class="reference internal" href="client-installation.html"><span class="doc">client installation</span></a> documentation for more details.</p></li>
</ul>
</dd>
</dl>
<p>Assuming you have Docker and Docker Compose installed, you can just run the following, replacing <strong>&lt; Insert your-host IP Address Here &gt;</strong> with your host IP (or domain):</p>
<ol class="arabic simple">
<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.nodns.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>
</ol>
<p>No DNS - CoreDNS Disabled, Client Enabled</p>
<h3 id="no-client-dns-enabled-client-disabled">No Client - DNS Enabled, Client Disabled<a class="headerlink" href="#no-client-dns-enabled-client-disabled" title="Permalink to this headline"></a></h3>
<p>You may want to provide DNS, but do not want to run the server with special privileges, in which case you can run with just Client Mode disabled. It requires no special privileges and can run on any system with Docker and Docker Compose.</p>
<dl class="simple">
<dt><strong>Prerequisites:</strong></dt><dd><ul class="simple">
<li><p>ports 80, 8081, 53, and 50051 are not blocked by firewall</p></li>
<li><p>ports 80, 8081, 53, 50051, and 27017 are not in use</p></li>
<li><p>DNS Mode Prerequisite Setup (see above)</p></li>
</ul>
</dd>
<dt><strong>Notes:</strong></dt><dd><ul class="simple">
<li><p>You can still run the netclient on the host system even if Client Mode is not enabled. It will just be managed like the netclient on any other nodes, and will not be automatically managed by thhe server/UI.</p></li>
<li><p>You can change the port mappings in the Docker Compose if the listed ports are already in use.</p></li>
</ul>
</dd>
</dl>
<p>Assuming you have Docker and Docker Compose installed, you can just run the following, replacing <strong>&lt; Insert your-host IP Address Here &gt;</strong> with your host IP (or domain):</p>
<ol class="arabic simple">
<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.noclient.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>
<h3 id="reference-compose-file-annotated">Reference Compose File - Annotated<a class="headerlink" href="#reference-compose-file-annotated" title="Permalink to this headline"></a></h3>
<p>All environment variables and options are enabled in this file. It is the equivalent to running the “full install” from the above section. However, all environment variables are included, and are set to the default values provided by Netmaker (if the environment variable was left unset, it would not change the installation). Comments are added to each option to show how you might use it to modify your installation.</p>
<div class="highlight-YAML notranslate"><div class="highlight"><pre><span></span><span class="nt">version</span><span class="p">:</span> <span class="s">"3.4"</span>
<span class="nt">services</span><span class="p">:</span>
<span class="nt">mongodb</span><span class="p">:</span> <span class="c1"># The MongoDB Instance that backs up Netmaker</span>
<span class="nt">image</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mongo:4.2</span>
<span class="nt">ports</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="s">"27017:27017"</span> <span class="c1"># Port Mapping for MongoDB. Can be modified, but be sure to change the MONGO_PORT env var in netmaker</span>
<span class="nt">container_name</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mongodb</span>
<span class="nt">volumes</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">mongovol:/data/db</span>
<span class="nt">restart</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">always</span>
<span class="nt">environment</span><span class="p">:</span>
<span class="nt">MONGO_INITDB_ROOT_USERNAME</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mongoadmin</span> <span class="c1"># Default username. Recommend changing for production installs. You will need to set MONGO_ADMIN netmaker env var.</span>
<span class="nt">MONGO_INITDB_ROOT_PASSWORD</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">mongopass</span> <span class="c1"># Default password. Recommend changing for production installs. You will need to set MONGO_PASS netmaker env var.</span>
<span class="nt">netmaker</span><span class="p">:</span> <span class="c1"># The Primary Server for running Netmaker</span>
<span class="nt">privileged</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">true</span> <span class="c1"># Necessary to run sudo/root level commands on host system. Take out if not running with CLIENT_MODE=on</span>
<span class="nt">container_name</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">netmaker</span>
<span class="nt">depends_on</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">mongodb</span>
<span class="nt">image</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">gravitl/netmaker:v0.3</span>
<span class="nt">volumes</span><span class="p">:</span> <span class="c1"># Volume mounts necessary for CLIENT_MODE to control netclient, wireguard, and networking on host (except dnsconfig, which is where dns config files are stored for use by CoreDNS)</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">./:/local</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/etc/netclient:/etc/netclient</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">dnsconfig:/root/config/dnsconfig</span> <span class="c1"># Netmaker writes Corefile to this location, which gets mounted by CoreDNS for DNS configuration.</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/usr/bin/wg:/usr/bin/wg</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/run/systemd/system:/run/systemd/system</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/etc/systemd/system:/etc/systemd/system</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">/sys/fs/cgroup:/sys/fs/cgroup</span>
<span class="nt">cap_add</span><span class="p">:</span> <span class="c1"># Necessary for CLIENT_MODE. Should be removed if turned off. </span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">NET_ADMIN</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">SYS_MODULE</span>
<span class="nt">restart</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">always</span>
<span class="nt">network_mode</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">host</span> <span class="c1"># Necessary for CLIENT_MODE. Should be removed if turned off, but then need to add port mappings</span>
<span class="nt">environment</span><span class="p">:</span>
<span class="nt">SERVER_HOST</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># All the Docker Compose files pre-populate this with HOST_IP, which you replace as part of the install instructions. This will set both HTTP and GRPC host.</span>
<span class="nt">SERVER_HTTP_HOST</span><span class="p">:</span> <span class="s">"127.0.0.1"</span> <span class="c1"># Overrides SERVER_HOST if set. Useful for making HTTP and GRPC available via different interfaces/networks.</span>
<span class="nt">SERVER_GRPC_HOST</span><span class="p">:</span> <span class="s">"127.0.0.1"</span> <span class="c1"># Overrides SERVER_HOST if set. Useful for making HTTP and GRPC available via different interfaces/networks.</span>
<span class="nt">API_PORT</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">8081</span> <span class="c1"># The HTTP API port for Netmaker. Used for API calls / communication from front end. If changed, need to change port of BACKEND_URL for netmaker-ui.</span>
<span class="nt">GRPC_PORT</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">50051</span> <span class="c1"># The GRPC port for Netmaker. Used for communications from nodes.</span>
<span class="nt">MASTER_KEY</span><span class="p">:</span> <span class="s">"secretkey"</span> <span class="c1"># The admin master key for accessing the API. Change this in any production installation.</span>
<span class="nt">CORS_ALLOWED_ORIGIN</span><span class="p">:</span> <span class="s">"*"</span> <span class="c1"># The "allowed origin" for API requests. Change to restrict where API requests can come from.</span>
<span class="nt">REST_BACKEND</span><span class="p">:</span> <span class="s">"on"</span> <span class="c1"># Enables the REST backend (API running on API_PORT at SERVER_HTTP_HOST). Change to "off" to turn off.</span>
<span class="nt">AGENT_BACKEND</span><span class="p">:</span> <span class="s">"on"</span> <span class="c1"># Enables the AGENT backend (GRPC running on GRPC_PORT at SERVER_GRPC_HOST). Change to "off" to turn off.</span>
<span class="nt">CLIENT_MODE</span><span class="p">:</span> <span class="s">"on"</span> <span class="c1"># Enables Client Mode, meaning netclient will be deployed on server and will be manageable from UI. Change to "off" to turn off.</span>
<span class="nt">DNS_MODE</span><span class="p">:</span> <span class="s">"on"</span> <span class="c1"># Enables DNS Mode, meaning config files will be generated for CoreDNS. Note, turning "off" does not remove CoreDNS. You still need to remove CoreDNS from compose file.</span>
<span class="nt">DISABLE_REMOTE_IP_CHECK</span><span class="p">:</span> <span class="s">"off"</span> <span class="c1"># If turned "on", Server will not set Host based on remote IP check. This is already overridden if SERVER_HOST is set. Turned "off" by default.</span>
<span class="nt">MONGO_ADMIN</span><span class="p">:</span> <span class="s">"mongoadmin"</span> <span class="c1"># Admin user for MongoDB. Change to match above MongoDB instance</span>
<span class="nt">MONGO_PASS</span><span class="p">:</span> <span class="s">"mongopass"</span> <span class="c1"># Admin password for MongoDB. Change to match above MongoDB instance</span>
<span class="nt">MONGO_HOST</span><span class="p">:</span> <span class="s">"127.0.0.1"</span> <span class="c1"># Address of MongoDB. Change if necessary.</span>
<span class="nt">MONGO_PORT</span><span class="p">:</span> <span class="s">"27017"</span> <span class="c1"># Port of MongoDB. Change if necessary.</span>
<span class="nt">MONGO_OPTS</span><span class="p">:</span> <span class="s">"/?authSource=admin"</span> <span class="c1"># Opts to enable admin login for Mongo.</span>
2021-06-02 00:23:05 +08:00
<span class="nt">SERVER_GRPC_WIREGUARD</span><span class="p">:</span> <span class="s">"on"</span> <span class="c1"># Whether to run GRPC over a WireGuard network. On by default. Secures server comms. Switch to "off" to turn off.</span>
<span class="nt">SERVER_GRPC_WG_INTERFACE</span><span class="p">:</span> <span class="s">"nm-grpc-wg"</span> <span class="c1"># Interface to use for GRPC WireGuard network if enabled</span>
<span class="nt">SERVER_GRPC_WG_ADDRESS</span><span class="p">:</span> <span class="s">"10.101.0.1"</span> <span class="c1"># Private Address to use for GRPC WireGuard network if enabled</span>
<span class="nt">SERVER_GRPC_WG_ADDRESS_RANGE</span><span class="p">:</span> <span class="s">"10.101.0.0/16"</span> <span class="c1"># Private Address range to use for GRPC WireGard clients if enabled</span>
<span class="nt">SERVER_GRPC_WG_PORT</span><span class="p">:</span> <span class="s">"50555"</span> <span class="c1"># Port to use for GRPC WireGuard if enabled</span>
<span class="nt">SERVER_GRPC_WG_PUBKEY</span><span class="p">:</span> <span class="s">"SERVER_GRPC_WG_PUBKEY"</span> <span class="c1"># PublicKey for GRPC WireGuard interface. Generated if blank.</span>
<span class="nt">SERVER_GRPC_WG_PRIVKEY</span><span class="p">:</span> <span class="s">"SERVER_GRPC_WG_PRIVKEY"</span> <span class="c1"># PrivateKey for GRPC WireGuard interface. Generated if blank.</span>
2021-05-26 05:57:06 +08:00
<span class="nt">netmaker-ui</span><span class="p">:</span> <span class="c1"># The Netmaker UI Component</span>
<span class="nt">container_name</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">netmaker-ui</span>
<span class="nt">depends_on</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">netmaker</span>
<span class="nt">image</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">gravitl/netmaker-ui:v0.3</span>
<span class="nt">links</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="s">"netmaker:api"</span>
<span class="nt">ports</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="s">"80:80"</span>
<span class="nt">environment</span><span class="p">:</span>
<span class="nt">BACKEND_URL</span><span class="p">:</span> <span class="s">"http://HOST_IP:8081"</span> <span class="c1"># URL where UI will send API requests. Change based on SERVER_HOST, SERVER_HTTP_HOST, and API_PORT</span>
<span class="nt">MASTER_KEY</span><span class="p">:</span> <span class="s">"secretkey"</span> <span class="c1"># Master Key for API calls. Will be removed in v0.3.5</span>
<span class="nt">coredns</span><span class="p">:</span> <span class="c1"># The DNS Server. Remove this section if DNS_MODE="off"</span>
<span class="nt">depends_on</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">netmaker</span>
<span class="nt">image</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">coredns/coredns</span>
<span class="nt">command</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">-conf /root/dnsconfig/Corefile</span> <span class="c1"># Config location for Corefile. This is the path of file which is also mounted to Netmaker for modification.</span>
<span class="nt">container_name</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">coredns</span>
<span class="nt">restart</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">always</span>
<span class="nt">ports</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="s">"53:53/udp"</span> <span class="c1"># Likely needs to run at port 53 for adequate nameserver usage.</span>
<span class="nt">volumes</span><span class="p">:</span>
<span class="p p-Indicator">-</span> <span class="l l-Scalar l-Scalar-Plain">dnsconfig:/root/dnsconfig</span>
<span class="nt">volumes</span><span class="p">:</span>
<span class="nt">mongovol</span><span class="p">:</span> <span class="p p-Indicator">{}</span>
<span class="nt">dnsconfig</span><span class="p">:</span> <span class="p p-Indicator">{}</span>
</pre></div>
</div>
<h2 id="linux-install-without-docker">Linux Install without Docker<a class="headerlink" href="#linux-install-without-docker" title="Permalink to this headline"></a></h2>
<p>Most systems support Docker, but some, such as LXC, do not. In such environments, there are many options for installing Netmaker. Netmaker is available as a binary file, and there is a zip file of the Netmaker UI static HTML on GitHub. Beyond the UI and Server, you need to install MongoDB and CoreDNS (optional).</p>
<p>Below is a guided set of instructions for installing without Docker on Ubuntu 20.04. Depending on your system, the steps may vary.</p>
<h3 id="mongodb-setup">MongoDB Setup<a class="headerlink" href="#mongodb-setup" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><dl class="simple">
<dt>Install MongoDB on your server:</dt><dd><ul class="simple">
<li><p>For Ubuntu: <cite>sudo apt install -y mongodb</cite></p></li>
<li><p>For more advanced installation or other operating systems, see the <a class="reference external" href="https://docs.mongodb.com/manual/administration/install-community/">MongoDB documentation</a>.</p></li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>Create a user:</dt><dd><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">mongo</span> <span class="pre">admin</span></code></p></li>
<li><p>&gt; <cite>db.createUser({ user: “mongoadmin” , pwd: “mongopass”, roles: [“userAdminAnyDatabase”, “dbAdminAnyDatabase”, “readWriteAnyDatabase”]})</cite></p></li>
</ul>
</dd>
</dl>
</li>
</ol>
<h3 id="server-setup">Server Setup<a class="headerlink" href="#server-setup" title="Permalink to this headline"></a></h3>
<ol class="arabic simple">
<li><p><strong>Run the install script:</strong> <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">curl</span> <span class="pre">-sfL</span> <span class="pre">https://raw.githubusercontent.com/gravitl/netmaker/v0.3.5/scripts/netmaker-server.sh</span> <span class="pre">|</span> <span class="pre">sh</span> <span class="pre">-</span></code></p></li>
<li><p>Check status: <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">journalctl</span> <span class="pre">-u</span> <span class="pre">netmaker</span></code></p></li>
<li><p>If any settings are incorrect such as host or mongo credentials, change them under /etc/netmaker/config/environments/&lt; your env &gt;.yaml and then run <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">systemctl</span> <span class="pre">restart</span> <span class="pre">netmaker</span></code></p></li>
</ol>
<h3 id="ui-setup">UI Setup<a class="headerlink" href="#ui-setup" title="Permalink to this headline"></a></h3>
<p>The following uses NGinx as an http server. You may alternatively use Apache or any other web server that serves static web files.</p>
<ol class="arabic simple">
<li><p><strong>Download UI asset files:</strong> <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">wget</span> <span class="pre">-O</span> <span class="pre">/usr/share/nginx/html/netmaker-ui.zip</span> <span class="pre">https://github.com/gravitl/netmaker-ui/releases/download/latest/netmaker-ui.zip</span></code></p></li>
<li><p><strong>Unzip:</strong> <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">unzip</span> <span class="pre">/usr/share/nginx/html/netmaker-ui.zip</span> <span class="pre">-d</span> <span class="pre">/usr/share/nginx/html</span></code></p></li>
<li><p><strong>Copy Config to Nginx:</strong> <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">cp</span> <span class="pre">/usr/share/nginx/html/nginx.conf</span> <span class="pre">/etc/nginx/conf.d/default.conf</span></code></p></li>
<li><p><strong>Modify Default Config Path:</strong> <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">sed</span> <span class="pre">-i</span> <span class="pre">'s/root</span> <span class="pre">\/var\/www\/html/root</span> <span class="pre">\/usr\/share\/nginx\/html/g'</span> <span class="pre">/etc/nginx/sites-available/default</span></code></p></li>
<li><p><strong>Change Backend URL:</strong> <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">sh</span> <span class="pre">-c</span> <span class="pre">'BACKEND_URL=http://&lt;YOUR</span> <span class="pre">BACKEND</span> <span class="pre">API</span> <span class="pre">URL&gt;:PORT</span> <span class="pre">/usr/share/nginx/html/generate_config_js.sh</span> <span class="pre">&gt;/usr/share/nginx/html/config.js'</span></code></p></li>
<li><p><strong>Start Nginx:</strong> <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">systemctl</span> <span class="pre">start</span> <span class="pre">nginx</span></code></p></li>
</ol>
<h3 id="coredns-setup">CoreDNS Setup<a class="headerlink" href="#coredns-setup" title="Permalink to this headline"></a></h3>
<h2 id="kubernetes-install">Kubernetes Install<a class="headerlink" href="#kubernetes-install" title="Permalink to this headline"></a></h2>
<p><strong>This configuration is coming soon.</strong> It will allow you to deploy Netmaker on a Kubernetes cluster.</p>
<h2 id="configuration-reference">Configuration Reference<a class="headerlink" href="#configuration-reference" title="Permalink to this headline"></a></h2>
<p>The “Reference Compose File” (above) explains many of these options. However, it is important to understand fundamentally how Netmaker sets its configuration:</p>
<ol class="arabic simple">
<li><p>Defaults</p></li>
<li><p>Config File</p></li>
<li><p>Environment Variables</p></li>
</ol>
<h3 id="variable-description">Variable Description<a class="headerlink" href="#variable-description" title="Permalink to this headline"></a></h3>
<dl>
<dt>SERVER_HOST:</dt><dd><p><strong>Default:</strong> Server will perform an IP check and set automatically unless explicitly set, or DISABLE_REMOTE_IP_CHECK is set to true, in which case it defaults to 127.0.0.1</p>
<p><strong>Description:</strong> Sets the SERVER_HTTP_HOST and SERVER_GRPC_HOST variables if they are unset. The address where traffic comes in.</p>
</dd>
<dt>SERVER_HTTP_HOST:</dt><dd><p><strong>Default:</strong> Equals SERVER_HOST if set, “127.0.0.1” if SERVER_HOST is unset.</p>
<p><strong>Description:</strong> Set to make the HTTP and GRPC functions available via different interfaces/networks.</p>
</dd>
<dt>SERVER_GRPC_HOST:</dt><dd><p><strong>Default:</strong> Equals SERVER_HOST if set, “127.0.0.1” if SERVER_HOST is unset.</p>
<p><strong>Description:</strong> Set to make the HTTP and GRPC functions available via different interfaces/networks.</p>
</dd>
<dt>API_PORT:</dt><dd><p><strong>Default:</strong> 8081</p>
<p><strong>Description:</strong> The HTTP API port for Netmaker. Used for API calls / communication from front end.</p>
</dd>
<dt>GRPC_PORT:</dt><dd><p><strong>Default:</strong> 50051</p>
<p><strong>Description:</strong> The GRPC port for Netmaker. Used for communications from nodes.</p>
</dd>
<dt>MASTER_KEY:</dt><dd><p><strong>Default:</strong> “secretkey”</p>
<p><strong>Description:</strong> The admin master key for accessing the API. Change this in any production installation.</p>
</dd>
<dt>CORS_ALLOWED_ORIGIN:</dt><dd><p><strong>Default:</strong> “*”</p>
<p><strong>Description:</strong> The “allowed origin” for API requests. Change to restrict where API requests can come from.</p>
</dd>
<dt>REST_BACKEND:</dt><dd><p><strong>Default:</strong> “on”</p>
<p><strong>Description:</strong> Enables the REST backend (API running on API_PORT at SERVER_HTTP_HOST). Change to “off” to turn off.</p>
</dd>
<dt>AGENT_BACKEND:</dt><dd><p><strong>Default:</strong> “on”</p>
<p><strong>Description:</strong> Enables the AGENT backend (GRPC running on GRPC_PORT at SERVER_GRPC_HOST). Change to “off” to turn off.</p>
</dd>
<dt>CLIENT_MODE:</dt><dd><p><strong>Default:</strong> “on”</p>
<p><strong>Description:</strong> Enables Client Mode, meaning netclient will be deployed on server and will be manageable from UI. Change to “off” to turn off.</p>
</dd>
<dt>DNS_MODE:</dt><dd><p><strong>Default:</strong> “on”</p>
<p><strong>Description:</strong> Enables DNS Mode, meaning config files will be generated for CoreDNS.</p>
</dd>
<dt>DISABLE_REMOTE_IP_CHECK:</dt><dd><p><strong>Default:</strong> “off”</p>
<p><strong>Description:</strong> If turned “on”, Server will not set Host based on remote IP check. This is already overridden if SERVER_HOST is set. Turned “off” by default.</p>
</dd>
<dt>MONGO_ADMIN:</dt><dd><p><strong>Default:</strong> “mongoadmin”</p>
<p><strong>Description:</strong> Admin user for MongoDB.</p>
</dd>
<dt>MONGO_PASS:</dt><dd><p><strong>Default:</strong> “mongopass”</p>
<p><strong>Description:</strong> Admin password for MongoDB.</p>
</dd>
<dt>MONGO_HOST:</dt><dd><p><strong>Default:</strong> “127.0.0.1”</p>
<p><strong>Description:</strong> Address of MongoDB.</p>
</dd>
<dt>MONGO_PORT:</dt><dd><p><strong>Default:</strong> “27017”</p>
<p><strong>Description:</strong> Port of MongoDB.</p>
</dd>
<dt>MONGO_OPTS:</dt><dd><p><strong>Default:</strong> “/?authSource=admin”</p>
<p><strong>Description:</strong> Opts to enable admin login for Mongo.</p>
</dd>
2021-06-02 00:23:05 +08:00
<dt>SERVER_GRPC_WIREGUARD:</dt><dd><p><strong>Default:</strong> “on”</p>
<p><strong>Description:</strong> Whether to run GRPC over a WireGuard network. On by default. Secures the server comms. Switch to “off” to turn off. If off and running in production, make sure to have certificates installed to secure GRPC communications.</p>
</dd>
<dt>SERVER_GRPC_WG_INTERFACE:</dt><dd><p><strong>Default:</strong> “nm-grpc-wg”</p>
<p><strong>Description:</strong> Interface to use for GRPC WireGuard network if enabled</p>
</dd>
<dt>SERVER_GRPC_WG_ADDRESS:</dt><dd><p><strong>Default:</strong> “10.101.0.1”</p>
<p><strong>Description:</strong> Private Address to use for GRPC WireGuard network if enabled</p>
</dd>
<dt>SERVER_GRPC_WG_ADDRESS_RANGE:</dt><dd><p><strong>Default:</strong> “10.101.0.0/16”</p>
<p><strong>Description:</strong> Private Address range to use for GRPC WireGard clients if enabled. Gives 65,534 total addresses for all of netmaker. If running a larger network, will need to configure addresses differently, for instance using ipv6, or use certificates instead.</p>
</dd>
<dt>SERVER_GRPC_WG_PORT:</dt><dd><p><strong>Default:</strong> 50555</p>
<p><strong>Description:</strong> Port to use for GRPC WireGuard if enabled</p>
</dd>
<dt>SERVER_GRPC_WG_PUBKEY:</dt><dd><p><strong>Default:</strong> &lt; generated at startup &gt;</p>
<p><strong>Description:</strong> PublicKey for GRPC WireGuard interface. Generated if left blank.</p>
</dd>
<dt>SERVER_GRPC_WG_PRIVKEY:</dt><dd><p><strong>Default:</strong> &lt; generated at startup &gt;</p>
<p><strong>Description:</strong> PrivateKey for GRPC WireGuard interface. Generated if left blank.</p>
</dd>
<dt>SERVER_GRPC_WG_KEYREQUIRED</dt><dd><p><strong>Default:</strong> “”</p>
<p><strong>Description:</strong> Determines if an Access Key is required to join the Comms network. Blank (meaning no) by default. Set to “yes” to turn on.</p>
</dd>
2021-05-26 05:57:06 +08:00
</dl>
<h3 id="config-file-reference">Config File Reference<a class="headerlink" href="#config-file-reference" title="Permalink to this headline"></a></h3>
<p>A config file may be placed under config/environments/&lt;env-name&gt;.yml. To read this file at runtime, provide the environment variable ENV at runtime. For instance, dev.yml paired with ENV=dev. Netmaker will load the specified Config file. This allows you to store and manage configurations for different environments. Below is a reference Config File you may use.</p>
<div class="highlight-YAML notranslate"><div class="highlight"><pre><span></span><span class="nt">server</span><span class="p">:</span>
<span class="nt">apihost</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 127.0.0.1 or remote ip (SERVER_HOST) if DisableRemoteIPCheck is not set to true. SERVER_API_HOST if set</span>
<span class="nt">apiport</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 8081 or HTTP_PORT (if set)</span>
<span class="nt">grpchost</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 127.0.0.1 or remote ip (SERVER_HOST) if DisableRemoteIPCheck is not set to true. SERVER_GRPC_HOST if set.</span>
<span class="nt">grpcport</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 50051 or GRPC_PORT (if set)</span>
<span class="nt">masterkey</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 'secretkey' or MASTER_KEY (if set)</span>
<span class="nt">allowedorigin</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to '*' or CORS_ALLOWED_ORIGIN (if set)</span>
<span class="nt">restbackend</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "on" or REST_BACKEND (if set)</span>
<span class="nt">agentbackend</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "on" or AGENT_BACKEND (if set)</span>
<span class="nt">clientmode</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "on" or CLIENT_MODE (if set)</span>
<span class="nt">dnsmode</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "on" or DNS_MODE (if set)</span>
<span class="nt">disableremoteipcheck</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "false" or DISABLE_REMOTE_IP_CHECK (if set)</span>
<span class="nt">mongoconn</span><span class="p">:</span>
<span class="nt">user</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "mongoadmin" or MONGO_ADMIN (if set)</span>
<span class="nt">pass</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "mongopass" or MONGO_PASS (if set)</span>
<span class="nt">host</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 127.0.0.1 or MONGO_HOST (if set)</span>
<span class="nt">port</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 27017 or MONGO_PORT (if set)</span>
<span class="nt">opts</span><span class="p">:</span> <span class="s">''</span> <span class="c1"># defaults to '/?authSource=admin' or MONGO_OPTS (if set)</span>
2021-06-02 00:23:05 +08:00
<span class="nt">wg</span><span class="p">:</span>
<span class="nt">keyrequired</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "". If set to "yes", a key is required for signing up for the comms network </span>
<span class="nt">grpcwg</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to "on" or SERVER_GRPC_WIREGUARD if set</span>
<span class="nt">grpciface</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to nm-grpc-wg or SERVER_GRPC_WG_INTERFACE if set</span>
<span class="nt">grpcaddr</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 10.101.0.1 or SERVER_GRPC_WG_ADDRESS if set</span>
<span class="nt">grpcaddrrange</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 10.101.0.0/16 or SERVER_GRPC_WG_ADDRESS_RANGE if set</span>
<span class="nt">grpcendpoint</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to SERVER_HOST if unset</span>
<span class="nt">grpcport</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to 50555 or SERVER_GRPC_WG_PORT if set</span>
<span class="nt">pubkey</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to generated value or SERVER_GRPC_WG_PUBKEY if set</span>
<span class="nt">privkey</span><span class="p">:</span> <span class="s">""</span> <span class="c1"># defaults to generated value or SERVER_GRPC_WG_PRIVKEY if set</span>
2021-05-26 05:57:06 +08:00
</pre></div>
</div>
</article>
</div>
</div>
</main>
</div>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid">
<a href="quick-start.html" title="Quick Start"
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> Quick Start </span>
</div>
</a>
<a href="client-installation.html" title="Client Installation"
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> Client Installation </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
2021-06-02 00:23:05 +08:00
<a href="http://www.sphinx-doc.org/">Sphinx</a> 3.5.4.
2021-05-26 05:57:06 +08:00
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>