mirror of
https://github.com/gravitl/netmaker.git
synced 2024-11-15 06:05:27 +08:00
1054 lines
No EOL
40 KiB
HTML
1054 lines
No EOL
40 KiB
HTML
|
||
<!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>API Reference — Netmaker 0.9.0 documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||
<link rel="stylesheet" type="text/css" href="_static/material.css" />
|
||
<script data-url_root="./" id="documentation_options" 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="Troubleshooting" href="troubleshoot.html" />
|
||
<link rel="prev" title="Using Netmaker" href="usage.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="#api" 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.9.0 documentation"
|
||
class="md-header-nav__button md-logo">
|
||
|
||
<i class="md-icon"></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"> API Reference </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">
|
||

|
||
</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.9.0 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.9.0 documentation" class="md-nav__button md-logo">
|
||
|
||
<i class="md-icon"></i>
|
||
|
||
</a>
|
||
<a href="index.html"
|
||
title="Netmaker 0.9.0 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="install.html" class="md-nav__link">Install</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start.html" class="md-nav__link">Quick Install</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">0. Prerequisites</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start.html#prepare-dns" class="md-nav__link">1. Prepare DNS</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start.html#install-dependencies" class="md-nav__link">2. Install Dependencies</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start.html#open-firewall" class="md-nav__link">3. Open Firewall</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start.html#install-netmaker" class="md-nav__link">4. Install Netmaker</a>
|
||
|
||
|
||
</li></ul>
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="getting-started.html" class="md-nav__link">Getting Started</a>
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="getting-started.html#setup" class="md-nav__link">Setup</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="getting-started.html#deploy-nodes" class="md-nav__link">Deploy Nodes</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="getting-started.html#manage-nodes" class="md-nav__link">Manage Nodes</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="getting-started.html#uninstalling-the-netclient" class="md-nav__link">Uninstalling the netclient</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="getting-started.html#uninstalling-netmaker" class="md-nav__link">Uninstalling Netmaker</a>
|
||
|
||
|
||
</li></ul>
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start-nginx.html" class="md-nav__link">Install with Nginx (depreciated)</a>
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start-nginx.html#introduction" class="md-nav__link">0. Introduction</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start-nginx.html#prerequisites" class="md-nav__link">1. Prerequisites</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start-nginx.html#install-dependencies" class="md-nav__link">2. Install Dependencies</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start-nginx.html#prepare-vm" class="md-nav__link">3. Prepare VM</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="quick-start-nginx.html#install-netmaker" class="md-nav__link">4. Install Netmaker</a>
|
||
|
||
|
||
</li></ul>
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html" class="md-nav__link">Advanced 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#server-configuration-reference" class="md-nav__link">Server Configuration Reference</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html#dns-mode-setup" class="md-nav__link">DNS Mode Setup</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html#docker-compose-install" class="md-nav__link">Docker Compose Install</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html#linux-install-without-docker" class="md-nav__link">Linux Install without Docker</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html#kubernetes-install" class="md-nav__link">Kubernetes Install</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html#nginx-reverse-proxy-setup-with-https" class="md-nav__link">Nginx Reverse Proxy Setup with https</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html#highly-available-installation-kubernetes" class="md-nav__link">Highly Available Installation (Kubernetes)</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="server-installation.html#highly-available-installation-vms-bare-metal" class="md-nav__link">Highly Available Installation (VMs/Bare Metal)</a>
|
||
|
||
|
||
</li></ul>
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="oauth.html" class="md-nav__link">Integrating OAuth</a>
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="oauth.html#introduction" class="md-nav__link">Introduction</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="oauth.html#configuring-your-provider" class="md-nav__link">Configuring your provider</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="oauth.html#configuring-netmaker" class="md-nav__link">Configuring Netmaker</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="oauth.html#configuring-user-permissions" class="md-nav__link">Configuring User Permissions</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#introduction-to-netclient" class="md-nav__link">Introduction to Netclient</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="client-installation.html#notes-on-windows" class="md-nav__link">Notes on Windows</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>
|
||
|
||
|
||
</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>
|
||
|
||
|
||
</li></ul>
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<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>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="external-clients.html#configuring-an-ingress-gateway" class="md-nav__link">Configuring an Ingress Gateway</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="external-clients.html#adding-clients-to-a-gateway" class="md-nav__link">Adding Clients to a Gateway</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="external-clients.html#configuring-dns-for-ext-clients-optional" class="md-nav__link">Configuring DNS for Ext Clients (OPTIONAL)</a>
|
||
|
||
|
||
</li></ul>
|
||
|
||
</li>
|
||
<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></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"> API Reference </label>
|
||
|
||
<a href="#" class="md-nav__link md-nav__link--active">API Reference</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="#api--page-root" class="md-nav__link">API Reference</a><nav class="md-nav">
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item"><a href="#api-usage" class="md-nav__link">API Usage</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#authentication" class="md-nav__link">Authentication</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#format-of-calls-for-curl" class="md-nav__link">Format of Calls for Curl</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#api-documentation" class="md-nav__link">API Documentation</a><nav class="md-nav">
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item"><a href="#networks-api" class="md-nav__link">Networks API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#networks-api-call-examples" class="md-nav__link">Networks API Call Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#access-keys-api" class="md-nav__link">Access Keys API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#access-keys-api-call-examples" class="md-nav__link">Access Keys API Call Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#nodes-api" class="md-nav__link">Nodes API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#nodes-api-call-examples" class="md-nav__link">Nodes API Call Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#users-api" class="md-nav__link">Users API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#users-api-calls-examples" class="md-nav__link">Users API Calls Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#server-management-api" class="md-nav__link">Server Management API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#file-server-api" class="md-nav__link">File Server API</a>
|
||
</li></ul>
|
||
</nav>
|
||
</li></ul>
|
||
</nav>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="#api-usage" class="md-nav__link">API Usage</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="#authentication" class="md-nav__link">Authentication</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="#format-of-calls-for-curl" class="md-nav__link">Format of Calls for Curl</a>
|
||
|
||
|
||
</li>
|
||
<li class="md-nav__item">
|
||
|
||
|
||
<a href="#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#netclient" class="md-nav__link">Netclient</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#contact" class="md-nav__link">Contact</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="#api--page-root" class="md-nav__link">API Reference</a><nav class="md-nav">
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item"><a href="#api-usage" class="md-nav__link">API Usage</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#authentication" class="md-nav__link">Authentication</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#format-of-calls-for-curl" class="md-nav__link">Format of Calls for Curl</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#api-documentation" class="md-nav__link">API Documentation</a><nav class="md-nav">
|
||
<ul class="md-nav__list">
|
||
<li class="md-nav__item"><a href="#networks-api" class="md-nav__link">Networks API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#networks-api-call-examples" class="md-nav__link">Networks API Call Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#access-keys-api" class="md-nav__link">Access Keys API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#access-keys-api-call-examples" class="md-nav__link">Access Keys API Call Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#nodes-api" class="md-nav__link">Nodes API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#nodes-api-call-examples" class="md-nav__link">Nodes API Call Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#users-api" class="md-nav__link">Users API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#users-api-calls-examples" class="md-nav__link">Users API Calls Examples</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#server-management-api" class="md-nav__link">Server Management API</a>
|
||
</li>
|
||
<li class="md-nav__item"><a href="#file-server-api" class="md-nav__link">File Server API</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="api--page-root">API Reference<a class="headerlink" href="#api--page-root" title="Permalink to this headline">¶</a></h1>
|
||
|
||
<h2 id="api-usage">API Usage<a class="headerlink" href="#api-usage" title="Permalink to this headline">¶</a></h2>
|
||
<p>Most actions that can be performed via API can be performed via UI. We recommend managing your networks using the official netmaker-ui project. However, Netmaker can also be run without the UI, and all functions can be achieved via API calls. If your use case requires using Netmaker without the UI or you need to do some troubleshooting/advanced configuration, using the API directly may help.</p>
|
||
|
||
|
||
<h2 id="authentication">Authentication<a class="headerlink" href="#authentication" title="Permalink to this headline">¶</a></h2>
|
||
<p>API calls must be authenticated via a header of the format <cite>-H “Authorization: Bearer <YOUR_SECRET_KEY>”</cite> There are two methods to obtain YOUR_SECRET_KEY:
|
||
1. Using the masterkey. By default, this value is “secret key,” but you should change this on your instance and keep it secure. This value can be set via env var at startup or in a config file (config/environments/< env >.yaml). See the [general usage](./USAGE.md) documentation for more details.
|
||
2. Using a JWT recieved for a node. This can be retrieved by calling the <cite>/api/nodes/<network>/authenticate</cite> endpoint, as documented below.</p>
|
||
|
||
|
||
<h2 id="format-of-calls-for-curl">Format of Calls for Curl<a class="headerlink" href="#format-of-calls-for-curl" title="Permalink to this headline">¶</a></h2>
|
||
<p>Requests take the format of <cite>curl -H “Authorization: Bearer <YOUR_SECRET_KEY>” -H ‘Content-Type: application/json’ localhost:8081/api/path/to/endpoint</cite></p>
|
||
|
||
|
||
<h2 id="api-documentation">API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this headline">¶</a></h2>
|
||
|
||
<h3 id="networks-api">Networks API<a class="headerlink" href="#networks-api" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get All Networks:</strong> <cite>/api/networks</cite>, <cite>GET</cite></p>
|
||
<p><strong>Create Network:</strong> <cite>/api/network</cite>, <cite>POST</cite></p>
|
||
<p><strong>Get Network:</strong> <cite>/api/networks/{network id}</cite>, <cite>GET</cite></p>
|
||
<p><strong>Update Network:</strong> <cite>/api/networks/{network id}</cite>, <cite>PUT</cite></p>
|
||
<p><strong>Delete Network:</strong> <cite>/api/networks/{network id}</cite>, <cite>DELETE</cite></p>
|
||
<p><strong>Cycle PublicKeys on all Nodes:</strong> <cite>/api/networks/{network id}/keyupdate</cite>, <cite>POST</cite></p>
|
||
|
||
|
||
<h3 id="networks-api-call-examples">Networks API Call Examples<a class="headerlink" href="#networks-api-call-examples" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get All Networks:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/networks | jq</cite></p>
|
||
<p><strong>Create Network:</strong> <cite>curl -d ‘{“addressrange”:”10.70.0.0/16”,”netid”:”skynet”}’ -H “Authorization: Bearer YOUR_SECRET_KEY” -H ‘Content-Type: application/json’ localhost:8081/api/networks</cite></p>
|
||
<p><strong>Get Network:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/networks/skynet | jq</cite></p>
|
||
<p><strong>Update Network:</strong> <cite>curl -X PUT -d ‘{“displayname”:”my-house”}’ -H “Authorization: Bearer YOUR_SECRET_KEY” -H ‘Content-Type: application/json’ localhost:8081/api/networks/skynet</cite></p>
|
||
<p><strong>Delete Network:</strong> <cite>curl -X DELETE -H “Authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/networks/skynet</cite></p>
|
||
<p><strong>Cycle PublicKeys on all Nodes:</strong> <cite>curl -X POST -H “Authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/networks/skynet/keyupdate</cite></p>
|
||
|
||
|
||
<h3 id="access-keys-api">Access Keys API<a class="headerlink" href="#access-keys-api" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get All Keys:</strong> <cite>/api/networks/{network id}/keys</cite>, <cite>GET</cite></p>
|
||
<p><strong>Create Key:</strong> <cite>/api/networks/{network id}/keys</cite>, <cite>GET</cite></p>
|
||
<p><strong>Delete Key:</strong> <cite>/api/networks/{network id}/keys/{keyname}</cite>, <cite>DELETE</cite></p>
|
||
|
||
|
||
<h3 id="access-keys-api-call-examples">Access Keys API Call Examples<a class="headerlink" href="#access-keys-api-call-examples" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get All Keys:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/networks/skynet/keys | jq</cite></p>
|
||
<p><strong>Create Key:</strong> <cite>curl -d ‘{“uses”:10,”name”:”mykey”}’ -H “Authorization: Bearer YOUR_SECRET_KEY” -H ‘Content-Type: application/json’ localhost:8081/api/networks/skynet/keys</cite></p>
|
||
<p><strong>Delete Key:</strong> <cite>curl -X DELETE -H “Authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/networks/skynet/keys/mykey</cite></p>
|
||
|
||
|
||
<h3 id="nodes-api">Nodes API<a class="headerlink" href="#nodes-api" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get All Nodes:</strong> <cite>/api/nodes</cite>, <cite>GET</cite></p>
|
||
<p><strong>Get Network Nodes:</strong> <cite>/api/nodes/{network id}</cite>, <cite>GET</cite></p>
|
||
<p><strong>Create Node:</strong> <cite>/api/nodes/{network id}</cite>, <cite>POST</cite></p>
|
||
<p><strong>Get Node:</strong> <cite>/api/nodes/{network id}/{macaddress}</cite>, <cite>GET</cite></p>
|
||
<p><strong>Update Node:</strong> <cite>/api/nodes/{network id}/{macaddress}</cite>, <cite>PUT</cite></p>
|
||
<p><strong>Delete Node:</strong> <cite>/api/nodes/{network id}/{macaddress}</cite>, <cite>DELETE</cite></p>
|
||
<p><strong>Check In Node:</strong> <cite>/api/nodes/{network id}/{macaddress}/checkin</cite>, <cite>POST</cite></p>
|
||
<p><strong>Create a Gateway:</strong> <cite>/api/nodes/{network id}/{macaddress}/creategateway</cite>, <cite>POST</cite></p>
|
||
<p><strong>Delete a Gateway:</strong> <cite>/api/nodes/{network id}/{macaddress}/deletegateway</cite>, <cite>DELETE</cite></p>
|
||
<p><strong>Uncordon (Approve) a Pending Node:</strong> <cite>/api/nodes/{network id}/{macaddress}/uncordon</cite>, <cite>POST</cite></p>
|
||
<p><strong>Get Last Modified Date (Last Modified Node in Network):</strong> <cite>/api/nodes/adm/{network id}/lastmodified</cite>, <cite>GET</cite></p>
|
||
<p><strong>Authenticate:</strong> <cite>/api/nodes/adm/{network id}/authenticate</cite>, <cite>POST</cite></p>
|
||
|
||
|
||
<h3 id="nodes-api-call-examples">Nodes API Call Examples<a class="headerlink" href="#nodes-api-call-examples" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get All Nodes:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” http://localhost:8081/api/nodes | jq</cite></p>
|
||
<p><strong>Get Network Nodes:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” http://localhost:8081/api/nodes/skynet | jq</cite></p>
|
||
<p><strong>Create Node:</strong> <cite>curl -d ‘{ “endpoint”: 100.200.100.200, “publickey”: aorijqalrik3ajflaqrdajhkr,”macaddress”: “8c:90:b5:06:f1:d9”,”password”: “reallysecret”,”localaddress”: “172.16.16.1”,”accesskey”: “aA3bVG0rnItIRXDx”,”listenport”: 6400}’ -H ‘Content-Type: application/json’ -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/nodes/skynet</cite></p>
|
||
<p><strong>Get Node:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” http://localhost:8081/api/nodes/skynet/{macaddress} | jq</cite></p>
|
||
<p><strong>Update Node:</strong> <cite>curl -X PUT -d ‘{“name”:”laptop1”}’ -H ‘Content-Type: application/json’ -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/nodes/skynet/8c:90:b5:06:f1:d9</cite></p>
|
||
<p><strong>Delete Node:</strong> <cite>curl -X DELETE -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/skynet/nodes/8c:90:b5:06:f1:d9</cite></p>
|
||
<p><strong>Create a Gateway:</strong> <cite>curl -d ‘{ “rangestring”: “172.31.0.0/16”, “interface”: “eth0”}’ -H ‘Content-Type: application/json’ -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/nodes/skynet/8c:90:b5:06:f1:d9/creategateway</cite></p>
|
||
<p><strong>Delete a Gateway:</strong> <cite>curl -X DELETE -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/nodes/skynet/8c:90:b5:06:f1:d9/deletegateway</cite></p>
|
||
<p><strong>Approve a Pending Node:</strong> <cite>curl -X POST -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/nodes/skynet/8c:90:b5:06:f1:d9/approve</cite></p>
|
||
<p><strong>Get Last Modified Date (Last Modified Node in Network):</strong> <cite>curl -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/nodes/adm/skynet/lastmodified</cite></p>
|
||
<p><strong>Authenticate:</strong> <cite>curl -d ‘{“macaddress”: “8c:90:b5:06:f1:d9”, “password”: “YOUR_PASSWORD”}’ -H ‘Content-Type: application/json’ localhost:8081/api/nodes/adm/skynet/authenticate</cite></p>
|
||
|
||
|
||
<h3 id="users-api">Users API<a class="headerlink" href="#users-api" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Note:</strong> Only able to create Admin user at this time. The “user” is only used by the <a class="reference external" href="https://github.com/gravitl/netmaker-ui">user interface</a> to authenticate the single admin user.</p>
|
||
<p><strong>Get User:</strong> <cite>/api/users/{username}</cite>, <cite>GET</cite></p>
|
||
<p><strong>Update User:</strong> <cite>/api/users/{username}</cite>, <cite>PUT</cite></p>
|
||
<p><strong>Delete User:</strong> <cite>/api/users/{username}</cite>, <cite>DELETE</cite></p>
|
||
<p><strong>Check for Admin User:</strong> <cite>/api/users/adm/hasadmin</cite>, <cite>GET</cite></p>
|
||
<p><strong>Create Admin User:</strong> <cite>/api/users/adm/createadmin</cite>, <cite>POST</cite></p>
|
||
<p><strong>Authenticate:</strong> <cite>/api/users/adm/authenticate</cite>, <cite>POST</cite></p>
|
||
|
||
|
||
<h3 id="users-api-calls-examples">Users API Calls Examples<a class="headerlink" href="#users-api-calls-examples" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get User:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” http://localhost:8081/api/users/{username} | jq</cite></p>
|
||
<p><strong>Update User:</strong> <cite>curl -X PUT -d ‘{“password”:”noonewillguessthis”}’ -H ‘Content-Type: application/json’ -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/users/{username}</cite></p>
|
||
<p><strong>Delete User:</strong> <cite>curl -X DELETE -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/users/{username}</cite></p>
|
||
<p><strong>Check for Admin User:</strong> <cite>curl -H “Authorization: Bearer YOUR_SECRET_KEY” http://localhost:8081/api/users/adm/hasadmin</cite></p>
|
||
<p><strong>Create Admin User:</strong> <cite>curl -d ‘{ “username”: “smartguy”, “password”: “YOUR_PASS”}’ -H ‘Content-Type: application/json’ -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/users/adm/createadmin</cite></p>
|
||
<p><strong>Authenticate:</strong> <cite>curl -d ‘{“username”: “smartguy”, “password”: “YOUR_PASS”}’ -H ‘Content-Type: application/json’ localhost:8081/api/nodes/adm/skynet/authenticate</cite></p>
|
||
|
||
|
||
<h3 id="server-management-api">Server Management API<a class="headerlink" href="#server-management-api" title="Permalink to this headline">¶</a></h3>
|
||
<p>The Server Mgmt. API allows you to add and remove the server from networks.</p>
|
||
<p><strong>Add to Network:</strong> <cite>/api/server/addnetwork/{network id}</cite>, <cite>POST</cite></p>
|
||
<p><strong>Remove from Network:</strong> <cite>/api/server/removenetwork/{network id}</cite>, <cite>DELETE</cite></p>
|
||
<p><strong>Add to Network:</strong> <cite>curl -X POST -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/server/addnetwork/{network id}</cite></p>
|
||
<p><strong>Remove from Network:</strong> <cite>curl -X DELETE -H “authorization: Bearer YOUR_SECRET_KEY” localhost:8081/api/server/removenetwork/{network id}</cite></p>
|
||
|
||
|
||
<h3 id="file-server-api">File Server API<a class="headerlink" href="#file-server-api" title="Permalink to this headline">¶</a></h3>
|
||
<p><strong>Get File:</strong> <cite>/meshclient/files/{filename}</cite>, <cite>GET</cite></p>
|
||
<p><strong>Example:</strong> <cite>curl localhost:8081/meshclient/files/meshclient</cite></p>
|
||
|
||
|
||
|
||
|
||
|
||
</article>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
</div>
|
||
<footer class="md-footer">
|
||
<div class="md-footer-nav">
|
||
<nav class="md-footer-nav__inner md-grid">
|
||
|
||
<a href="usage.html" title="Using Netmaker"
|
||
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> Using Netmaker </span>
|
||
</div>
|
||
</a>
|
||
|
||
|
||
<a href="troubleshoot.html" title="Troubleshooting"
|
||
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> Troubleshooting </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">
|
||
© Copyright 2021, Alex Feiszli.
|
||
|
||
</div>
|
||
Created using
|
||
<a href="http://www.sphinx-doc.org/">Sphinx</a> 4.3.0.
|
||
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> |