Browse Source

Deploying to gh-pages from @ 316c96dd2ce0167df58baa65134f27cb3a9184fd 🚀

mudler 3 years ago
parent
commit
e785de6b41

+ 1 - 1
404.html

@@ -113,7 +113,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >

+ 1 - 1
community/index.html

@@ -115,7 +115,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >

+ 11 - 9
docs/concepts/architecture/index.html

@@ -20,19 +20,19 @@
 <link rel="icon" type="image/png" href="/edgevpn/favicons/android-192x192.png" sizes="192x192">
 
 <title>Architecture | EdgeVPN</title>
-<meta name="description" content="EdgeVPN overview
+<meta name="description" content="EdgeVPN internal architecture
 ">
 <meta property="og:title" content="Architecture" />
-<meta property="og:description" content="EdgeVPN overview
+<meta property="og:description" content="EdgeVPN internal architecture
 " />
 <meta property="og:type" content="website" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/concepts/architecture/" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="Architecture">
-<meta itemprop="description" content="EdgeVPN overview
+<meta itemprop="description" content="EdgeVPN internal architecture
 "><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="Architecture"/>
-<meta name="twitter:description" content="EdgeVPN overview
+<meta name="twitter:description" content="EdgeVPN internal architecture
 "/>
 
 
@@ -118,7 +118,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -140,7 +140,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -161,7 +161,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id="m-edgevpndocsconcepts-li">
@@ -176,6 +176,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id="m-edgevpndocsconceptsarchitecture-li">
@@ -249,7 +251,7 @@ if (!doNotTrack) {
             
 <div class="td-content">
 	<h1>Architecture</h1>
-  <div class="lead">EdgeVPN overview</div>
+  <div class="lead">EdgeVPN internal architecture</div>
 	<header class="article-meta">
 		
 		
@@ -382,7 +384,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 16 - 10
docs/concepts/index.html

@@ -20,16 +20,20 @@
 <link rel="icon" type="image/png" href="/edgevpn/favicons/android-192x192.png" sizes="192x192">
 
 <title>Concepts | EdgeVPN</title>
-<meta name="description" content="">
+<meta name="description" content="Expore EdgeVPN functionalities by looking at practical use-cases
+">
 <meta property="og:title" content="Concepts" />
-<meta property="og:description" content="Package manager built from containers" />
+<meta property="og:description" content="Expore EdgeVPN functionalities by looking at practical use-cases
+" />
 <meta property="og:type" content="website" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/concepts/" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="Concepts">
-<meta itemprop="description" content="Package manager built from containers"><meta name="twitter:card" content="summary"/>
+<meta itemprop="description" content="Expore EdgeVPN functionalities by looking at practical use-cases
+"><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="Concepts"/>
-<meta name="twitter:description" content="Package manager built from containers"/>
+<meta name="twitter:description" content="Expore EdgeVPN functionalities by looking at practical use-cases
+"/>
 
 
 
@@ -114,7 +118,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -136,7 +140,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -157,7 +161,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id="m-edgevpndocsconcepts-li">
@@ -172,6 +176,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -235,7 +241,7 @@ if (!doNotTrack) {
             
 <div class="td-content">
 	<h1>Concepts</h1>
-  
+  <div class="lead">Expore EdgeVPN functionalities by looking at practical use-cases</div>
 	<header class="article-meta">
 		
 		
@@ -276,7 +282,7 @@ if (!doNotTrack) {
                 <h5>
                     <a href="/edgevpn/docs/concepts/architecture/">Architecture</a>
                 </h5>
-                <p>EdgeVPN overview</p>
+                <p>EdgeVPN internal architecture</p>
             </div>
         
             
@@ -355,7 +361,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 17 - 9
docs/concepts/overview/dns/index.html

@@ -27,13 +27,13 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/concepts/overview/dns/" /><meta property="article:section" content="docs" />
 <meta property="article:published_time" content="2017-01-05T00:00:00+00:00" />
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="DNS">
 <meta itemprop="description" content="Embedded DNS server documentation
 "><meta itemprop="datePublished" content="2017-01-05T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
-<meta itemprop="wordCount" content="211">
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
+<meta itemprop="wordCount" content="210">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="DNS"/>
 <meta name="twitter:description" content="Embedded DNS server documentation
@@ -122,7 +122,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -144,7 +144,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -165,7 +165,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id="m-edgevpndocsconcepts-li">
@@ -180,6 +180,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="td-sidebar-nav-active-item">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -259,8 +261,14 @@ if (!doNotTrack) {
 		
 		
 	</header>    
-	<h2 id="dns-server">DNS Server</h2>
-<p>Note: Experimental feature!</p>
+	
+
+<div class="pageinfo pageinfo-warning">
+<p>Experimental feature!</p>
+
+</div>
+
+<h2 id="dns-server">DNS Server</h2>
 <p>A DNS Server is available but disabled by default.</p>
 <p>The DNS server will resolve DNS queries using the blockchain as a record and will forward unknown domains by default.</p>
 <p>It can be enabled by specifying a listening address with <code>--dns</code>. For example, to bind to default <code>53</code> port locally, run in the console:</p>
@@ -348,7 +356,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 8 - 6
docs/concepts/overview/files/index.html

@@ -27,12 +27,12 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/concepts/overview/files/" /><meta property="article:section" content="docs" />
 <meta property="article:published_time" content="2017-01-05T00:00:00+00:00" />
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="Sending and receiving files">
 <meta itemprop="description" content="Send and receive files between p2p nodes
 "><meta itemprop="datePublished" content="2017-01-05T00:00:00+00:00" />
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
 <meta itemprop="wordCount" content="46">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="Sending and receiving files"/>
@@ -122,7 +122,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -144,7 +144,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -165,7 +165,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id="m-edgevpndocsconcepts-li">
@@ -180,6 +180,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="td-sidebar-nav-active-item">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -343,7 +345,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 14 - 4
docs/concepts/overview/index.html

@@ -118,7 +118,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -140,7 +140,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -161,7 +161,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id="m-edgevpndocsconcepts-li">
@@ -176,6 +176,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -298,6 +300,14 @@ if (!doNotTrack) {
                 <p>Send and receive files between p2p nodes</p>
             </div>
         
+            
+            <div class="entry">
+                <h5>
+                    <a href="/edgevpn/docs/concepts/overview/peerguardian/">Peerguardian</a>
+                </h5>
+                <p>Prevent unauthorized access to the network if tokens are leaked</p>
+            </div>
+        
     
 </div>
 
@@ -366,7 +376,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 74 - 2
docs/concepts/overview/index.xml

@@ -45,8 +45,14 @@
       <description>
         
         
-        &lt;h2 id=&#34;dns-server&#34;&gt;DNS Server&lt;/h2&gt;
-&lt;p&gt;Note: Experimental feature!&lt;/p&gt;
+        
+
+&lt;div class=&#34;pageinfo pageinfo-warning&#34;&gt;
+&lt;p&gt;Experimental feature!&lt;/p&gt;
+
+&lt;/div&gt;
+
+&lt;h2 id=&#34;dns-server&#34;&gt;DNS Server&lt;/h2&gt;
 &lt;p&gt;A DNS Server is available but disabled by default.&lt;/p&gt;
 &lt;p&gt;The DNS server will resolve DNS queries using the blockchain as a record and will forward unknown domains by default.&lt;/p&gt;
 &lt;p&gt;It can be enabled by specifying a listening address with &lt;code&gt;--dns&lt;/code&gt;. For example, to bind to default &lt;code&gt;53&lt;/code&gt; port locally, run in the console:&lt;/p&gt;
@@ -92,5 +98,71 @@
       </description>
     </item>
     
+    <item>
+      <title>Docs: Peerguardian</title>
+      <link>https://mudler.github.io/edgevpn/docs/concepts/overview/peerguardian/</link>
+      <pubDate>Wed, 05 Jan 2022 00:00:00 +0000</pubDate>
+      
+      <guid>https://mudler.github.io/edgevpn/docs/concepts/overview/peerguardian/</guid>
+      <description>
+        
+        
+        
+
+&lt;div class=&#34;pageinfo pageinfo-warning&#34;&gt;
+&lt;p&gt;Experimental feature!&lt;/p&gt;
+
+&lt;/div&gt;
+
+&lt;h2 id=&#34;peerguardian&#34;&gt;Peerguardian&lt;/h2&gt;
+&lt;p&gt;PeerGuardian is a mechanism to prevent unauthorized access to the network if tokens are leaked or either revoke network access.&lt;/p&gt;
+&lt;p&gt;In order to enable it, start edgevpn nodes adding the &lt;code&gt;--peerguradian&lt;/code&gt; flag.&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;edgevpn --peerguardian
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To turn on peer gating, specify also &lt;code&gt;--peergate&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;Peerguardian and peergating has several options:&lt;/p&gt;
+&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;   --peerguard                                   Enable peerguard. (Experimental) [$PEERGUARD]
+   --peergate                                    Enable peergating. (Experimental) [$PEERGATE]
+   --peergate-autoclean                          Enable peergating autoclean. (Experimental) [$PEERGATE_AUTOCLEAN]
+   --peergate-relaxed                            Enable peergating relaxation. (Experimental) [$PEERGATE_RELAXED]
+   --peergate-auth value                         Peergate auth [$PEERGATE_AUTH]
+   --peergate-interval value                     Peergater interval time (default: 120) [$EDGEVPNPEERGATEINTERVAL]
+&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When the PeerGuardian and Peergater are enabled, a VPN node will only accepts blocks from authorized nodes.&lt;/p&gt;
+&lt;p&gt;Peerguardian is extensible to support different mechanisms of authentication, we will see below specific implementations.&lt;/p&gt;
+&lt;h2 id=&#34;ecdsa-auth&#34;&gt;ECDSA auth&lt;/h2&gt;
+&lt;p&gt;The ECDSA authentication mechanism is used to verify peers in the blockchain using ECDSA keys.&lt;/p&gt;
+&lt;p&gt;To generate a new ECDSA keypair use &lt;code&gt;edgevpn peergater ecdsa-genkey&lt;/code&gt;:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn peergater ecdsa-genkey
+Private key: &lt;span style=&#34;color:#000&#34;&gt;LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1JSGNBZ0VCQkVJQkhUZnRSTVZSRmlvaWZrdllhZEE2NXVRQXlSZTJSZHM0MW1UTGZlNlRIT3FBTTdkZW9sak0KZXVPbTk2V0hacEpzNlJiVU1tL3BCWnZZcElSZ0UwZDJjdUdnQndZRks0RUVBQ09oZ1lrRGdZWUFCQUdVWStMNQptUzcvVWVoSjg0b3JieGo3ZmZUMHBYZ09MSzNZWEZLMWVrSTlEWnR6YnZWOUdwMHl6OTB3aVZxajdpMDFVRnhVCnRKbU1lWURIRzBTQkNuVWpDZ0FGT3ByUURpTXBFR2xYTmZ4LzIvdEVySDIzZDNwSytraFdJbUIza01QL2tRNEIKZzJmYnk2cXJpY1dHd3B4TXBXNWxKZVZXUGlkeWJmMSs0cVhPTWdQbmRnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;
+Public key: &lt;span style=&#34;color:#000&#34;&gt;LS0tLS1CRUdJTiBFQyBQVUJMSUMgS0VZLS0tLS0KTUlHYk1CQUdCeXFHU000OUFnRUdCU3VCQkFBakE0R0dBQVFCbEdQaStaa3UvMUhvU2ZPS0syOFkrMzMwOUtWNApEaXl0MkZ4U3RYcENQUTJiYzI3MWZScWRNcy9kTUlsYW8rNHROVkJjVkxTWmpIbUF4eHRFZ1FwMUl3b0FCVHFhCjBBNGpLUkJwVnpYOGY5djdSS3g5dDNkNlN2cElWaUpnZDVERC81RU9BWU5uMjh1cXE0bkZoc0tjVEtWdVpTWGwKVmo0bmNtMzlmdUtsempJRDUzWT0KLS0tLS1FTkQgRUMgUFVCTElDIEtFWS0tLS0tCg&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;==&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For example, to add a ECDSA public key, use the API as such from a node which is already trusted by PeerGuardian:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/ledger/trustzoneAuth/ecdsa_1/LS0tLS1CRUdJTiBFQyBQVUJMSUMgS0VZLS0tLS0KTUlHYk1CQUdCeXFHU000OUFnRUdCU3VCQkFBakE0R0dBQVFBL09TTjhsUU9Wa3FHOHNHbGJiellWamZkdVVvUAplMEpsWUVzOFAyU3o1TDlzVUtDYi9kQWkrVFVONXU0ZVk2REpGeU50dWZjK2p0THNVTTlPb0xXVnBXb0E0eEVDCk9VdDFmRVNaRzUxckc4MEdFVjBuQTlBRGFvOW1XK3p4dmkvQnd0ZFVvSTNjTDB0VTdlUGEvSGM4Z1FLMmVOdE0KeDdBSmNYcWpPNXZXWGxZZ2NkOD0KLS0tLS1FTkQgRUMgUFVCTElDIEtFWS0tLS0tCg==&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now the private key can be used while starting new nodes:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#000&#34;&gt;PEERGATE_AUTH&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;{ &amp;#39;ecdsa&amp;#39; : { &amp;#39;private_key&amp;#39;: &amp;#39;LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1JSGNBZ0VCQkVJQkhUZnRSTVZSRmlvaWZrdllhZEE2NXVRQXlSZTJSZHM0MW1UTGZlNlRIT3FBTTdkZW9sak0KZXVPbTk2V0hacEpzNlJiVU1tL3BCWnZZcElSZ0UwZDJjdUdnQndZRks0RUVBQ09oZ1lrRGdZWUFCQUdVWStMNQptUzcvVWVoSjg0b3JieGo3ZmZUMHBYZ09MSzNZWEZLMWVrSTlEWnR6YnZWOUdwMHl6OTB3aVZxajdpMDFVRnhVCnRKbU1lWURIRzBTQkNuVWpDZ0FGT3ByUURpTXBFR2xYTmZ4LzIvdEVySDIzZDNwSytraFdJbUIza01QL2tRNEIKZzJmYnk2cXJpY1dHd3B4TXBXNWxKZVZXUGlkeWJmMSs0cVhPTWdQbmRnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=&amp;#39; } }&amp;#34;&lt;/span&gt;
+$ edgevpn --peerguardian --peergate
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;enablingdisabling-peergating-in-runtime&#34;&gt;Enabling/Disabling peergating in runtime&lt;/h2&gt;
+&lt;p&gt;Peergating can be disabled in runtime by leveraging the api:&lt;/p&gt;
+&lt;h3 id=&#34;query-status&#34;&gt;Query status&lt;/h3&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X GET &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;enable-peergating&#34;&gt;Enable peergating&lt;/h3&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/enable&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;disable-peergating&#34;&gt;Disable peergating&lt;/h3&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/disable&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;starting-a-new-network&#34;&gt;Starting a new network&lt;/h2&gt;
+&lt;p&gt;To init a new Trusted network, start nodes with &lt;code&gt;--peergate-relaxed&lt;/code&gt; and add the neccessary auth keys:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn --peerguardian --peergate --peergate-relaxed
+$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/ledger/trustzoneAuth/keytype_1/XXX&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
+&lt;h4 class=&#34;alert-heading&#34;&gt;Note&lt;/h4&gt;
+
+    It is strongly suggested to use a local store for the blockchain with PeerGuardian. In this way nodes persist locally auth keys and you can avoid starting nodes with `&amp;ndash;peergate-relaxed&#39;
+
+&lt;/div&gt;
+
+
+      </description>
+    </item>
+    
   </channel>
 </rss>

File diff suppressed because it is too large
+ 73 - 0
docs/concepts/overview/peerguardian/index.html


+ 8 - 6
docs/concepts/overview/services/index.html

@@ -27,12 +27,12 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/concepts/overview/services/" /><meta property="article:section" content="docs" />
 
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="Tunnel connections">
 <meta itemprop="description" content="EdgeVPN network services for tunnelling TCP services
 ">
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
 <meta itemprop="wordCount" content="143">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="Tunnel connections"/>
@@ -122,7 +122,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -144,7 +144,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -165,7 +165,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id="m-edgevpndocsconcepts-li">
@@ -180,6 +180,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -345,7 +347,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 6 - 4
docs/concepts/token/index.html

@@ -118,7 +118,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -140,7 +140,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -161,7 +161,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id="m-edgevpndocsconcepts-li">
@@ -176,6 +176,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -380,7 +382,7 @@ See <a href="">the Architecture section</a> for more information.</p>
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 18 - 19
docs/contribution-guidelines/index.html

@@ -19,28 +19,25 @@
 <link rel="icon" type="image/png" href="/edgevpn/favicons/android-192x192.png" sizes="192x192">
 
 <title>Contributing | EdgeVPN</title>
-<meta name="description" content="Contributing to EdgeVPN
-Contribution guidelines for the EdgeVPN project are on the Github repository. Here you can find some heads up for contributing …">
+<meta name="description" content="See how to contribute to EdgeVPN
+">
 <meta property="og:title" content="Contributing" />
-<meta property="og:description" content="Contributing to EdgeVPN Contribution guidelines for the EdgeVPN project are on the Github repository. Here you can find some heads up for contributing to the documentation website.
-Contributing to the Docs website We Develop with Github We use github to host code, to track issues and feature requests, as well as accept pull requests.
-We use Hugo to format and generate our website, the Docsy theme for styling and site structure, and Github Actions to manage the deployment of the site." />
+<meta property="og:description" content="See how to contribute to EdgeVPN
+" />
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/contribution-guidelines/" /><meta property="article:section" content="docs" />
 
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="Contributing">
-<meta itemprop="description" content="Contributing to EdgeVPN Contribution guidelines for the EdgeVPN project are on the Github repository. Here you can find some heads up for contributing to the documentation website.
-Contributing to the Docs website We Develop with Github We use github to host code, to track issues and feature requests, as well as accept pull requests.
-We use Hugo to format and generate our website, the Docsy theme for styling and site structure, and Github Actions to manage the deployment of the site.">
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
+<meta itemprop="description" content="See how to contribute to EdgeVPN
+">
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
 <meta itemprop="wordCount" content="434">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="Contributing"/>
-<meta name="twitter:description" content="Contributing to EdgeVPN Contribution guidelines for the EdgeVPN project are on the Github repository. Here you can find some heads up for contributing to the documentation website.
-Contributing to the Docs website We Develop with Github We use github to host code, to track issues and feature requests, as well as accept pull requests.
-We use Hugo to format and generate our website, the Docsy theme for styling and site structure, and Github Actions to manage the deployment of the site."/>
+<meta name="twitter:description" content="See how to contribute to EdgeVPN
+"/>
 
 
 
@@ -125,7 +122,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -147,7 +144,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -168,7 +165,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id="m-edgevpndocsconcepts-li">
@@ -183,6 +180,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -261,7 +260,7 @@ if (!doNotTrack) {
             
 <div class="td-content">
 	<h1>Contributing</h1>
-	
+	<div class="lead">See how to contribute to EdgeVPN</div>
 	<header class="article-meta">
 		
 		
@@ -307,7 +306,7 @@ updates:</p>
 <ol>
 <li>Fork the <a href="https://github.com/mudler/edgevpn">the repo</a> on GitHub.</li>
 <li>Make your changes, if are related to docs
-to see the preview cd into <code>docs</code> and run <code>make serve</code>, then browse to <a href="http://localhost:1313">localhost:1313</a></li>
+to see the preview run <code>make serve</code> from the <code>docs</code> dir, then browse to <a href="http://localhost:1313">localhost:1313</a></li>
 <li>If you&rsquo;re not yet ready for a review, add &ldquo;WIP&rdquo; to the PR name to indicate
 it&rsquo;s a work in progress.</li>
 <li>Continue updating your doc and pushing your changes until you&rsquo;re happy with
@@ -384,7 +383,7 @@ the content.</li>
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 31 - 15
docs/getting-started/api/index.html

@@ -18,24 +18,24 @@
 <link rel="icon" type="image/png" href="/edgevpn/favicons/android-144x144.png" sizes="144x144">
 <link rel="icon" type="image/png" href="/edgevpn/favicons/android-192x192.png" sizes="192x192">
 
-<title>webUI and API | EdgeVPN</title>
+<title>WebUI and API | EdgeVPN</title>
 <meta name="description" content="Query the network status and operate the ledger with the built-in API
 ">
-<meta property="og:title" content="webUI and API" />
+<meta property="og:title" content="WebUI and API" />
 <meta property="og:description" content="Query the network status and operate the ledger with the built-in API
 " />
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/getting-started/api/" /><meta property="article:section" content="docs" />
 
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
-<meta itemprop="name" content="webUI and API">
+<meta itemprop="name" content="WebUI and API">
 <meta itemprop="description" content="Query the network status and operate the ledger with the built-in API
 ">
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
-<meta itemprop="wordCount" content="275">
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
+<meta itemprop="wordCount" content="328">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
-<meta name="twitter:title" content="webUI and API"/>
+<meta name="twitter:title" content="WebUI and API"/>
 <meta name="twitter:description" content="Query the network status and operate the ledger with the built-in API
 "/>
 
@@ -122,7 +122,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -144,7 +144,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -165,7 +165,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="td-sidebar-nav-active-item">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="td-sidebar-nav-active-item">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id="m-edgevpndocsconcepts-li">
@@ -180,6 +180,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -204,7 +206,7 @@ if (!doNotTrack) {
 <a href="https://github.com/mudler/edgevpn/tree/master/docs/content/en/docs/Getting%20started/api.md" class="td-page-meta--view" target="_blank" rel="noopener"><i class="fa fa-file-alt fa-fw"></i> View page source</a>
   <a href="https://github.com/mudler/edgevpn/edit/master/docs/content/en/docs/Getting%20started/api.md" class="td-page-meta--edit" target="_blank" rel="noopener"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
   <a href="https://github.com/mudler/edgevpn/new/master/docs/content/en/docs/Getting%20started/api.md?filename=change-me.md&amp;value=---%0Atitle%3A&#43;%22Long&#43;Page&#43;Title%22%0AlinkTitle%3A&#43;%22Short&#43;Nav&#43;Title%22%0Aweight%3A&#43;100%0Adescription%3A&#43;%3E-%0A&#43;&#43;&#43;&#43;&#43;Page&#43;description&#43;for&#43;heading&#43;and&#43;indexes.%0A---%0A%0A%23%23&#43;Heading%0A%0AEdit&#43;this&#43;template&#43;to&#43;create&#43;your&#43;new&#43;page.%0A%0A%2A&#43;Give&#43;it&#43;a&#43;good&#43;name%2C&#43;ending&#43;in&#43;%60.md%60&#43;-&#43;e.g.&#43;%60getting-started.md%60%0A%2A&#43;Edit&#43;the&#43;%22front&#43;matter%22&#43;section&#43;at&#43;the&#43;top&#43;of&#43;the&#43;page&#43;%28weight&#43;controls&#43;how&#43;its&#43;ordered&#43;amongst&#43;other&#43;pages&#43;in&#43;the&#43;same&#43;directory%3B&#43;lowest&#43;number&#43;first%29.%0A%2A&#43;Add&#43;a&#43;good&#43;commit&#43;message&#43;at&#43;the&#43;bottom&#43;of&#43;the&#43;page&#43;%28%3C80&#43;characters%3B&#43;use&#43;the&#43;extended&#43;description&#43;field&#43;for&#43;more&#43;detail%29.%0A%2A&#43;Create&#43;a&#43;new&#43;branch&#43;so&#43;you&#43;can&#43;preview&#43;your&#43;new&#43;file&#43;and&#43;request&#43;a&#43;review&#43;via&#43;Pull&#43;Request.%0A" class="td-page-meta--child" target="_blank" rel="noopener"><i class="fa fa-edit fa-fw"></i> Create child page</a>
-  <a href="https://github.com/mudler/edgevpn/issues/new?title=webUI%20and%20API" class="td-page-meta--issue" target="_blank" rel="noopener"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
+  <a href="https://github.com/mudler/edgevpn/issues/new?title=WebUI%20and%20API" class="td-page-meta--issue" target="_blank" rel="noopener"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
   <a href="https://github.com/mudler/edgevpn/issues/new" class="td-page-meta--project-issue" target="_blank" rel="noopener"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
   
 </div>
@@ -222,6 +224,7 @@ if (!doNotTrack) {
         <li><a href="#delete">DELETE</a></li>
       </ul>
     </li>
+    <li><a href="#binding-to-a-socket">Binding to a socket</a></li>
   </ul>
 </nav></div>
 
@@ -255,7 +258,7 @@ if (!doNotTrack) {
             
             
 <div class="td-content">
-	<h1>webUI and API</h1>
+	<h1>WebUI and API</h1>
 	<div class="lead">Query the network status and operate the ledger with the built-in API</div>
 	<header class="article-meta">
 		
@@ -339,10 +342,18 @@ if (!doNotTrack) {
 <p>Returns the current data in the ledger inside the <code>:bucket</code></p>
 <h4 id="apiledgerbucketkey"><code>/api/ledger/:bucket/:key</code></h4>
 <p>Returns the current data in the ledger inside the <code>:bucket</code> at given <code>:key</code></p>
+<h4 id="apipeergate"><code>/api/peergate</code></h4>
+<p>Returns peergater status</p>
 <h3 id="put">PUT</h3>
 <h4 id="apiledgerbucketkeyvalue"><code>/api/ledger/:bucket/:key/:value</code></h4>
 <p>Puts <code>:value</code> in the ledger inside the <code>:bucket</code> at given <code>:key</code></p>
-<h3 id="post">POST</h3>
+<h4 id="apipeergatestate"><code>/api/peergate/:state</code></h4>
+<p>Enables/disables peergating:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#8f5902;font-style:italic"># enable</span>
+$ curl -X PUT <span style="color:#4e9a06">&#39;http://localhost:8080/api/peergate/enable&#39;</span>
+<span style="color:#8f5902;font-style:italic"># disable</span>
+$ curl -X PUT <span style="color:#4e9a06">&#39;http://localhost:8080/api/peergate/disable&#39;</span>
+</code></pre></div><h3 id="post">POST</h3>
 <h4 id="apidns-1"><code>/api/dns</code></h4>
 <p>The endpoint accept a JSON payload of the following form:</p>
 <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"><span style="color:#000;font-weight:bold">{</span> <span style="color:#204a87;font-weight:bold">&#34;Regex&#34;</span><span style="color:#000;font-weight:bold">:</span> <span style="color:#4e9a06">&#34;&lt;regex&gt;&#34;</span><span style="color:#000;font-weight:bold">,</span> 
@@ -360,7 +371,12 @@ if (!doNotTrack) {
 <p>Deletes the <code>:key</code> into <code>:bucket</code> inside the ledger</p>
 <h4 id="apiledgerbucket-1"><code>/api/ledger/:bucket</code></h4>
 <p>Deletes the <code>:bucket</code> from the ledger</p>
-
+<h2 id="binding-to-a-socket">Binding to a socket</h2>
+<p>The API can also be bound to a socket, for instance:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ edgevpn api --listen <span style="color:#4e9a06">&#34;unix://&lt;path/to/socket&gt;&#34;</span>
+</code></pre></div><p>or as well while running the vpn:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ edgevpn api --api-listen <span style="color:#4e9a06">&#34;unix://&lt;path/to/socket&gt;&#34;</span>
+</code></pre></div>
 	
 		<style>
   .feedback--answer {
@@ -426,7 +442,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 8 - 6
docs/getting-started/cli/index.html

@@ -27,12 +27,12 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/getting-started/cli/" /><meta property="article:section" content="docs" />
 
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="CLI">
 <meta itemprop="description" content="Command line interface
 ">
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
 <meta itemprop="wordCount" content="392">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="CLI"/>
@@ -122,7 +122,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -144,7 +144,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -165,7 +165,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id="m-edgevpndocsconcepts-li">
@@ -180,6 +180,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -373,7 +375,7 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 8 - 6
docs/getting-started/gui/index.html

@@ -27,12 +27,12 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/docs/getting-started/gui/" /><meta property="article:section" content="docs" />
 
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="GUI">
 <meta itemprop="description" content="GUI app
 ">
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
 <meta itemprop="wordCount" content="39">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="GUI"/>
@@ -122,7 +122,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -144,7 +144,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -165,7 +165,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child active-path" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="td-sidebar-nav-active-item">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id="m-edgevpndocsconcepts-li">
@@ -180,6 +180,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -345,7 +347,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 7 - 5
docs/getting-started/index.html

@@ -118,7 +118,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -140,7 +140,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -161,7 +161,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id="m-edgevpndocsconcepts-li">
@@ -176,6 +176,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -319,7 +321,7 @@ $&gt; edgevpn --dhcp --api
             
             <div class="entry">
                 <h5>
-                    <a href="/edgevpn/docs/getting-started/api/">webUI and API</a>
+                    <a href="/edgevpn/docs/getting-started/api/">WebUI and API</a>
                 </h5>
                 <p>Query the network status and operate the ledger with the built-in API</p>
             </div>
@@ -392,7 +394,7 @@ $&gt; edgevpn --dhcp --api
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 16 - 3
docs/getting-started/index.xml

@@ -100,7 +100,7 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
     </item>
     
     <item>
-      <title>Docs: webUI and API</title>
+      <title>Docs: WebUI and API</title>
       <link>https://mudler.github.io/edgevpn/docs/getting-started/api/</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
@@ -175,10 +175,18 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
 &lt;p&gt;Returns the current data in the ledger inside the &lt;code&gt;:bucket&lt;/code&gt;&lt;/p&gt;
 &lt;h4 id=&#34;apiledgerbucketkey&#34;&gt;&lt;code&gt;/api/ledger/:bucket/:key&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;Returns the current data in the ledger inside the &lt;code&gt;:bucket&lt;/code&gt; at given &lt;code&gt;:key&lt;/code&gt;&lt;/p&gt;
+&lt;h4 id=&#34;apipeergate&#34;&gt;&lt;code&gt;/api/peergate&lt;/code&gt;&lt;/h4&gt;
+&lt;p&gt;Returns peergater status&lt;/p&gt;
 &lt;h3 id=&#34;put&#34;&gt;PUT&lt;/h3&gt;
 &lt;h4 id=&#34;apiledgerbucketkeyvalue&#34;&gt;&lt;code&gt;/api/ledger/:bucket/:key/:value&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;Puts &lt;code&gt;:value&lt;/code&gt; in the ledger inside the &lt;code&gt;:bucket&lt;/code&gt; at given &lt;code&gt;:key&lt;/code&gt;&lt;/p&gt;
-&lt;h3 id=&#34;post&#34;&gt;POST&lt;/h3&gt;
+&lt;h4 id=&#34;apipeergatestate&#34;&gt;&lt;code&gt;/api/peergate/:state&lt;/code&gt;&lt;/h4&gt;
+&lt;p&gt;Enables/disables peergating:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# enable&lt;/span&gt;
+$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/enable&amp;#39;&lt;/span&gt;
+&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# disable&lt;/span&gt;
+$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/disable&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;post&#34;&gt;POST&lt;/h3&gt;
 &lt;h4 id=&#34;apidns-1&#34;&gt;&lt;code&gt;/api/dns&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;The endpoint accept a JSON payload of the following form:&lt;/p&gt;
 &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;Regex&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;lt;regex&amp;gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; 
@@ -196,7 +204,12 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
 &lt;p&gt;Deletes the &lt;code&gt;:key&lt;/code&gt; into &lt;code&gt;:bucket&lt;/code&gt; inside the ledger&lt;/p&gt;
 &lt;h4 id=&#34;apiledgerbucket-1&#34;&gt;&lt;code&gt;/api/ledger/:bucket&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;Deletes the &lt;code&gt;:bucket&lt;/code&gt; from the ledger&lt;/p&gt;
-
+&lt;h2 id=&#34;binding-to-a-socket&#34;&gt;Binding to a socket&lt;/h2&gt;
+&lt;p&gt;The API can also be bound to a socket, for instance:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn api --listen &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;unix://&amp;lt;path/to/socket&amp;gt;&amp;#34;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or as well while running the vpn:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn api --api-listen &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;unix://&amp;lt;path/to/socket&amp;gt;&amp;#34;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
       </description>
     </item>
     

+ 9 - 7
docs/index.html

@@ -120,7 +120,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -142,7 +142,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -163,7 +163,7 @@ if (!doNotTrack) {
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedgui-li">
   <a href="/edgevpn/docs/getting-started/gui/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedgui"><span class="">GUI</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsgetting-startedapi-li">
-  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">webUI and API</span></a>
+  <a href="/edgevpn/docs/getting-started/api/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsgetting-startedapi"><span class="">WebUI and API</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id="m-edgevpndocsconcepts-li">
@@ -178,6 +178,8 @@ if (!doNotTrack) {
   <a href="/edgevpn/docs/concepts/overview/dns/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewdns"><span class="">DNS</span></a>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewfiles-li">
   <a href="/edgevpn/docs/concepts/overview/files/" title="Sending and receiving files" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewfiles"><span class="">File transfer</span></a>
+</li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsoverviewpeerguardian-li">
+  <a href="/edgevpn/docs/concepts/overview/peerguardian/" class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id="m-edgevpndocsconceptsoverviewpeerguardian"><span class="">Peerguardian</span></a>
 </li>
   </ul>
 </li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id="m-edgevpndocsconceptsarchitecture-li">
@@ -291,7 +293,7 @@ if (!doNotTrack) {
 <table>
 <thead>
 <tr>
-<th>WebUI</th>
+<th><a href="/edgevpn/docs//getting-started/api">WebUI</a></th>
 <th><a href="https://github.com/mudler/edgevpn-gui">Desktop</a></th>
 </tr>
 </thead>
@@ -327,7 +329,7 @@ if (!doNotTrack) {
                 <h5>
                     <a href="/edgevpn/docs/concepts/">Concepts</a>
                 </h5>
-                <p></p>
+                <p>Expore EdgeVPN functionalities by looking at practical use-cases</p>
             </div>
         
             
@@ -335,7 +337,7 @@ if (!doNotTrack) {
                 <h5>
                     <a href="/edgevpn/docs/contribution-guidelines/">Contributing</a>
                 </h5>
-                <p></p>
+                <p>See how to contribute to EdgeVPN</p>
             </div>
         
     
@@ -406,7 +408,7 @@ if (!doNotTrack) {
 	
 	
 	<div class="text-muted mt-5 pt-3 border-top">
-  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/10911670ca8273cee07f155565a8d4611013d4e8">:robot: Stabilize tests (1091167)</a>
+  Last modified April 23, 2022: <a href="https://github.com/mudler/edgevpn/commit/316c96dd2ce0167df58baa65134f27cb3a9184fd">:ledger: Update docs (316c96d)</a>
 </div>
 
 </div>

+ 91 - 6
docs/index.xml

@@ -123,7 +123,7 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
     </item>
     
     <item>
-      <title>Docs: webUI and API</title>
+      <title>Docs: WebUI and API</title>
       <link>https://mudler.github.io/edgevpn/docs/getting-started/api/</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
@@ -198,10 +198,18 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
 &lt;p&gt;Returns the current data in the ledger inside the &lt;code&gt;:bucket&lt;/code&gt;&lt;/p&gt;
 &lt;h4 id=&#34;apiledgerbucketkey&#34;&gt;&lt;code&gt;/api/ledger/:bucket/:key&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;Returns the current data in the ledger inside the &lt;code&gt;:bucket&lt;/code&gt; at given &lt;code&gt;:key&lt;/code&gt;&lt;/p&gt;
+&lt;h4 id=&#34;apipeergate&#34;&gt;&lt;code&gt;/api/peergate&lt;/code&gt;&lt;/h4&gt;
+&lt;p&gt;Returns peergater status&lt;/p&gt;
 &lt;h3 id=&#34;put&#34;&gt;PUT&lt;/h3&gt;
 &lt;h4 id=&#34;apiledgerbucketkeyvalue&#34;&gt;&lt;code&gt;/api/ledger/:bucket/:key/:value&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;Puts &lt;code&gt;:value&lt;/code&gt; in the ledger inside the &lt;code&gt;:bucket&lt;/code&gt; at given &lt;code&gt;:key&lt;/code&gt;&lt;/p&gt;
-&lt;h3 id=&#34;post&#34;&gt;POST&lt;/h3&gt;
+&lt;h4 id=&#34;apipeergatestate&#34;&gt;&lt;code&gt;/api/peergate/:state&lt;/code&gt;&lt;/h4&gt;
+&lt;p&gt;Enables/disables peergating:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# enable&lt;/span&gt;
+$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/enable&amp;#39;&lt;/span&gt;
+&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# disable&lt;/span&gt;
+$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/disable&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;post&#34;&gt;POST&lt;/h3&gt;
 &lt;h4 id=&#34;apidns-1&#34;&gt;&lt;code&gt;/api/dns&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;The endpoint accept a JSON payload of the following form:&lt;/p&gt;
 &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;Regex&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&amp;lt;regex&amp;gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; 
@@ -219,7 +227,12 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
 &lt;p&gt;Deletes the &lt;code&gt;:key&lt;/code&gt; into &lt;code&gt;:bucket&lt;/code&gt; inside the ledger&lt;/p&gt;
 &lt;h4 id=&#34;apiledgerbucket-1&#34;&gt;&lt;code&gt;/api/ledger/:bucket&lt;/code&gt;&lt;/h4&gt;
 &lt;p&gt;Deletes the &lt;code&gt;:bucket&lt;/code&gt; from the ledger&lt;/p&gt;
-
+&lt;h2 id=&#34;binding-to-a-socket&#34;&gt;Binding to a socket&lt;/h2&gt;
+&lt;p&gt;The API can also be bound to a socket, for instance:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn api --listen &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;unix://&amp;lt;path/to/socket&amp;gt;&amp;#34;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;or as well while running the vpn:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn api --api-listen &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;unix://&amp;lt;path/to/socket&amp;gt;&amp;#34;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
       </description>
     </item>
     
@@ -232,8 +245,14 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
       <description>
         
         
-        &lt;h2 id=&#34;dns-server&#34;&gt;DNS Server&lt;/h2&gt;
-&lt;p&gt;Note: Experimental feature!&lt;/p&gt;
+        
+
+&lt;div class=&#34;pageinfo pageinfo-warning&#34;&gt;
+&lt;p&gt;Experimental feature!&lt;/p&gt;
+
+&lt;/div&gt;
+
+&lt;h2 id=&#34;dns-server&#34;&gt;DNS Server&lt;/h2&gt;
 &lt;p&gt;A DNS Server is available but disabled by default.&lt;/p&gt;
 &lt;p&gt;The DNS server will resolve DNS queries using the blockchain as a record and will forward unknown domains by default.&lt;/p&gt;
 &lt;p&gt;It can be enabled by specifying a listening address with &lt;code&gt;--dns&lt;/code&gt;. For example, to bind to default &lt;code&gt;53&lt;/code&gt; port locally, run in the console:&lt;/p&gt;
@@ -279,6 +298,72 @@ b3RwOgogIGRodDoKICAgIGludGVydmFsOiA5MDAwCiAgICBrZXk6IDRPNk5aUUMyTzVRNzdKRlJJT1BC
       </description>
     </item>
     
+    <item>
+      <title>Docs: Peerguardian</title>
+      <link>https://mudler.github.io/edgevpn/docs/concepts/overview/peerguardian/</link>
+      <pubDate>Wed, 05 Jan 2022 00:00:00 +0000</pubDate>
+      
+      <guid>https://mudler.github.io/edgevpn/docs/concepts/overview/peerguardian/</guid>
+      <description>
+        
+        
+        
+
+&lt;div class=&#34;pageinfo pageinfo-warning&#34;&gt;
+&lt;p&gt;Experimental feature!&lt;/p&gt;
+
+&lt;/div&gt;
+
+&lt;h2 id=&#34;peerguardian&#34;&gt;Peerguardian&lt;/h2&gt;
+&lt;p&gt;PeerGuardian is a mechanism to prevent unauthorized access to the network if tokens are leaked or either revoke network access.&lt;/p&gt;
+&lt;p&gt;In order to enable it, start edgevpn nodes adding the &lt;code&gt;--peerguradian&lt;/code&gt; flag.&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;edgevpn --peerguardian
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To turn on peer gating, specify also &lt;code&gt;--peergate&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;Peerguardian and peergating has several options:&lt;/p&gt;
+&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;   --peerguard                                   Enable peerguard. (Experimental) [$PEERGUARD]
+   --peergate                                    Enable peergating. (Experimental) [$PEERGATE]
+   --peergate-autoclean                          Enable peergating autoclean. (Experimental) [$PEERGATE_AUTOCLEAN]
+   --peergate-relaxed                            Enable peergating relaxation. (Experimental) [$PEERGATE_RELAXED]
+   --peergate-auth value                         Peergate auth [$PEERGATE_AUTH]
+   --peergate-interval value                     Peergater interval time (default: 120) [$EDGEVPNPEERGATEINTERVAL]
+&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When the PeerGuardian and Peergater are enabled, a VPN node will only accepts blocks from authorized nodes.&lt;/p&gt;
+&lt;p&gt;Peerguardian is extensible to support different mechanisms of authentication, we will see below specific implementations.&lt;/p&gt;
+&lt;h2 id=&#34;ecdsa-auth&#34;&gt;ECDSA auth&lt;/h2&gt;
+&lt;p&gt;The ECDSA authentication mechanism is used to verify peers in the blockchain using ECDSA keys.&lt;/p&gt;
+&lt;p&gt;To generate a new ECDSA keypair use &lt;code&gt;edgevpn peergater ecdsa-genkey&lt;/code&gt;:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn peergater ecdsa-genkey
+Private key: &lt;span style=&#34;color:#000&#34;&gt;LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1JSGNBZ0VCQkVJQkhUZnRSTVZSRmlvaWZrdllhZEE2NXVRQXlSZTJSZHM0MW1UTGZlNlRIT3FBTTdkZW9sak0KZXVPbTk2V0hacEpzNlJiVU1tL3BCWnZZcElSZ0UwZDJjdUdnQndZRks0RUVBQ09oZ1lrRGdZWUFCQUdVWStMNQptUzcvVWVoSjg0b3JieGo3ZmZUMHBYZ09MSzNZWEZLMWVrSTlEWnR6YnZWOUdwMHl6OTB3aVZxajdpMDFVRnhVCnRKbU1lWURIRzBTQkNuVWpDZ0FGT3ByUURpTXBFR2xYTmZ4LzIvdEVySDIzZDNwSytraFdJbUIza01QL2tRNEIKZzJmYnk2cXJpY1dHd3B4TXBXNWxKZVZXUGlkeWJmMSs0cVhPTWdQbmRnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;
+Public key: &lt;span style=&#34;color:#000&#34;&gt;LS0tLS1CRUdJTiBFQyBQVUJMSUMgS0VZLS0tLS0KTUlHYk1CQUdCeXFHU000OUFnRUdCU3VCQkFBakE0R0dBQVFCbEdQaStaa3UvMUhvU2ZPS0syOFkrMzMwOUtWNApEaXl0MkZ4U3RYcENQUTJiYzI3MWZScWRNcy9kTUlsYW8rNHROVkJjVkxTWmpIbUF4eHRFZ1FwMUl3b0FCVHFhCjBBNGpLUkJwVnpYOGY5djdSS3g5dDNkNlN2cElWaUpnZDVERC81RU9BWU5uMjh1cXE0bkZoc0tjVEtWdVpTWGwKVmo0bmNtMzlmdUtsempJRDUzWT0KLS0tLS1FTkQgRUMgUFVCTElDIEtFWS0tLS0tCg&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;==&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For example, to add a ECDSA public key, use the API as such from a node which is already trusted by PeerGuardian:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/ledger/trustzoneAuth/ecdsa_1/LS0tLS1CRUdJTiBFQyBQVUJMSUMgS0VZLS0tLS0KTUlHYk1CQUdCeXFHU000OUFnRUdCU3VCQkFBakE0R0dBQVFBL09TTjhsUU9Wa3FHOHNHbGJiellWamZkdVVvUAplMEpsWUVzOFAyU3o1TDlzVUtDYi9kQWkrVFVONXU0ZVk2REpGeU50dWZjK2p0THNVTTlPb0xXVnBXb0E0eEVDCk9VdDFmRVNaRzUxckc4MEdFVjBuQTlBRGFvOW1XK3p4dmkvQnd0ZFVvSTNjTDB0VTdlUGEvSGM4Z1FLMmVOdE0KeDdBSmNYcWpPNXZXWGxZZ2NkOD0KLS0tLS1FTkQgRUMgUFVCTElDIEtFWS0tLS0tCg==&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now the private key can be used while starting new nodes:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#000&#34;&gt;PEERGATE_AUTH&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;{ &amp;#39;ecdsa&amp;#39; : { &amp;#39;private_key&amp;#39;: &amp;#39;LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1JSGNBZ0VCQkVJQkhUZnRSTVZSRmlvaWZrdllhZEE2NXVRQXlSZTJSZHM0MW1UTGZlNlRIT3FBTTdkZW9sak0KZXVPbTk2V0hacEpzNlJiVU1tL3BCWnZZcElSZ0UwZDJjdUdnQndZRks0RUVBQ09oZ1lrRGdZWUFCQUdVWStMNQptUzcvVWVoSjg0b3JieGo3ZmZUMHBYZ09MSzNZWEZLMWVrSTlEWnR6YnZWOUdwMHl6OTB3aVZxajdpMDFVRnhVCnRKbU1lWURIRzBTQkNuVWpDZ0FGT3ByUURpTXBFR2xYTmZ4LzIvdEVySDIzZDNwSytraFdJbUIza01QL2tRNEIKZzJmYnk2cXJpY1dHd3B4TXBXNWxKZVZXUGlkeWJmMSs0cVhPTWdQbmRnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=&amp;#39; } }&amp;#34;&lt;/span&gt;
+$ edgevpn --peerguardian --peergate
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;enablingdisabling-peergating-in-runtime&#34;&gt;Enabling/Disabling peergating in runtime&lt;/h2&gt;
+&lt;p&gt;Peergating can be disabled in runtime by leveraging the api:&lt;/p&gt;
+&lt;h3 id=&#34;query-status&#34;&gt;Query status&lt;/h3&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X GET &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;enable-peergating&#34;&gt;Enable peergating&lt;/h3&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/enable&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;disable-peergating&#34;&gt;Disable peergating&lt;/h3&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/peergate/disable&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;starting-a-new-network&#34;&gt;Starting a new network&lt;/h2&gt;
+&lt;p&gt;To init a new Trusted network, start nodes with &lt;code&gt;--peergate-relaxed&lt;/code&gt; and add the neccessary auth keys:&lt;/p&gt;
+&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;$ edgevpn --peerguardian --peergate --peergate-relaxed
+$ curl -X PUT &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;http://localhost:8080/api/ledger/trustzoneAuth/keytype_1/XXX&amp;#39;&lt;/span&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
+
+&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
+&lt;h4 class=&#34;alert-heading&#34;&gt;Note&lt;/h4&gt;
+
+    It is strongly suggested to use a local store for the blockchain with PeerGuardian. In this way nodes persist locally auth keys and you can avoid starting nodes with `&amp;ndash;peergate-relaxed&#39;
+
+&lt;/div&gt;
+
+
+      </description>
+    </item>
+    
     <item>
       <title>Docs: Contributing</title>
       <link>https://mudler.github.io/edgevpn/docs/contribution-guidelines/</link>
@@ -318,7 +403,7 @@ updates:&lt;/p&gt;
 &lt;ol&gt;
 &lt;li&gt;Fork the &lt;a href=&#34;https://github.com/mudler/edgevpn&#34;&gt;the repo&lt;/a&gt; on GitHub.&lt;/li&gt;
 &lt;li&gt;Make your changes, if are related to docs
-to see the preview cd into &lt;code&gt;docs&lt;/code&gt; and run &lt;code&gt;make serve&lt;/code&gt;, then browse to &lt;a href=&#34;http://localhost:1313&#34;&gt;localhost:1313&lt;/a&gt;&lt;/li&gt;
+to see the preview run &lt;code&gt;make serve&lt;/code&gt; from the &lt;code&gt;docs&lt;/code&gt; dir, then browse to &lt;a href=&#34;http://localhost:1313&#34;&gt;localhost:1313&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;If you&amp;rsquo;re not yet ready for a review, add &amp;ldquo;WIP&amp;rdquo; to the PR name to indicate
 it&amp;rsquo;s a work in progress.&lt;/li&gt;
 &lt;li&gt;Continue updating your doc and pushing your changes until you&amp;rsquo;re happy with

+ 3 - 3
index.html

@@ -131,7 +131,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >
@@ -320,7 +320,7 @@ if (!doNotTrack) {
 
 <div class="col-lg-4 mb-5 mb-lg-0 text-center">
 <div class="mb-4 h1">
-  <i class="fas fa-cogs"></i>
+  <i class="fas fa-eye"></i>
 </div>
 <h4 class="h3">API</h4>
 <div class="mb-0">
@@ -362,7 +362,7 @@ if (!doNotTrack) {
 	 <a class="btn btn-md btn-primary mr-3 mb-4" href="/edgevpn/docs//getting-started/gui/">GUI
 		<i class="fab fa-desktop ml-2 "></i></a><br>
 	Keep an eye on your network with the Web UI. <br>
-	Connect easily from your workstation with the frontend GUI app
+	Connect easily from your workstation with the frontend GUI app.
 </center>
 </div>
 <div class="col">

+ 3 - 3
index.json

@@ -25,11 +25,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/index.json" /><meta property="article:section" content="" />
 
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="">
 <meta itemprop="description" content="">
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
 <meta itemprop="wordCount" content="0">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content=""/>
@@ -118,7 +118,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >

File diff suppressed because it is too large
+ 0 - 0
offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json


File diff suppressed because it is too large
+ 0 - 0
offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json


+ 3 - 3
search/index.html

@@ -25,11 +25,11 @@
 <meta property="og:type" content="article" />
 <meta property="og:url" content="https://mudler.github.io/edgevpn/search/" /><meta property="article:section" content="" />
 
-<meta property="article:modified_time" content="2022-04-23T01:05:17+02:00" /><meta property="og:site_name" content="EdgeVPN" />
+<meta property="article:modified_time" content="2022-04-23T12:19:51+02:00" /><meta property="og:site_name" content="EdgeVPN" />
 
 <meta itemprop="name" content="Search Results">
 <meta itemprop="description" content="">
-<meta itemprop="dateModified" content="2022-04-23T01:05:17+02:00" />
+<meta itemprop="dateModified" content="2022-04-23T12:19:51+02:00" />
 <meta itemprop="wordCount" content="0">
 <meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
 <meta name="twitter:title" content="Search Results"/>
@@ -118,7 +118,7 @@ if (!doNotTrack) {
   aria-label="Search this site…"
   autocomplete="off"
   
-  data-offline-search-index-json-src="/edgevpn/offline-search-index.a8213f01af955d0ec6dfd73cafeeb785.json"
+  data-offline-search-index-json-src="/edgevpn/offline-search-index.38026b52b930f9604e0fa1ab425d9ac3.json"
   data-offline-search-base-href="/"
   data-offline-search-max-results="10"
 >

+ 20 - 17
sitemap.xml

@@ -3,54 +3,57 @@
   xmlns:xhtml="http://www.w3.org/1999/xhtml">
   <url>
     <loc>https://mudler.github.io/edgevpn/docs/getting-started/cli/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/getting-started/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/getting-started/gui/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/concepts/overview/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/concepts/overview/services/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/getting-started/api/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/concepts/architecture/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/concepts/token/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/concepts/overview/dns/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/concepts/overview/files/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/concepts/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
+  </url><url>
+    <loc>https://mudler.github.io/edgevpn/docs/concepts/overview/peerguardian/</loc>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/docs/contribution-guidelines/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/index.json</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/community/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url><url>
     <loc>https://mudler.github.io/edgevpn/search/</loc>
-    <lastmod>2022-04-23T01:05:17+02:00</lastmod>
+    <lastmod>2022-04-23T12:19:51+02:00</lastmod>
   </url>
 </urlset>

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