mirror of https://github.com/wg-easy/wg-easy
30 changed files with 15668 additions and 1052 deletions
@ -1,16 +0,0 @@ |
|||
{ |
|||
"1": "Initial version. Enjoy!", |
|||
"2": "You can now rename a client & update the address. Enjoy!", |
|||
"3": "Many improvements and small changes. Enjoy!", |
|||
"4": "Now with pretty charts for client's network speed. Enjoy!", |
|||
"5": "Many small improvements & feature requests. Enjoy!", |
|||
"6": "Many small performance improvements & bug fixes. Enjoy!", |
|||
"7": "Improved the look & performance of the upload/download chart.", |
|||
"8": "Updated to Node.js v18.", |
|||
"9": "Fixed issue running on devices with older kernels.", |
|||
"10": "Added sessionless HTTP API auth & automatic dark mode.", |
|||
"11": "Multilanguage Support & various bugfixes.", |
|||
"12": "UI_TRAFFIC_STATS, Import json configurations with no PreShared-Key, allow clients with no privateKey & more.", |
|||
"13": "New framework (h3), UI_CHART_TYPE, some bugfixes & more.", |
|||
"14": "Home Assistent support, PASSWORD_HASH (inc. Helper), translation updates bugfixes & more." |
|||
} |
@ -22,7 +22,7 @@ |
|||
|
|||
|
|||
<link rel="icon" href="../../../assets/logo/favicon.png"> |
|||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.10"> |
|||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.11"> |
|||
|
|||
|
|||
|
|||
@ -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"> |
|||
@ -241,6 +244,25 @@ |
|||
|
|||
|
|||
|
|||
<li class="md-tabs__item"> |
|||
<a href="../../../faq/" class="md-tabs__link"> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
FAQ |
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-tabs__item"> |
|||
<a href="../../../getting-started/" class="md-tabs__link"> |
|||
|
|||
@ -329,6 +351,26 @@ |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-tabs__item"> |
|||
<a href="../../../guides/2fa/" class="md-tabs__link"> |
|||
|
|||
|
|||
|
|||
Guides |
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
</ul> |
|||
</div> |
|||
</nav> |
|||
@ -401,6 +443,28 @@ |
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../faq/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
FAQ |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../getting-started/" class="md-nav__link"> |
|||
|
|||
@ -437,10 +501,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -453,8 +517,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> |
|||
@ -503,10 +567,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -519,8 +583,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> |
|||
@ -600,10 +664,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -616,8 +680,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> |
|||
@ -674,10 +738,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -690,8 +754,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> |
|||
@ -778,10 +842,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -794,8 +858,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> |
|||
@ -877,10 +941,10 @@ |
|||
|
|||
|
|||
|
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked> |
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked> |
|||
|
|||
|
|||
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex=""> |
|||
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex=""> |
|||
|
|||
|
|||
|
|||
@ -893,8 +957,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="true"> |
|||
<label class="md-nav__title" for="__nav_5"> |
|||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true"> |
|||
<label class="md-nav__title" for="__nav_6"> |
|||
<span class="md-nav__icon md-icon"></span> |
|||
Examples |
|||
</label> |
|||
@ -920,10 +984,10 @@ |
|||
|
|||
|
|||
|
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_1" checked> |
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_1" checked> |
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -936,8 +1000,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="true"> |
|||
<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="true"> |
|||
<label class="md-nav__title" for="__nav_6_1"> |
|||
<span class="md-nav__icon md-icon"></span> |
|||
Tutorials |
|||
</label> |
|||
@ -1025,6 +1089,21 @@ |
|||
</span> |
|||
</a> |
|||
|
|||
<nav class="md-nav" aria-label="Docker Compose"> |
|||
<ul class="md-nav__list"> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#watchtower" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Watchtower |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
@ -1153,12 +1232,12 @@ |
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../nginx/" class="md-nav__link"> |
|||
<a href="../podman-nft/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
NGINX |
|||
Podman + nftables |
|||
|
|||
</span> |
|||
|
|||
@ -1176,12 +1255,12 @@ |
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../podman/" class="md-nav__link"> |
|||
<a href="../traefik/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Podman |
|||
Traefik |
|||
|
|||
</span> |
|||
|
|||
@ -1192,6 +1271,64 @@ |
|||
|
|||
|
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<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> |
|||
|
|||
|
|||
|
|||
|
|||
@ -1199,12 +1336,12 @@ |
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../traefik/" class="md-nav__link"> |
|||
<a href="../../../guides/2fa/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Traefik |
|||
2FA |
|||
|
|||
</span> |
|||
|
|||
@ -1215,9 +1352,116 @@ |
|||
|
|||
|
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../guides/account/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Edit Account |
|||
|
|||
</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/clients/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Edit Client |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../guides/login/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Login |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../guides/setup/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Setup |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
@ -1261,6 +1505,21 @@ |
|||
</span> |
|||
</a> |
|||
|
|||
<nav class="md-nav" aria-label="Docker Compose"> |
|||
<ul class="md-nav__list"> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#watchtower" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Watchtower |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
@ -1317,10 +1576,39 @@ |
|||
|
|||
<h2 id="docker-compose"><a class="toclink" href="#docker-compose">Docker Compose</a></h2> |
|||
<p>With Docker Compose <code>wg-easy</code> can be updated with a single command:</p> |
|||
<p>Replace <code>$DIR</code> with the directory where your <code>docker-compose.yml</code> is located.</p> |
|||
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span><span class="nv">$DIR</span> |
|||
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/etc/docker/containers/wg-easy |
|||
sudo<span class="w"> </span>docker<span class="w"> </span>compose<span class="w"> </span>up<span class="w"> </span>-d<span class="w"> </span>--pull<span class="w"> </span>always |
|||
</code></pre></div> |
|||
<h3 id="watchtower"><a class="toclink" href="#watchtower">Watchtower</a></h3> |
|||
<p>If you want the updates to be fully automatic you can install Watchtower. This will check for updates every day at 4:00 AM and update the container if a new version is available.</p> |
|||
<p>File: <code>/etc/docker/containers/watchtower/docker-compose.yml</code></p> |
|||
<div class="highlight"><pre><span></span><code><span class="nt">services</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">watchtower</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">containrrr/watchtower:latest</span> |
|||
<span class="w"> </span><span class="nt">volumes</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/var/run/docker.sock:/var/run/docker.sock</span> |
|||
<span class="w"> </span><span class="nt">env_file</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">watchtower.env</span> |
|||
<span class="w"> </span><span class="nt">restart</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">unless-stopped</span> |
|||
</code></pre></div> |
|||
<p>File: <code>/etc/docker/containers/watchtower/watchtower.env</code></p> |
|||
<div class="highlight"><pre><span></span><code>WATCHTOWER_CLEANUP=true |
|||
WATCHTOWER_SCHEDULE=0 0 4 * * * |
|||
TZ=Europe/Berlin |
|||
|
|||
# Email |
|||
# WATCHTOWER_NOTIFICATIONS_LEVEL=info |
|||
# WATCHTOWER_NOTIFICATIONS=email |
|||
# [email protected] |
|||
# [email protected] |
|||
# WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.example.com |
|||
# [email protected] |
|||
# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD="SuperSecurePassword" |
|||
# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 |
|||
</code></pre></div> |
|||
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/etc/docker/containers/watchtower |
|||
sudo<span class="w"> </span>docker<span class="w"> </span>compose<span class="w"> </span>up<span class="w"> </span>-d |
|||
</code></pre></div> |
|||
<h2 id="docker-run"><a class="toclink" href="#docker-run">Docker Run</a></h2> |
|||
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>docker<span class="w"> </span>stop<span class="w"> </span>wg-easy |
|||
sudo<span class="w"> </span>docker<span class="w"> </span>rm<span class="w"> </span>wg-easy |
|||
|
File diff suppressed because one or more lines are too long
@ -15,12 +15,14 @@ |
|||
<link rel="canonical" href="https://wg-easy.github.io/wg-easy/Pre-release/examples/tutorials/traefik/"> |
|||
|
|||
|
|||
<link rel="prev" href="../podman/"> |
|||
<link rel="prev" href="../podman-nft/"> |
|||
|
|||
|
|||
<link rel="next" href="../../../guides/2fa/"> |
|||
|
|||
|
|||
<link rel="icon" href="../../../assets/logo/favicon.png"> |
|||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.10"> |
|||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.11"> |
|||
|
|||
|
|||
|
|||
@ -75,6 +77,11 @@ |
|||
<label class="md-overlay" for="__drawer"></label> |
|||
<div data-md-component="skip"> |
|||
|
|||
|
|||
<a href="#create-docker-compose-project" class="md-skip"> |
|||
Skip to content |
|||
</a> |
|||
|
|||
</div> |
|||
<div data-md-component="announce"> |
|||
|
|||
@ -146,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"> |
|||
@ -182,6 +191,7 @@ |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div class="md-header__source"> |
|||
@ -234,6 +244,25 @@ |
|||
|
|||
|
|||
|
|||
<li class="md-tabs__item"> |
|||
<a href="../../../faq/" class="md-tabs__link"> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
FAQ |
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-tabs__item"> |
|||
<a href="../../../getting-started/" class="md-tabs__link"> |
|||
|
|||
@ -322,6 +351,26 @@ |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-tabs__item"> |
|||
<a href="../../../guides/2fa/" class="md-tabs__link"> |
|||
|
|||
|
|||
|
|||
Guides |
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
</ul> |
|||
</div> |
|||
</nav> |
|||
@ -394,6 +443,28 @@ |
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../faq/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
FAQ |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../getting-started/" class="md-nav__link"> |
|||
|
|||
@ -430,10 +501,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -446,8 +517,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> |
|||
@ -496,10 +567,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -512,8 +583,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> |
|||
@ -593,10 +664,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -609,8 +680,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> |
|||
@ -667,10 +738,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -683,8 +754,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> |
|||
@ -771,10 +842,10 @@ |
|||
|
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -787,8 +858,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> |
|||
@ -870,10 +941,10 @@ |
|||
|
|||
|
|||
|
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked> |
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked> |
|||
|
|||
|
|||
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex=""> |
|||
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex=""> |
|||
|
|||
|
|||
|
|||
@ -886,8 +957,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="true"> |
|||
<label class="md-nav__title" for="__nav_5"> |
|||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true"> |
|||
<label class="md-nav__title" for="__nav_6"> |
|||
<span class="md-nav__icon md-icon"></span> |
|||
Examples |
|||
</label> |
|||
@ -913,10 +984,10 @@ |
|||
|
|||
|
|||
|
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_1" checked> |
|||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_1" checked> |
|||
|
|||
|
|||
<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"> |
|||
|
|||
|
|||
|
|||
@ -929,8 +1000,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="true"> |
|||
<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="true"> |
|||
<label class="md-nav__title" for="__nav_6_1"> |
|||
<span class="md-nav__icon md-icon"></span> |
|||
Tutorials |
|||
</label> |
|||
@ -1081,12 +1152,12 @@ |
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../nginx/" class="md-nav__link"> |
|||
<a href="../podman-nft/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
NGINX |
|||
Podman + nftables |
|||
|
|||
</span> |
|||
|
|||
@ -1101,59 +1172,335 @@ |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../podman/" class="md-nav__link"> |
|||
<li class="md-nav__item md-nav__item--active"> |
|||
|
|||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> |
|||
|
|||
|
|||
|
|||
<label class="md-nav__link md-nav__link--active" for="__toc"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Traefik |
|||
|
|||
</span> |
|||
|
|||
|
|||
<span class="md-nav__icon md-icon"></span> |
|||
</label> |
|||
|
|||
<a href="./" class="md-nav__link md-nav__link--active"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Podman |
|||
Traefik |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
|
|||
|
|||
|
|||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents"> |
|||
|
|||
|
|||
|
|||
|
|||
<label class="md-nav__title" for="__toc"> |
|||
<span class="md-nav__icon md-icon"></span> |
|||
Table of contents |
|||
</label> |
|||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-docker-compose-project" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create docker compose project |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-docker-compose-file" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create docker compose file |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-traefikyml" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create traefik.yml |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-traefik_dynamicyml" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create traefik_dynamic.yml |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-acmejson" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create acme.json |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-network" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create network |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#start-traefik" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Start traefik |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#add-labels-to-wg-easy" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Add Labels to wg-easy |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#restart-wg-easy" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Restart wg-easy |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
</ul> |
|||
|
|||
</nav> |
|||
|
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item md-nav__item--active"> |
|||
|
|||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc"> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item md-nav__item--nested"> |
|||
|
|||
<a href="./" class="md-nav__link md-nav__link--active"> |
|||
|
|||
|
|||
|
|||
|
|||
<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"> |
|||
Traefik |
|||
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> |
|||
|
|||
|
|||
|
|||
|
|||
</ul> |
|||
</nav> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../guides/account/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Edit Account |
|||
|
|||
</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/clients/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Edit Client |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../guides/login/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Login |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="../../../guides/setup/" class="md-nav__link"> |
|||
|
|||
|
|||
|
|||
<span class="md-ellipsis"> |
|||
Setup |
|||
|
|||
</span> |
|||
|
|||
|
|||
</a> |
|||
</li> |
|||
|
|||
|
|||
@ -1184,6 +1531,95 @@ |
|||
|
|||
|
|||
|
|||
<label class="md-nav__title" for="__toc"> |
|||
<span class="md-nav__icon md-icon"></span> |
|||
Table of contents |
|||
</label> |
|||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-docker-compose-project" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create docker compose project |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-docker-compose-file" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create docker compose file |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-traefikyml" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create traefik.yml |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-traefik_dynamicyml" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create traefik_dynamic.yml |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-acmejson" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create acme.json |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#create-network" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Create network |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#start-traefik" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Start traefik |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#add-labels-to-wg-easy" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Add Labels to wg-easy |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
<li class="md-nav__item"> |
|||
<a href="#restart-wg-easy" class="md-nav__link"> |
|||
<span class="md-ellipsis"> |
|||
Restart wg-easy |
|||
</span> |
|||
</a> |
|||
|
|||
</li> |
|||
|
|||
</ul> |
|||
|
|||
</nav> |
|||
</div> |
|||
</div> |
|||
@ -1216,7 +1652,152 @@ |
|||
|
|||
<h1>Traefik</h1> |
|||
|
|||
<p>TODO</p> |
|||
<div class="admonition note"> |
|||
<p class="admonition-title">Opinionated</p> |
|||
<p>This guide is opinionated. If you use other conventions or folder layouts, feel free to change the commands and paths.</p> |
|||
</div> |
|||
<h2 id="create-docker-compose-project"><a class="toclink" href="#create-docker-compose-project">Create docker compose project</a></h2> |
|||
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span>/etc/docker/containers/traefik |
|||
<span class="nb">cd</span><span class="w"> </span>/etc/docker/containers/traefik |
|||
</code></pre></div> |
|||
<h2 id="create-docker-compose-file"><a class="toclink" href="#create-docker-compose-file">Create docker compose file</a></h2> |
|||
<p>File: <code>/etc/docker/containers/traefik/docker-compose.yml</code></p> |
|||
<div class="highlight"><pre><span></span><code><span class="nt">services</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">traefik</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">traefik:3.3</span> |
|||
<span class="w"> </span><span class="nt">container_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">traefik</span> |
|||
<span class="w"> </span><span class="nt">restart</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">unless-stopped</span> |
|||
<span class="w"> </span><span class="nt">ports</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"80:80"</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"443:443/tcp"</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"443:443/udp"</span> |
|||
<span class="w"> </span><span class="nt">volumes</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/var/run/docker.sock:/var/run/docker.sock</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/etc/docker/volumes/traefik/traefik.yml:/traefik.yml:ro</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/etc/docker/volumes/traefik/traefik_dynamic.yml:/traefik_dynamic.yml:ro</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/etc/docker/volumes/traefik/acme.json:/acme.json</span> |
|||
<span class="w"> </span><span class="nt">networks</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">traefik</span> |
|||
|
|||
<span class="nt">networks</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">traefik</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">external</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
|||
</code></pre></div> |
|||
<h2 id="create-traefikyml"><a class="toclink" href="#create-traefikyml">Create traefik.yml</a></h2> |
|||
<p>File: <code>/etc/docker/volumes/traefik/traefik.yml</code></p> |
|||
<div class="highlight"><pre><span></span><code><span class="nt">log</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">level</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">INFO</span> |
|||
|
|||
<span class="nt">entryPoints</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">web</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">address</span><span class="p">:</span><span class="w"> </span><span class="s">":80/tcp"</span> |
|||
<span class="w"> </span><span class="nt">http</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">redirections</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">entryPoint</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">to</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">websecure</span> |
|||
<span class="w"> </span><span class="nt">scheme</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https</span> |
|||
<span class="w"> </span><span class="nt">websecure</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">address</span><span class="p">:</span><span class="w"> </span><span class="s">":443/tcp"</span> |
|||
<span class="w"> </span><span class="nt">http</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">middlewares</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">compress@file</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">hsts@file</span> |
|||
<span class="w"> </span><span class="nt">tls</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">certResolver</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">letsencrypt</span> |
|||
<span class="w"> </span><span class="nt">http3</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">{}</span> |
|||
|
|||
<span class="nt">api</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">dashboard</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
|||
|
|||
<span class="nt">certificatesResolvers</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">letsencrypt</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">acme</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">email</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">[email protected]$</span> |
|||
<span class="w"> </span><span class="nt">storage</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">acme.json</span> |
|||
<span class="w"> </span><span class="nt">httpChallenge</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">entryPoint</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">web</span> |
|||
|
|||
<span class="nt">providers</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">docker</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">watch</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
|||
<span class="w"> </span><span class="nt">network</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">traefik</span> |
|||
<span class="w"> </span><span class="nt">exposedByDefault</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span> |
|||
<span class="w"> </span><span class="nt">file</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">traefik_dynamic.yml</span> |
|||
|
|||
<span class="nt">serversTransport</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">insecureSkipVerify</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
|||
</code></pre></div> |
|||
<h2 id="create-traefik_dynamicyml"><a class="toclink" href="#create-traefik_dynamicyml">Create traefik_dynamic.yml</a></h2> |
|||
<p>File: <code>/etc/docker/volumes/traefik/traefik_dynamic.yml</code></p> |
|||
<div class="highlight"><pre><span></span><code><span class="nt">http</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">middlewares</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">services</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">basicAuth</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">users</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"$username$:$password$"</span> |
|||
<span class="w"> </span><span class="nt">compress</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">compress</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">{}</span> |
|||
<span class="w"> </span><span class="nt">hsts</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">headers</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">stsSeconds</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2592000</span> |
|||
<span class="w"> </span><span class="nt">routers</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">api</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">rule</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Host(`traefik.$example.com$`)</span> |
|||
<span class="w"> </span><span class="nt">entrypoints</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">websecure</span> |
|||
<span class="w"> </span><span class="nt">middlewares</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">services</span> |
|||
<span class="w"> </span><span class="nt">service</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">api@internal</span> |
|||
|
|||
<span class="nt">tls</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">options</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">default</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">cipherSuites</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256</span> |
|||
<span class="w"> </span><span class="nt">sniStrict</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
|||
</code></pre></div> |
|||
<h2 id="create-acmejson"><a class="toclink" href="#create-acmejson">Create acme.json</a></h2> |
|||
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>touch<span class="w"> </span>/etc/docker/volumes/traefik/acme.json |
|||
sudo<span class="w"> </span>chmod<span class="w"> </span><span class="m">600</span><span class="w"> </span>/etc/docker/volumes/traefik/acme.json |
|||
</code></pre></div> |
|||
<h2 id="create-network"><a class="toclink" href="#create-network">Create network</a></h2> |
|||
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>docker<span class="w"> </span>network<span class="w"> </span>create<span class="w"> </span>traefik |
|||
</code></pre></div> |
|||
<h2 id="start-traefik"><a class="toclink" href="#start-traefik">Start traefik</a></h2> |
|||
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>docker-compose<span class="w"> </span>up<span class="w"> </span>-d |
|||
</code></pre></div> |
|||
<p>You can no access the Traefik dashboard at <code>https://traefik.$example.com$</code> with the credentials you set in <code>traefik_dynamic.yml</code>.</p> |
|||
<h2 id="add-labels-to-wg-easy"><a class="toclink" href="#add-labels-to-wg-easy">Add Labels to <code>wg-easy</code></a></h2> |
|||
<p>To add labels to your <code>wg-easy</code> service, you can add the following to your <code>docker-compose.yml</code> file:</p> |
|||
<p>File: <code>/etc/docker/containers/wg-easy/docker-compose.yml</code></p> |
|||
<div class="highlight"><pre><span></span><code><span class="nt">services</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="nt">wg-easy</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">...</span> |
|||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">container_name</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wg-easy</span> |
|||
<span class="w"> </span><span class="nt">networks</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">...</span> |
|||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">traefik</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="p p-Indicator">{}</span> |
|||
<span class="w"> </span><span class="nt">labels</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"traefik.enable=true"</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"traefik.http.routers.wg-easy.rule=Host(`wg-easy.$example.com$`)"</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"traefik.http.routers.wg-easy.entrypoints=websecure"</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"traefik.http.routers.wg-easy.service=wg-easy"</span> |
|||
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">"traefik.http.services.wg-easy.loadbalancer.server.port=51821"</span> |
|||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">...</span> |
|||
|
|||
<span class="nt">networks</span><span class="p">:</span> |
|||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">...</span> |
|||
<span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">traefik</span><span class="p p-Indicator">:</span> |
|||
<span class="w"> </span><span class="nt">external</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span> |
|||
</code></pre></div> |
|||
<h2 id="restart-wg-easy"><a class="toclink" href="#restart-wg-easy">Restart <code>wg-easy</code></a></h2> |
|||
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/etc/docker/containers/wg-easy |
|||
sudo<span class="w"> </span>docker-compose<span class="w"> </span>up<span class="w"> </span>-d |
|||
</code></pre></div> |
|||
<p>You can now access <code>wg-easy</code> at <code>https://wg-easy.$example.com$</code> and start the setup.</p> |
|||
|
|||
|
|||
|
|||
|
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because one or more lines are too long
Binary file not shown.
Loading…
Reference in new issue