Deployed e93342e to development with MkDocs 1.6.1 and mike 2.1.3

This commit is contained in:
github-actions[bot]
2025-06-11 09:12:59 +00:00
parent 43fb3e389b
commit c324cb2222
37 changed files with 17490 additions and 1084 deletions
+370 -125
View File
@@ -15,14 +15,14 @@
<link rel="canonical" href="https://wg-easy.github.io/wg-easy/development/getting-started/">
<link rel="prev" href="..">
<link rel="prev" href="../faq/">
<link rel="next" href="../advanced/api/">
<link rel="icon" href="../assets/logo/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.8">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.14">
@@ -30,7 +30,7 @@
<link rel="stylesheet" href="../assets/stylesheets/main.8608ea7d.min.css">
<link rel="stylesheet" href="../assets/stylesheets/main.342714a4.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
@@ -153,11 +153,13 @@
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
@@ -189,6 +191,7 @@
</div>
</div>
</div>
<div class="md-header__source">
@@ -221,10 +224,12 @@
<li class="md-tabs__item">
<a href=".." class="md-tabs__link">
Home
@@ -237,6 +242,26 @@
<li class="md-tabs__item">
<a href="../faq/" class="md-tabs__link">
FAQ
</a>
</li>
@@ -244,6 +269,7 @@
<a href="./" class="md-tabs__link">
Getting Started
@@ -257,12 +283,14 @@
<li class="md-tabs__item">
<a href="../advanced/api/" class="md-tabs__link">
Advanced
</a>
@@ -275,12 +303,14 @@
<li class="md-tabs__item">
<a href="../contributing/general/" class="md-tabs__link">
Contributing
</a>
@@ -293,18 +323,21 @@
<li class="md-tabs__item">
<a href="../examples/tutorials/adguard/" class="md-tabs__link">
Examples
</a>
@@ -316,6 +349,26 @@
<li class="md-tabs__item">
<a href="../guides/2fa/" class="md-tabs__link">
Guides
</a>
</li>
</ul>
</div>
</nav>
@@ -372,6 +425,7 @@
<a href=".." class="md-nav__link">
<span class="md-ellipsis">
Home
@@ -387,6 +441,28 @@
<li class="md-nav__item">
<a href="../faq/" class="md-nav__link">
<span class="md-ellipsis">
FAQ
</span>
</a>
</li>
@@ -400,6 +476,7 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Getting Started
@@ -412,6 +489,7 @@
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Getting Started
@@ -477,36 +555,9 @@
</li>
<li class="md-nav__item">
<a href="#get-all-files" class="md-nav__link">
<a href="#follow-tutorials" class="md-nav__link">
<span class="md-ellipsis">
Get All Files
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#start-the-container" class="md-nav__link">
<span class="md-ellipsis">
Start the Container
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#configuration-steps" class="md-nav__link">
<span class="md-ellipsis">
Configuration Steps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stopping-the-container" class="md-nav__link">
<span class="md-ellipsis">
Stopping the Container
Follow tutorials
</span>
</a>
@@ -534,6 +585,7 @@
@@ -544,12 +596,13 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
Advanced
@@ -559,8 +612,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Advanced
</label>
@@ -576,6 +629,7 @@
<a href="../advanced/api/" class="md-nav__link">
<span class="md-ellipsis">
API
@@ -597,6 +651,7 @@
@@ -607,12 +662,13 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_2" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Config
@@ -622,8 +678,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_2">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Config
</label>
@@ -639,6 +695,7 @@
<a href="../advanced/config/optional-config/" class="md-nav__link">
<span class="md-ellipsis">
Optional Configuration
@@ -661,6 +718,7 @@
<a href="../advanced/config/unattended-setup/" class="md-nav__link">
<span class="md-ellipsis">
Unattended Setup
@@ -690,6 +748,7 @@
@@ -700,12 +759,13 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_3" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_3" >
<label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_3" id="__nav_4_3_label" tabindex="0">
<span class="md-ellipsis">
Metrics
@@ -715,8 +775,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_3">
<span class="md-nav__icon md-icon"></span>
Metrics
</label>
@@ -732,6 +792,7 @@
<a href="../advanced/metrics/prometheus/" class="md-nav__link">
<span class="md-ellipsis">
Prometheus
@@ -761,6 +822,7 @@
@@ -771,12 +833,13 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_4" >
<label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
<span class="md-ellipsis">
Migrate
@@ -786,8 +849,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_4">
<span class="md-nav__icon md-icon"></span>
Migrate
</label>
@@ -803,6 +866,7 @@
<a href="../advanced/migrate/" class="md-nav__link">
<span class="md-ellipsis">
Migrate
@@ -825,6 +889,7 @@
<a href="../advanced/migrate/from-14-to-15/" class="md-nav__link">
<span class="md-ellipsis">
Migrate from v14 to v15
@@ -861,6 +926,7 @@
@@ -871,12 +937,13 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
Contributing
@@ -886,8 +953,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Contributing
</label>
@@ -903,6 +970,7 @@
<a href="../contributing/general/" class="md-nav__link">
<span class="md-ellipsis">
General Information
@@ -925,6 +993,7 @@
<a href="../contributing/issues-and-pull-requests/" class="md-nav__link">
<span class="md-ellipsis">
Issues and Pull Requests
@@ -953,6 +1022,7 @@
@@ -963,12 +1033,13 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
Examples
@@ -978,8 +1049,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Examples
</label>
@@ -994,6 +1065,7 @@
@@ -1004,12 +1076,13 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5_1" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6_1" >
<label class="md-nav__link" for="__nav_5_1" id="__nav_5_1_label" tabindex="0">
<label class="md-nav__link" for="__nav_6_1" id="__nav_6_1_label" tabindex="0">
<span class="md-ellipsis">
Tutorials
@@ -1019,8 +1092,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5_1">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_1">
<span class="md-nav__icon md-icon"></span>
Tutorials
</label>
@@ -1036,6 +1109,7 @@
<a href="../examples/tutorials/adguard/" class="md-nav__link">
<span class="md-ellipsis">
AdGuard Home
@@ -1058,6 +1132,7 @@
<a href="../examples/tutorials/auto-updates/" class="md-nav__link">
<span class="md-ellipsis">
Auto Updates
@@ -1080,6 +1155,7 @@
<a href="../examples/tutorials/basic-installation/" class="md-nav__link">
<span class="md-ellipsis">
Basic Installation
@@ -1102,6 +1178,7 @@
<a href="../examples/tutorials/caddy/" class="md-nav__link">
<span class="md-ellipsis">
Caddy
@@ -1124,6 +1201,7 @@
<a href="../examples/tutorials/docker-run/" class="md-nav__link">
<span class="md-ellipsis">
Docker Run
@@ -1146,6 +1224,7 @@
<a href="../examples/tutorials/dockerless/" class="md-nav__link">
<span class="md-ellipsis">
Without Docker
@@ -1165,11 +1244,12 @@
<li class="md-nav__item">
<a href="../examples/tutorials/nginx/" class="md-nav__link">
<a href="../examples/tutorials/podman-nft/" class="md-nav__link">
<span class="md-ellipsis">
NGINX
Podman + nftables
</span>
@@ -1187,11 +1267,12 @@
<li class="md-nav__item">
<a href="../examples/tutorials/podman/" class="md-nav__link">
<a href="../examples/tutorials/reverse-proxyless/" class="md-nav__link">
<span class="md-ellipsis">
Podman
No Reverse Proxy
</span>
@@ -1212,6 +1293,7 @@
<a href="../examples/tutorials/traefik/" class="md-nav__link">
<span class="md-ellipsis">
Traefik
@@ -1239,6 +1321,171 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7" >
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-ellipsis">
Guides
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Guides
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../guides/2fa/" class="md-nav__link">
<span class="md-ellipsis">
2FA
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../guides/admin/" class="md-nav__link">
<span class="md-ellipsis">
Admin Panel
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../guides/cli/" class="md-nav__link">
<span class="md-ellipsis">
CLI
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../guides/clients/" class="md-nav__link">
<span class="md-ellipsis">
Edit Client
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../guides/setup/" class="md-nav__link">
<span class="md-ellipsis">
Setup
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
@@ -1309,36 +1556,9 @@
</li>
<li class="md-nav__item">
<a href="#get-all-files" class="md-nav__link">
<a href="#follow-tutorials" class="md-nav__link">
<span class="md-ellipsis">
Get All Files
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#start-the-container" class="md-nav__link">
<span class="md-ellipsis">
Start the Container
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#configuration-steps" class="md-nav__link">
<span class="md-ellipsis">
Configuration Steps
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#stopping-the-container" class="md-nav__link">
<span class="md-ellipsis">
Stopping the Container
Follow tutorials
</span>
</a>
@@ -1385,13 +1605,13 @@
<h1>Getting Started</h1>
<p>This page explains how to get started with wg-easy. The guide uses Docker Compose as a reference. In our examples, we mount the named volume <code>etc_wireguard</code> to <code>/etc/wireguard</code> inside the container.</p>
<p>This page explains how to get started with <code>wg-easy</code>. The guide uses Docker Compose as a reference. In our examples, we mount the named volume <code>etc_wireguard</code> to <code>/etc/wireguard</code> inside the container.</p>
<h2 id="preliminary-steps"><a class="toclink" href="#preliminary-steps">Preliminary Steps</a></h2>
<p>Before you can get started with deploying your own VPN, there are some requirements to be met:</p>
<ol>
<li>You need to have a host that you can manage</li>
<li>You need to have a domain name or a public IP address</li>
<li>You need a supported architecture (x86_64, arm64)</li>
<li>You need a supported architecture (x86_64, arm64, armv7)</li>
</ol>
<h3 id="host-setup"><a class="toclink" href="#host-setup">Host Setup</a></h3>
<p>There are a few requirements for a suitable host system:</p>
@@ -1401,7 +1621,7 @@
<div class="admonition note">
<p class="admonition-title">About the Container Runtime</p>
<p>On the host, you need to have a suitable container runtime (like <em>Docker</em> or <em>Podman</em>) installed. We assume <a href="https://docs.docker.com/compose/"><em>Docker Compose</em></a> is <a href="https://docs.docker.com/compose/install/">installed</a>. We have aligned file names and configuration conventions with the latest <a href="https://docs.docker.com/compose/compose-file/">Docker Compose specification</a>.
If you're using podman, make sure to read the related <a href="../examples/tutorials/podman/">documentation</a>.</p>
If you're using podman, make sure to read the related <a href="../examples/tutorials/podman-nft/">documentation</a>.</p>
</div>
<h2 id="deploying-the-actual-image"><a class="toclink" href="#deploying-the-actual-image">Deploying the Actual Image</a></h2>
<h3 id="tagging-convention"><a class="toclink" href="#tagging-convention">Tagging Convention</a></h3>
@@ -1413,42 +1633,65 @@ If you're using podman, make sure to read the related <a href="../examples/tutor
<table>
<thead>
<tr>
<th>Event</th>
<th>Image Tags</th>
<th>tag</th>
<th>Type</th>
<th>Example</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>cron</code> on <code>master</code></td>
<td><code>nightly</code></td>
<td><code>15</code></td>
<td>latest minor for that major tag</td>
<td><code>ghcr.io/wg-easy/wg-easy:15</code></td>
<td>latest features for specific major versions, no breaking changes, recommended</td>
</tr>
<tr>
<td><code>push</code> a tag (<code>v1.2.3</code>)</td>
<td><code>1.2.3</code>, <code>1.2</code>, <code>1</code>, <code>latest</code></td>
<td><code>latest</code></td>
<td>latest tag</td>
<td><code>ghcr.io/wg-easy/wg-easy:latest</code> or <code>ghcr.io/wg-easy/wg-easy</code></td>
<td>points to latest release, can include breaking changes</td>
</tr>
<tr>
<td><code>15.0</code></td>
<td>latest patch for that minor tag</td>
<td><code>ghcr.io/wg-easy/wg-easy:15.0</code></td>
<td>latest patches for specific minor version</td>
</tr>
<tr>
<td><code>15.0.0</code></td>
<td>specific tag</td>
<td><code>ghcr.io/wg-easy/wg-easy:15.0.0</code></td>
<td>specific release, no updates</td>
</tr>
<tr>
<td><code>edge</code></td>
<td>push to <code>master</code></td>
<td><code>ghcr.io/wg-easy/wg-easy:edge</code></td>
<td>mostly unstable, gets frequent package and code updates</td>
</tr>
<tr>
<td><code>development</code></td>
<td>pull requests</td>
<td><code>ghcr.io/wg-easy/wg-easy:development</code></td>
<td>used for development, testing code from PRs</td>
</tr>
</tbody>
</table>
<!-- ref: major version -->
<p>When publishing a tag we follow the <a href="https://semver.org/">Semantic Versioning</a> specification. The <code>latest</code> tag is always pointing to the latest stable release. If you want to avoid breaking changes, use the major version tag (e.g. <code>15</code>).</p>
<h3 id="get-all-files"><a class="toclink" href="#get-all-files">Get All Files</a></h3>
<p>Issue the following command to acquire the necessary file:</p>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span><span class="s2">&quot;https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml&quot;</span>
</code></pre></div>
<h3 id="start-the-container"><a class="toclink" href="#start-the-container">Start the Container</a></h3>
<p>To start the container, issue the following command:</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>docker<span class="w"> </span>compose<span class="w"> </span>up<span class="w"> </span>-d
</code></pre></div>
<h3 id="configuration-steps"><a class="toclink" href="#configuration-steps">Configuration Steps</a></h3>
<p>Now follow the setup process in your web browser</p>
<h3 id="stopping-the-container"><a class="toclink" href="#stopping-the-container">Stopping the Container</a></h3>
<p>To stop the container, issue the following command:</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>docker<span class="w"> </span>compose<span class="w"> </span>down
</code></pre></div>
<h3 id="follow-tutorials"><a class="toclink" href="#follow-tutorials">Follow tutorials</a></h3>
<ul>
<li><a href="../examples/tutorials/basic-installation/">Basic Installation with Docker Compose (Recommended)</a></li>
<li><a href="../examples/tutorials/docker-run/">Simple Installation with Docker Run</a></li>
<li><a href="../examples/tutorials/podman-nft/">Advanced Installation with Podman</a></li>
</ul>
<div class="admonition danger">
<p class="admonition-title">Using the Correct Commands For Stopping and Starting wg-easy</p>
<p class="admonition-title">Use the Correct Commands For Stopping and Starting <code>wg-easy</code></p>
<p><strong>Use <code>sudo docker compose up / down</code>, not <code>sudo docker compose start / stop</code></strong>. Otherwise, the container is not properly destroyed and you may experience problems during startup because of inconsistent state.</p>
</div>
<p><strong>That's it! It really is that easy</strong>.</p>
<p>If you need more help you can read the <a href="../examples/tutorials/basic-installation/">Basic Installation Tutorial</a>.</p>
@@ -1511,10 +1754,12 @@ If you're using podman, make sure to read the related <a href="../examples/tutor
</div>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.tabs", "navigation.top", "navigation.expand", "navigation.instant", "content.action.edit", "content.action.view", "content.code.annotate"], "search": "../assets/javascripts/workers/search.f8cc74c7.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.tabs", "navigation.top", "navigation.expand", "navigation.instant", "content.action.edit", "content.action.view", "content.code.annotate"], "search": "../assets/javascripts/workers/search.d50fe291.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"provider": "mike"}}</script>
<script src="../assets/javascripts/bundle.c8b220af.min.js"></script>
<script src="../assets/javascripts/bundle.13a4f30d.min.js"></script>
</body>