Files
cunicu/docs/config/schema.html
github-actions[bot] f55632842f deploy: 3f0fe9e883
2024-12-02 05:02:27 +00:00

153 lines
103 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-config/schema" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.4.0">
<title data-rh="true">JSON Schema | cunīcu</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://cunicu.li/docs/config/schema"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="keywords" content="go, golang, iot, networking, nat-traversal, vpn, vpn-manager, mesh, ice, multi-agent-systems, wireguard, edge-cloud, wireguard-vpn"><meta data-rh="true" name="twitter:creator" content="@stv0g"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="JSON Schema | cunīcu"><meta data-rh="true" name="description" content="JSON Schema is a declarative language that allows you to annotate and validate JSON documents."><meta data-rh="true" property="og:description" content="JSON Schema is a declarative language that allows you to annotate and validate JSON documents."><link data-rh="true" rel="icon" href="/img/favicon.png"><link data-rh="true" rel="canonical" href="https://cunicu.li/docs/config/schema"><link data-rh="true" rel="alternate" href="https://cunicu.li/docs/config/schema" hreflang="en"><link data-rh="true" rel="alternate" href="https://cunicu.li/docs/config/schema" hreflang="x-default"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="cunīcu RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="cunīcu Atom Feed">
<link rel="preconnect" href="https://matomo.0l.de/piwik.js">
<noscript>
var img = document.createElement('img');
img.src = "https://matomo.0l.de/piwik.php?idsite=5&rec=1&url=https://cunicu.li" + location.pathname;
img.style = "border:0";
img.alt = "tracker";
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(img,s);
</noscript>
<script>window.dev=void 0,(!0===window.dev||"1"!==navigator.doNotTrack&&"1"!==window.doNotTrack)&&(window._paq=window._paq||[],window._paq.push(["setTrackerUrl","https://matomo.0l.de/piwik.php"]),window._paq.push(["setSiteId","5"]),window._paq.push(["enableHeartBeatTimer"]),window.start=new Date,function(){var e=document,t=e.createElement("script"),o=e.getElementsByTagName("script")[0];t.type="text/javascript",t.async=!0,t.defer=!0,t.src="https://matomo.0l.de/piwik.js",o.parentNode.insertBefore(t,o)}(),!0===window.dev&&(console.debug("[Matomo] Tracking initialized"),console.debug("[Matomo] matomoUrl: https://matomo.0l.de, siteId: 5")))</script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css" integrity="sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.5ec7fe54.css">
<script src="/assets/js/runtime~main.ba68092a.js" defer="defer"></script>
<script src="/assets/js/main.242e5a7e.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/cunicu_icon.svg" alt="cunīcu logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/cunicu_icon.svg" alt="cunīcu logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">cunīcu</b></a><a class="navbar__item navbar__link" href="/blog">📰 Blog</a><a href="https://discuss.cunicu.li" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">👋 Community</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs">📚 Documentation</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/cunicu" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><a href="https://codeberg.org/cunicu" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-codeberg-link" aria-label="Codeberg repository"></a><div class="navbarSearchContainer_Bca1"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs">Welcome</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/install">Installation</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/features">Features</a><button aria-label="Expand sidebar category &#x27;Features&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/usage">Usage</a><button aria-label="Expand sidebar category &#x27;Usage&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/docs/config">Configuration</a><button aria-label="Collapse sidebar category &#x27;Configuration&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/config/example-simple">Simple Example</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/config/example-advanced">Advanced Example</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/config/schema">JSON Schema</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/design">Design</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/dev">Development</a><button aria-label="Expand sidebar category &#x27;Development&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/comparison">Comparison</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/funding">Funding</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/license">Licence</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/legal">Legal</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/contact">Contact</a></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/docs/config"><span itemprop="name">Configuration</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">JSON Schema</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>JSON Schema</h1>
<p><a href="https://json-schema.org/" target="_blank" rel="noopener noreferrer">JSON Schema</a> is a declarative language that allows you to annotate and validate JSON documents.</p>
<p>JSON Schema can also be used to validate YAML documents and as such cunīcu&#x27;s configuration file.
YAML Ain&#x27;t Markup Language (YAML) is a powerful data serialization language that aims to be human friendly.</p>
<p>Most JSON is syntactically valid YAML, but idiomatic YAML follows very different conventions.
While YAML has advanced features that cannot be directly mapped to JSON, most YAML files use features that can be validated by JSON Schema.
JSON Schema is the most portable and broadly supported choice for YAML validation.</p>
<p>The schema of cunīcu&#x27;s configuration file is available at:</p>
<ul>
<li><a href="https://github.com/cunicu/cunicu/blob/main/etc/cunicu.schema.yaml" target="_blank" rel="noopener noreferrer"><code>etc/cunicu.schema.yaml</code></a></li>
<li><a href="https://cunicu.li/schemas/config.yaml" target="_blank" rel="noopener noreferrer">https://cunicu.li/schemas/config.yaml</a></li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="editor--language-server-support">Editor / Language Server support<a class="hash-link" aria-label="Direct link to Editor / Language Server support" title="Direct link to Editor / Language Server support" href="/docs/config/schema#editor--language-server-support"></a></h2>
<p>Redhat&#x27;s <a href="https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml" target="_blank" rel="noopener noreferrer">YAML Visual Studio Code extension</a> provides comprehensive YAML Language support, via the <a href="https://github.com/redhat-developer/yaml-language-server" target="_blank" rel="noopener noreferrer">yaml-language-server</a>.</p>
<p>It provides completion, validation and code lenses based on JSON Schemas.</p>
<p>To make use of it, you need to associate your config file with the JSON Schema by adding the following line into your config:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># yaml-language-server: $schema=https://cunicu.li/schemas/config.yaml</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">---</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">watch_interval</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> 1s</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_LWe7" id="reference">Reference<a class="hash-link" aria-label="Direct link to Reference" title="Direct link to Reference" href="/docs/config/schema#reference"></a></h2>
<p>Here is a rendered reference based on this schema:</p>
<!-- -->
<div class="redocusaurus redocusaurus-schema hide-example"><div class="sc-eCstZk eGHUfI"><div class="sc-iBPTVF iKpLUv"><div class="sc-hKgKIp kwuQOC"><table class="sc-hHftZz gwKXaW"><tbody><tr><td kind="field" title="watch_interval" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">watch_interval</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">string</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Duration<!-- -->) </span><span class="sc-gTgyBf sc-ehSCEj bDVBYe iHZURG">(\d+(\.\d)?(ns|us|µs|ms|s|m|h))+</span></div> <div><div html="&lt;p&gt;An interval at which cunīcu will periodically check for added, removed or modified WireGuard interfaces.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>An interval at which cunīcu will periodically check for added, removed or modified WireGuard interfaces.</p>
</div></div></div></td></tr><tr><td kind="field" title="backends" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">backends</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">strings</span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf"> <!-- -->&lt;<!-- -->uri<!-- -->&gt;<!-- --> </span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Signaling backends<!-- -->) </span><span class="sc-gTgyBf sc-laRQQM sc-jHVeRl bDVBYe GbFxg gQPaKX">[ items<span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf"> &lt;<!-- -->uri<!-- --> &gt;</span> ]</span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">[&quot;grpc://signal.cunicu.li:443&quot;]</span></div> <div><div html="&lt;p&gt;These backends are used for exchanging control-plane messages between the peers.&lt;/p&gt;
&lt;p&gt;Examples of the exchanged information are ICE candidates or peer information.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>These backends are used for exchanging control-plane messages between the peers.</p>
<p>Examples of the exchanged information are ICE candidates or peer information.</p>
</div></div></div></td></tr><tr><td kind="field" title="rpc" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand rpc"><span class="property-name">rpc</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">object</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->RPC Settings<!-- -->) </span></div> <div><div html="&lt;p&gt;Settings for controlling cunīcu via the CLI.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Settings for controlling cunīcu via the CLI.</p>
</div></div></div></td></tr><tr><td kind="field" title="log" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand log"><span class="property-name">log</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">object</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Logging Settings<!-- -->) </span></div> <div><div html="&lt;p&gt;Settings of logging system.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Settings of logging system.</p>
</div></div></div></td></tr><tr><td kind="field" title="mtu" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">mtu</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">number</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->MTU<!-- -->) </span></div> <div><div html="&lt;p&gt;The &lt;a href=&quot;https://en.wikipedia.org/wiki/Maximum_transmission_unit&quot;&gt;Maximum Transmission Unit (MTU)&lt;/a&gt; of the WireGuard interface.
If not specified, the MTU is automatically determined from the endpoint addresses or the system default route, which is usually a sane choice.
However, to manually specify an MTU to override this automatic discovery, this value may be specified explicitly.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>The <a href="https://en.wikipedia.org/wiki/Maximum_transmission_unit">Maximum Transmission Unit (MTU)</a> of the WireGuard interface.
If not specified, the MTU is automatically determined from the endpoint addresses or the system default route, which is usually a sane choice.
However, to manually specify an MTU to override this automatic discovery, this value may be specified explicitly.</p>
</div></div></div></td></tr><tr><td kind="field" title="addresses" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">addresses</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">strings</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Addresses<!-- -->) </span></div> <div><div html="&lt;p&gt;A list of IP (v4 or v6) addresses (optionally with CIDR masks) to be assigned to the interface.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A list of IP (v4 or v6) addresses (optionally with CIDR masks) to be assigned to the interface.</p>
</div></div></div></td></tr><tr><td kind="field" title="prefixes" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">prefixes</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">strings</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Prefixes<!-- -->) </span></div> <div><div html="&lt;p&gt;A list of prefixes which cunīcu uses to derive local addresses from the interfaces public key.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A list of prefixes which cunīcu uses to derive local addresses from the interfaces public key.</p>
</div></div></div></td></tr><tr><td kind="field" title="dns" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand dns"><span class="property-name">dns</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">IP Address (any) or IP Address (any)</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->DNS Servers<!-- -->) </span></div> <div><div html="&lt;p&gt;A list of IP (v4 or v6) addresses to be set as the interface&amp;#39;s DNS servers, or non-IP hostnames to be set as the interface&amp;#39;s DNS search domains.
Upon bringing the interface up, this runs &lt;code&gt;resolvconf -a tun.INTERFACE -m 0 -x&lt;/code&gt; and upon bringing it down, this runs &lt;code&gt;resolvconf -d tun.INTERFACE&lt;/code&gt;.
If these particular invocations of &lt;a href=&quot;https://manpages.debian.org/stretch/resolvconf/resolvconf.8.en.html&quot;&gt;resolvconf(8)&lt;/a&gt; are undesirable, custom hooks can be used instead.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A list of IP (v4 or v6) addresses to be set as the interface&#39;s DNS servers, or non-IP hostnames to be set as the interface&#39;s DNS search domains.
Upon bringing the interface up, this runs <code>resolvconf -a tun.INTERFACE -m 0 -x</code> and upon bringing it down, this runs <code>resolvconf -d tun.INTERFACE</code>.
If these particular invocations of <a href="https://manpages.debian.org/stretch/resolvconf/resolvconf.8.en.html">resolvconf(8)</a> are undesirable, custom hooks can be used instead.</p>
</div></div></div></td></tr><tr><td kind="field" title="private_key" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">private_key</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">string</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Base64Key<!-- -->) </span><span class="sc-gTgyBf sc-ehSCEj bDVBYe iHZURG">[^-A-Za-z0-9+/=]|=[^=]|={3,}$</span></div> <div><div html="&lt;p&gt;A base64 encoded WireGuard private key.
This key can be generated via the &lt;code&gt;wg genkey&lt;/code&gt; command.
Will be automatically generated if not provided.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A base64 encoded WireGuard private key.
This key can be generated via the <code>wg genkey</code> command.
Will be automatically generated if not provided.</p>
</div></div></div></td></tr><tr><td kind="field" title="userspace" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">userspace</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Use userspace WireGuard implementation<!-- -->) </span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">false</span></div> <div><div html="&lt;p&gt;Create WireGuard interfaces using bundled wireguard-go user space implementation.
This will be the default if there is no WireGuard kernel module present.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Create WireGuard interfaces using bundled wireguard-go user space implementation.
This will be the default if there is no WireGuard kernel module present.</p>
</div></div></div></td></tr><tr><td kind="field" title="listen_port_range" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand listen_port_range"><span class="property-name">listen_port_range</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">object</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Listen Port Range<!-- -->) </span></div> <div><div html="&lt;p&gt;A range constraint for an automatically assigned selected listen port.
If the interface has no listen port specified, cunīcu will use the first available port from this range.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A range constraint for an automatically assigned selected listen port.
If the interface has no listen port specified, cunīcu will use the first available port from this range.</p>
</div></div></div></td></tr><tr><td kind="field" title="listen_port" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">listen_port</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">integer</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Listen Port<!-- -->) </span><span> <span class="sc-gTgyBf sc-clsGLE bDVBYe fjmxoD"> <!-- -->[ 0 .. 65535 ]<!-- --> </span></span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">51820</span></div> <div><div html="&lt;p&gt;An UDP port for listening.
If not specified, first available port from listen_port_range will be used.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>An UDP port for listening.
If not specified, first available port from listen_port_range will be used.</p>
</div></div></div></td></tr><tr><td kind="field" title="fwmark" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">fwmark</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">integer</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Firewall Mark<!-- -->) </span></div> <div><div html="&lt;p&gt;A 32-bit firewall mark for outgoing packets which can be used for &lt;a href=&quot;https://www.netfilter.org/&quot;&gt;Netfilter&lt;/a&gt; or &lt;a href=&quot;https://lartc.org/&quot;&gt;Traffic Control (TC)&lt;/a&gt; classification.
If set to &lt;code&gt;0&lt;/code&gt;, this option is disabled.
May be specified in hexadecimal by prepending &lt;code&gt;0x&lt;/code&gt;.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A 32-bit firewall mark for outgoing packets which can be used for <a href="https://www.netfilter.org/">Netfilter</a> or <a href="https://lartc.org/">Traffic Control (TC)</a> classification.
If set to <code>0</code>, this option is disabled.
May be specified in hexadecimal by prepending <code>0x</code>.</p>
</div></div></div></td></tr><tr><td kind="field" title="peers" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand peers"><span class="property-name">peers</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">object</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->WireGuard peer<!-- -->) </span></div> <div><div html="&lt;p&gt;The remote WireGuard peers provided as a dictionary.
The keys of this dictionary are used as names for the peers.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>The remote WireGuard peers provided as a dictionary.
The keys of this dictionary are used as names for the peers.</p>
</div></div></div></td></tr><tr><td kind="field" title="sync_routes" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">sync_routes</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Route Synchronization<!-- -->) </span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">true</span></div> <div><div html="&lt;p&gt;Enable route synchronization.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Enable route synchronization.</p>
</div></div></div></td></tr><tr><td kind="field" title="routing_table" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">routing_table</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">integer</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Kernel Routing Table<!-- -->) </span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">254</span></div> <div><div html="&lt;p&gt;Kernel routing table which is used.
On Linux, see &lt;code&gt;/etc/iproute2/rt_tables&lt;/code&gt; for table ids and names&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Kernel routing table which is used.
On Linux, see <code>/etc/iproute2/rt_tables</code> for table ids and names</p>
</div></div></div></td></tr><tr><td kind="field" title="watch_routes" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">watch_routes</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Watch Routes<!-- -->) </span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">true</span></div> <div><div html="&lt;p&gt;Keep watching the for changes in the kernel routing table via netlink multicast group.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Keep watching the for changes in the kernel routing table via netlink multicast group.</p>
</div></div></div></td></tr><tr><td kind="field" title="sync_config" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">sync_config</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Config Synchronization<!-- -->) </span></div> <div><div html="&lt;p&gt;Enable config synchronization.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Enable config synchronization.</p>
</div></div></div></td></tr><tr><td kind="field" title="watch_config" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">watch_config</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Watch Configuration Files<!-- -->) </span></div> <div><div html="&lt;p&gt;Keep watching for changes in the configuration and apply them on-the-fly&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Keep watching for changes in the configuration and apply them on-the-fly</p>
</div></div></div></td></tr><tr><td kind="field" title="sync_hosts" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">sync_hosts</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->/etc/hosts Synchronization<!-- -->) </span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">true</span></div> <div><div html="&lt;p&gt;Enable hosts file synchronization.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Enable hosts file synchronization.</p>
</div></div></div></td></tr><tr><td kind="field" title="domain" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">domain</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">string</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Domain<!-- -->) </span></div> <div><div html="&lt;p&gt;The domain name which is appended to each of the peer host names&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>The domain name which is appended to each of the peer host names</p>
</div></div></div></td></tr><tr><td kind="field" title="discover_peers" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">discover_peers</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Peer Discovery<!-- -->) </span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">true</span></div> <div><div html="&lt;p&gt;Enable/disable peer discovery.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Enable/disable peer discovery.</p>
</div></div></div></td></tr><tr><td kind="field" title="hostname" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">hostname</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">string</span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf"> <!-- -->&lt;<!-- -->hostname<!-- -->&gt;<!-- --> </span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Hostname<!-- -->) </span></div> <div><div html="&lt;p&gt;The hostname which gets advertised to remote peers.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>The hostname which gets advertised to remote peers.</p>
</div></div></div></td></tr><tr><td kind="field" title="community" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">community</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">string</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Community<!-- -->) </span><span> <span class="sc-gTgyBf sc-clsGLE bDVBYe fjmxoD"> <!-- -->non-empty<!-- --> </span></span></div> <div><div html="&lt;p&gt;A passphrase shared among all peers of the same community.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A passphrase shared among all peers of the same community.</p>
</div></div></div></td></tr><tr><td kind="field" title="networks" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">networks</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">strings</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Networks<!-- -->) </span></div> <div><div html="&lt;p&gt;Networks which are reachable via this peer and get advertised to remote peers.
These will be part of this interfaces AllowedIPs at the remote peers.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Networks which are reachable via this peer and get advertised to remote peers.
These will be part of this interfaces AllowedIPs at the remote peers.</p>
</div></div></div></td></tr><tr><td kind="field" title="whitelist" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">whitelist</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">strings</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Peer Whitelist<!-- -->) </span><span class="sc-gTgyBf sc-laRQQM sc-jHVeRl bDVBYe GbFxg gQPaKX">[<span class="sc-gTgyBf sc-ehSCEj bDVBYe iHZURG">[^-A-Za-z0-9+/=]|=[^=]|={3,}$</span>]</span></div> <div><div html="&lt;p&gt;A list of WireGuard public keys which are accepted peers.
If not configured, all peers will be accepted.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A list of WireGuard public keys which are accepted peers.
If not configured, all peers will be accepted.</p>
</div></div></div></td></tr><tr><td kind="field" title="blacklist" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">blacklist</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">strings</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Peer Blacklist<!-- -->) </span><span class="sc-gTgyBf sc-laRQQM sc-jHVeRl bDVBYe GbFxg gQPaKX">[<span class="sc-gTgyBf sc-ehSCEj bDVBYe iHZURG">[^-A-Za-z0-9+/=]|=[^=]|={3,}$</span>]</span></div> <div><div html="&lt;p&gt;A list of WireGuard public keys which are rejected as peers.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>A list of WireGuard public keys which are rejected as peers.</p>
</div></div></div></td></tr><tr><td kind="field" title="discover_endpoints" class="sc-hBEZvw sc-fFubCH buyQWa dNjbQz"><span class="sc-idOjMB imcswj"></span><span class="property-name">discover_endpoints</span></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">boolean</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Endpoint Discovery<!-- -->) </span></div><div><span class="sc-gTgyBf bDVBYe"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgyBf sc-lcuiaG bDVBYe hkaQSL">true</span></div> <div><div html="&lt;p&gt;Enable/disable endpoint discovery.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Enable/disable endpoint discovery.</p>
</div></div></div></td></tr><tr><td kind="field" title="ice" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand ice"><span class="property-name">ice</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">object</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->IceSettings<!-- -->) </span></div> <div><div html="&lt;p&gt;Interactive Connectivity Establishment (ICE) parameters.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Interactive Connectivity Establishment (ICE) parameters.</p>
</div></div></div></td></tr><tr><td kind="field" title="hooks" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand hooks"><span class="property-name">hooks</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg">Array of </span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">Web Hook Settings (object) or Sub-process Hook (object)</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Hook Settings<!-- -->) </span></div> <div><div html="" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"></div></div></div></td></tr><tr class="last"><td kind="field" title="interfaces" class="sc-hBEZvw sc-fFubCH sc-jgHCeW buyQWa dNjbQz kwTKKU"><span class="sc-idOjMB imcswj"></span><button aria-label="expand interfaces"><span class="property-name">interfaces</span><svg class="sc-dQpIV creuKE" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkzXAi hgmEWl"><div><div><span class="sc-gTgyBf sc-laRQQM bDVBYe GbFxg"></span><span class="sc-gTgyBf sc-iNqNmV bDVBYe lbENXf">object</span><span class="sc-gTgyBf sc-jeGSXX bDVBYe cgiATn"> (<!-- -->Interface specific settings / overwrites<!-- -->) </span></div> <div><div html="&lt;p&gt;Most of the top-level settings of this configuration file can be customized for specific interfaces.&lt;/p&gt;
&lt;p&gt;The keys of the &amp;#39;interfaces&amp;#39; dictionary are &lt;a href=&quot;https://manpages.debian.org/bookworm/manpages/glob.7.en.html&quot;&gt;glob(7)&lt;/a&gt; patterns which will be matched against the interface names.
Settings are overlayed in the order in which the keys are provided in the interface map.
Multiple patterns are supported and evaluated in the order they a defined in the configuration file.&lt;/p&gt;
&lt;p&gt;Keys which are not a &lt;a href=&quot;https://manpages.debian.org/bookworm/manpages/glob.7.en.html&quot;&gt;glob(7)&lt;/a&gt; pattern, will be created as new interfaces if they do not exist already in the system.&lt;/p&gt;
" class="sc-iJuWdM sc-cBNeRQ czxMmN iNyBBQ"><p>Most of the top-level settings of this configuration file can be customized for specific interfaces.</p>
<p>The keys of the &#39;interfaces&#39; dictionary are <a href="https://manpages.debian.org/bookworm/manpages/glob.7.en.html">glob(7)</a> patterns which will be matched against the interface names.
Settings are overlayed in the order in which the keys are provided in the interface map.
Multiple patterns are supported and evaluated in the order they a defined in the configuration file.</p>
<p>Keys which are not a <a href="https://manpages.debian.org/bookworm/manpages/glob.7.en.html">glob(7)</a> pattern, will be created as new interfaces if they do not exist already in the system.</p>
</div></div></div></td></tr></tbody></table></div><div class="sc-jSguLX sc-gKsecS cRCTYQ jcMixq"><div class="sc-jONmMj cycZBR"><div class="sc-hTZhMB kTaCsY"><div class="sc-cTkyaV ebyfmT"><div class="sc-giInvV cIuwxG"><button><div class="sc-jcVcfa iVrxDL">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-iJuWdM czxMmN sc-jNMdxs elJqcE"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable"><span class="property token string">"watch_interval"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"backends"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;grpc://signal.cunicu.li:443&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"rpc"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"socket"</span>: <span class="token string">&quot;/var/run/cunicu.sock&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"wait"</span>: <span class="token boolean">false</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"log"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"banner"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"color"</span>: <span class="token string">&quot;auto&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"file"</span>: <span class="token string">&quot;/var/log/cunicu.log&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"level"</span>: <span class="token string">&quot;debug2&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"rules"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;debug5:watcher,daemon&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"mtu"</span>: <span class="token number">1420</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"addresses"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"prefixes"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"dns"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"private_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"userspace"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"listen_port_range"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"min"</span>: <span class="token number">52820</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max"</span>: <span class="token number">65535</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"listen_port"</span>: <span class="token number">51820</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"fwmark"</span>: <span class="token number">4096</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"peers"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"property1"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"public_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key_passphrase"</span>: <span class="token string">&quot;theifo1we1Ayahth&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"endpoint"</span>: <span class="token string">&quot;192.0.2.1:51820&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"persistent_keepalive"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"allowed_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"property2"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"public_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key_passphrase"</span>: <span class="token string">&quot;theifo1we1Ayahth&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"endpoint"</span>: <span class="token string">&quot;192.0.2.1:51820&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"persistent_keepalive"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"allowed_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"sync_routes"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"routing_table"</span>: <span class="token number">254</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"watch_routes"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"sync_config"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"watch_config"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"sync_hosts"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"domain"</span>: <span class="token string">&quot;wg-local&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"discover_peers"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"hostname"</span>: <span class="token string">&quot;my-node&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"community"</span>: <span class="token string">&quot;some-common-password&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"networks"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;192.168.1.0/24&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"whitelist"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"blacklist"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"discover_endpoints"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"ice"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"urls"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;grpc://relay.cunicu.li&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"username"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"password"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"insecure_skip_verify"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"network_types"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;udp4&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"candidate_types"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;host&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"interface_filter"</span>: <span class="token string">&quot;eth*&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"lite"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"mdns"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max_binding_requests"</span>: <span class="token number">7</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"nat_1to1_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"port_range"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"min"</span>: <span class="token number">49152</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max"</span>: <span class="token number">65535</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"check_interval"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"disconnected_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"failed_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"restart_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"keepalive_interval"</span>: <span class="token string">&quot;300ms&quot;</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"hooks"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"type"</span>: <span class="token string">&quot;web&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"url"</span>: <span class="token string">&quot;</span><a href="https://my-webhook-endpoint.com/api/v1/webhook">https://my-webhook-endpoint.com/api/v1/webhook</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"method"</span>: <span class="token string">&quot;DELETE&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"headers"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"Content-type"</span>: <span class="token string">&quot;application/json&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable"><span class="property token string">"interfaces"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"property1"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"mtu"</span>: <span class="token number">1420</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"addresses"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"prefixes"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"dns"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"private_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"userspace"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"listen_port_range"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"min"</span>: <span class="token number">52820</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max"</span>: <span class="token number">65535</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"listen_port"</span>: <span class="token number">51820</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"fwmark"</span>: <span class="token number">4096</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"peers"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"property1"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"public_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key_passphrase"</span>: <span class="token string">&quot;theifo1we1Ayahth&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"endpoint"</span>: <span class="token string">&quot;192.0.2.1:51820&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"persistent_keepalive"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"allowed_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"property2"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"public_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key_passphrase"</span>: <span class="token string">&quot;theifo1we1Ayahth&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"endpoint"</span>: <span class="token string">&quot;192.0.2.1:51820&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"persistent_keepalive"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"allowed_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"sync_routes"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"routing_table"</span>: <span class="token number">254</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"watch_routes"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"sync_config"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"watch_config"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"sync_hosts"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"domain"</span>: <span class="token string">&quot;wg-local&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"discover_peers"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"hostname"</span>: <span class="token string">&quot;my-node&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"community"</span>: <span class="token string">&quot;some-common-password&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"networks"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;192.168.1.0/24&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"whitelist"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"blacklist"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"discover_endpoints"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"ice"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"urls"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;grpc://relay.cunicu.li&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"username"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"password"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"insecure_skip_verify"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"network_types"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;udp4&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"candidate_types"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;host&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"interface_filter"</span>: <span class="token string">&quot;eth*&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"lite"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"mdns"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max_binding_requests"</span>: <span class="token number">7</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"nat_1to1_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"port_range"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"min"</span>: <span class="token number">49152</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max"</span>: <span class="token number">65535</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"check_interval"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"disconnected_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"failed_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"restart_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"keepalive_interval"</span>: <span class="token string">&quot;300ms&quot;</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"hooks"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"type"</span>: <span class="token string">&quot;web&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"url"</span>: <span class="token string">&quot;</span><a href="https://my-webhook-endpoint.com/api/v1/webhook">https://my-webhook-endpoint.com/api/v1/webhook</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"method"</span>: <span class="token string">&quot;DELETE&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"headers"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"Content-type"</span>: <span class="token string">&quot;application/json&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"property2"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"mtu"</span>: <span class="token number">1420</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"addresses"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"prefixes"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"dns"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"private_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"userspace"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"listen_port_range"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"min"</span>: <span class="token number">52820</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max"</span>: <span class="token number">65535</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"listen_port"</span>: <span class="token number">51820</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"fwmark"</span>: <span class="token number">4096</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"peers"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"property1"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"public_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key_passphrase"</span>: <span class="token string">&quot;theifo1we1Ayahth&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"endpoint"</span>: <span class="token string">&quot;192.0.2.1:51820&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"persistent_keepalive"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"allowed_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"property2"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"public_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key"</span>: <span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"preshared_key_passphrase"</span>: <span class="token string">&quot;theifo1we1Ayahth&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"endpoint"</span>: <span class="token string">&quot;192.0.2.1:51820&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"persistent_keepalive"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"allowed_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;fc2f:9a4d::/32&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"sync_routes"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"routing_table"</span>: <span class="token number">254</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"watch_routes"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"sync_config"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"watch_config"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"sync_hosts"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"domain"</span>: <span class="token string">&quot;wg-local&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"discover_peers"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"hostname"</span>: <span class="token string">&quot;my-node&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"community"</span>: <span class="token string">&quot;some-common-password&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"networks"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;192.168.1.0/24&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"whitelist"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"blacklist"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;zu86NBVsWOU3cx4UKOQ6MgNj3gv8GXsV9ATzSemdqlI=&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"discover_endpoints"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"ice"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"urls"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;grpc://relay.cunicu.li&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"username"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"password"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"insecure_skip_verify"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"network_types"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;udp4&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"candidate_types"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;host&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"interface_filter"</span>: <span class="token string">&quot;eth*&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"lite"</span>: <span class="token boolean">true</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"mdns"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max_binding_requests"</span>: <span class="token number">7</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"nat_1to1_ips"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token punctuation">{ }</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"port_range"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"min"</span>: <span class="token number">49152</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max"</span>: <span class="token number">65535</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"check_interval"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"disconnected_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"failed_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"restart_timeout"</span>: <span class="token string">&quot;300ms&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"keepalive_interval"</span>: <span class="token string">&quot;300ms&quot;</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"hooks"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"type"</span>: <span class="token string">&quot;web&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"url"</span>: <span class="token string">&quot;</span><a href="https://my-webhook-endpoint.com/api/v1/webhook">https://my-webhook-endpoint.com/api/v1/webhook</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"method"</span>: <span class="token string">&quot;DELETE&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"headers"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"Content-type"</span>: <span class="token string">&quot;application/json&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/cunicu/cunicu/edit/main/docs/config/schema.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/config/example-advanced"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Advanced Example</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/design"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Design</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a class="table-of-contents__link toc-highlight" href="/docs/config/schema#editor--language-server-support">Editor / Language Server support</a></li><li><a class="table-of-contents__link toc-highlight" href="/docs/config/schema#reference">Reference</a></li></ul></div></div></div></div></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs">Tutorial</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/legal">Legal</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://discuss.cunicu.li" target="_blank" rel="noopener noreferrer" class="footer__link-item">Forum<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://fosstodon.org/@cunicu" target="_blank" rel="noopener noreferrer" class="footer__link-item">Fediverse<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/contact">Contact</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 Steffen Vogel.</div></div></div></footer></div>
</body>
</html>