add github page

This commit is contained in:
Eduardo Silva
2026-03-18 22:17:13 -03:00
parent 35fa484972
commit 30074e5bd6
64 changed files with 705 additions and 10 deletions

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=en-us><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Categories · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/categories/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/categories/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/categories/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/categories/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/categories/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/categories/"><meta property="og:title" content="Categories · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Categories · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/>Home</a></li><li><a href=/zero-trust/>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/>Get Involved</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇬🇧 EN
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/categories/ hreflang=en class=lang-active><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/categories/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/categories/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/categories/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/categories/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Categories</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/zero-trust/>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/>Get Involved</a></li></ul><div class=footer-built>built by <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on wireguard_webadmin</title><link>https://wireguard-webadmin.com/categories/</link><description>Recent content in Categories on wireguard_webadmin</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://wireguard-webadmin.com/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

1
docs/css/main.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=de><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Categories · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/categories/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/categories/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/categories/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/categories/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/categories/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/de/categories/"><meta property="og:title" content="Categories · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Categories · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/de/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/de/>Start</a></li><li><a href=/de/zero-trust/>Zero Trust</a></li><li><a href=/de/deployment/>Installation</a></li><li><a href=/de/get-involved/>Mitmachen</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇩🇪 DE
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/categories/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/categories/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/categories/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/categories/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/categories/ hreflang=de class=lang-active><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Categories</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/de/zero-trust/>Zero Trust</a></li><li><a href=/de/deployment/>Deployment</a></li><li><a href=/de/get-involved/>Get Involved</a></li></ul><div class=footer-built>entwickelt von <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on wireguard_webadmin</title><link>https://wireguard-webadmin.com/de/categories/</link><description>Recent content in Categories on wireguard_webadmin</description><generator>Hugo</generator><language>de</language><atom:link href="https://wireguard-webadmin.com/de/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=de><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Mitmachen · wireguard_webadmin</title><meta name=description content="Möglichkeiten, zu wireguard_webadmin beizutragen: Fehler melden, Code schreiben oder das Projekt einfach weiterempfehlen."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/get-involved/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/get-involved/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/get-involved/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/get-involved/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/get-involved/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/de/get-involved/"><meta property="og:title" content="Mitmachen · wireguard_webadmin"><meta property="og:description" content="Möglichkeiten, zu wireguard_webadmin beizutragen: Fehler melden, Code schreiben oder das Projekt einfach weiterempfehlen."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Mitmachen · wireguard_webadmin"><meta name=twitter:description content="Möglichkeiten, zu wireguard_webadmin beizutragen: Fehler melden, Code schreiben oder das Projekt einfach weiterempfehlen."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/de/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/de/>Start</a></li><li><a href=/de/zero-trust/>Zero Trust</a></li><li><a href=/de/deployment/>Installation</a></li><li><a href=/de/get-involved/ aria-current=page>Mitmachen</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇩🇪 DE
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/get-involved/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/get-involved/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/get-involved/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/get-involved/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/get-involved/ hreflang=de class=lang-active><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Open Source</div><h1>Mitmachen</h1><p class=section-sub style=margin-top:1rem>wireguard_webadmin wird offen entwickelt. Jeder Beitrag hilft, egal wie groß oder klein er ist.</p></div></section><div class=page-content><div class=container><div class=involve-grid><div class="involve-card involve-card--highlight"><div class=involve-card-icon></div><h3>Repository mit einem Stern markieren</h3><p>Das Einfachste, was Sie tun können. Es hilft dem Projekt, von anderen Sysadmins entdeckt zu werden, die genau nach so etwas suchen.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class="btn btn-primary">Auf GitHub markieren</a></div><div class=involve-card><div class=involve-card-icon>🐛</div><h3>Fehler melden</h3><p>Etwas funktioniert nicht? Öffnen Sie ein Issue auf GitHub. Kein Template nötig, beschreiben Sie einfach, was Sie gesehen haben und wie man es reproduzieren kann.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/issues target=_blank rel=noopener class="btn btn-outline">Issue öffnen</a></div><div class=involve-card><div class=involve-card-icon>🔧</div><h3>Code beitragen</h3><p>Pull Requests sind willkommen. Bei allem, was nicht ganz trivial ist, öffnen Sie bitte zuerst ein Issue, damit wir uns abstimmen können, bevor Sie Zeit in Code investieren. Gute Einstiege sind mit <code>good first issue</code> markierte Tickets, Bugfixes mit klarer Reproduktion und zusätzliche Tests.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/pulls target=_blank rel=noopener class="btn btn-outline">Offene PRs ansehen</a></div><div class=involve-card><div class=involve-card-icon>💬</div><h3>An der Diskussion teilnehmen</h3><p>Sie betreiben ein interessantes Setup? Sind auf einen Sonderfall gestoßen? GitHub Discussions ist der richtige Ort für Fragen, Ideen und Anwendungsfälle, die nicht sauber in ein Issue passen.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener class="btn btn-outline">Zu Discussions</a></div></div><div class=involve-footer><h4>Erzählen Sie anderen davon</h4><p>Schreiben Sie einen Blogbeitrag. Teilen Sie es mit Ihrem Team. Erwähnen Sie das Projekt dort, wo jemand fragt, wie man WireGuard verwalten kann. Solche organische Reichweite ist wertvoller als jede Werbekampagne.</p></div></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/de/zero-trust/>Zero Trust</a></li><li><a href=/de/deployment/>Deployment</a></li><li><a href=/de/get-involved/>Get Involved</a></li></ul><div class=footer-built>entwickelt von <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

14
docs/de/index.html Normal file

File diff suppressed because one or more lines are too long

55
docs/de/index.xml Normal file
View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>wireguard_webadmin</title><link>https://wireguard-webadmin.com/de/</link><description>Recent content on wireguard_webadmin</description><generator>Hugo</generator><language>de</language><atom:link href="https://wireguard-webadmin.com/de/index.xml" rel="self" type="application/rss+xml"/><item><title>Installationsanleitung</title><link>https://wireguard-webadmin.com/de/deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/de/deployment/</guid><description>&lt;h2 id="voraussetzungen"&gt;Voraussetzungen&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ein Linux-Server, der von dem Ort aus erreichbar ist, von dem Sie ihn verwalten&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/engine/install/"&gt;Docker&lt;/a&gt; und &lt;a href="https://docs.docker.com/compose/install/"&gt;Docker Compose&lt;/a&gt; installiert&lt;/li&gt;
&lt;li&gt;Ein Domainname, der auf die IP Ihres Servers zeigt&lt;/li&gt;
&lt;li&gt;Die Ports &lt;strong&gt;80&lt;/strong&gt; und &lt;strong&gt;443&lt;/strong&gt; offen für Caddy sowie der WireGuard-UDP-Port offen (standardmäßig &lt;strong&gt;51820&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="callout"&gt;
&lt;p&gt;&lt;strong&gt;Caddy benötigt einen gültigen DNS-Namen&lt;/strong&gt;, intern oder öffentlich, der auf Ihren Server zeigt, damit SSL-Zertifikate automatisch bezogen und erneuert werden können.&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="bereitstellung"&gt;Bereitstellung&lt;/h2&gt;
&lt;div class="tab-group"&gt;
&lt;div class="tabs"&gt;
&lt;button class="tab-btn active" data-tab="dep-step-1"&gt;1. Verzeichnis erstellen&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-2"&gt;2. Compose-Datei abrufen&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-3"&gt;3. .env konfigurieren&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-4"&gt;4. Starten&lt;/button&gt;
&lt;/div&gt;
&lt;div class="tab-wrap"&gt;
&lt;div class="tab-panel active" id="dep-step-1"&gt;
&lt;pre&gt;&lt;code&gt;mkdir wireguard_webadmin &amp;&amp; cd wireguard_webadmin&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-2"&gt;
&lt;pre&gt;&lt;code&gt;wget -O docker-compose.yml \
https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-3"&gt;
&lt;p&gt;Erstellen Sie im selben Verzeichnis eine Datei namens &lt;code&gt;.env&lt;/code&gt;. Setzen Sie &lt;code&gt;SERVER_ADDRESS&lt;/code&gt; auf Ihre Domain:&lt;/p&gt;</description></item><item><title>Mitmachen</title><link>https://wireguard-webadmin.com/de/get-involved/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/de/get-involved/</guid><description>&lt;div class="involve-grid"&gt;
&lt;div class="involve-card involve-card--highlight"&gt;
&lt;div class="involve-card-icon"&gt;&lt;/div&gt;
&lt;h3&gt;Repository mit einem Stern markieren&lt;/h3&gt;
&lt;p&gt;Das Einfachste, was Sie tun können. Es hilft dem Projekt, von anderen Sysadmins entdeckt zu werden, die genau nach so etwas suchen.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin" target="_blank" rel="noopener" class="btn btn-primary"&gt;Auf GitHub markieren&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🐛&lt;/div&gt;
&lt;h3&gt;Fehler melden&lt;/h3&gt;
&lt;p&gt;Etwas funktioniert nicht? Öffnen Sie ein Issue auf GitHub. Kein Template nötig, beschreiben Sie einfach, was Sie gesehen haben und wie man es reproduzieren kann.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin/issues" target="_blank" rel="noopener" class="btn btn-outline"&gt;Issue öffnen&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🔧&lt;/div&gt;
&lt;h3&gt;Code beitragen&lt;/h3&gt;
&lt;p&gt;Pull Requests sind willkommen. Bei allem, was nicht ganz trivial ist, öffnen Sie bitte zuerst ein Issue, damit wir uns abstimmen können, bevor Sie Zeit in Code investieren. Gute Einstiege sind mit &lt;code&gt;good first issue&lt;/code&gt; markierte Tickets, Bugfixes mit klarer Reproduktion und zusätzliche Tests.&lt;/p&gt;</description></item><item><title>Zero-Trust-Anwendungsgateway</title><link>https://wireguard-webadmin.com/de/zero-trust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/de/zero-trust/</guid><description>&lt;h2 id="was-bedeutet-zero-trust-hier"&gt;Was bedeutet Zero Trust hier?&lt;/h2&gt;
&lt;p&gt;Traditionelle Netzwerksicherheit geht davon aus, dass alles innerhalb Ihres Netzwerks vertrauenswürdig ist.
Zero Trust dreht dieses Modell um: &lt;strong&gt;Keine Anfrage wird standardmäßig vertraut&lt;/strong&gt;, selbst wenn sie aus dem VPN kommt.&lt;/p&gt;
&lt;p&gt;In wireguard_webadmin sitzt das Zero-Trust-Application-Gateway vor Ihren internen Diensten.
Jede Anfrage muss sich authentifizieren, bevor sie die Anwendung erreicht. Der Dienst selbst muss niemals direkt veröffentlicht werden.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="so-läuft-eine-anfrage-ab"&gt;So läuft eine Anfrage ab&lt;/h2&gt;
&lt;div class="flow-cards"&gt;
&lt;div class="flow-card"&gt;
&lt;div class="flow-card-header"&gt;&lt;span class="flow-card-num"&gt;1&lt;/span&gt; &lt;strong&gt;Client erreicht das Gateway&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;Der öffentliche Endpunkt empfängt die Anfrage anstelle des internen Dienstes.&lt;/p&gt;</description></item></channel></rss>

1
docs/de/sitemap.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://wireguard-webadmin.com/de/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/"/></url><url><loc>https://wireguard-webadmin.com/de/categories/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/categories/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/categories/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/categories/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/categories/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/categories/"/></url><url><loc>https://wireguard-webadmin.com/de/deployment/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/deployment/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/deployment/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/deployment/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/deployment/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/deployment/"/></url><url><loc>https://wireguard-webadmin.com/de/get-involved/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/get-involved/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/get-involved/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/get-involved/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/get-involved/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/get-involved/"/></url><url><loc>https://wireguard-webadmin.com/de/tags/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/tags/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/tags/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/tags/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/tags/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/tags/"/></url><url><loc>https://wireguard-webadmin.com/de/zero-trust/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/zero-trust/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/zero-trust/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/zero-trust/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/zero-trust/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/zero-trust/"/></url></urlset>

11
docs/de/tags/index.html Normal file
View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=de><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Tags · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/tags/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/tags/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/tags/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/tags/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/tags/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/de/tags/"><meta property="og:title" content="Tags · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Tags · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/de/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/de/>Start</a></li><li><a href=/de/zero-trust/>Zero Trust</a></li><li><a href=/de/deployment/>Installation</a></li><li><a href=/de/get-involved/>Mitmachen</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇩🇪 DE
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/tags/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/tags/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/tags/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/tags/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/tags/ hreflang=de class=lang-active><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Tags</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/de/zero-trust/>Zero Trust</a></li><li><a href=/de/deployment/>Deployment</a></li><li><a href=/de/get-involved/>Get Involved</a></li></ul><div class=footer-built>entwickelt von <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

1
docs/de/tags/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on wireguard_webadmin</title><link>https://wireguard-webadmin.com/de/tags/</link><description>Recent content in Tags on wireguard_webadmin</description><generator>Hugo</generator><language>de</language><atom:link href="https://wireguard-webadmin.com/de/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,16 @@
<!doctype html><html lang=de><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Zero-Trust-Anwendungsgateway · wireguard_webadmin</title><meta name=description content="Erfahren Sie, wie wireguard_webadmin Zero-Trust-Zugriffskontrolle implementiert, um interne Apps wie Grafana, Proxmox und mehr sicher zu veröffentlichen."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/zero-trust/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/zero-trust/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/zero-trust/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/zero-trust/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/zero-trust/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/de/zero-trust/"><meta property="og:title" content="Zero-Trust-Anwendungsgateway · wireguard_webadmin"><meta property="og:description" content="Erfahren Sie, wie wireguard_webadmin Zero-Trust-Zugriffskontrolle implementiert, um interne Apps wie Grafana, Proxmox und mehr sicher zu veröffentlichen."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Zero-Trust-Anwendungsgateway · wireguard_webadmin"><meta name=twitter:description content="Erfahren Sie, wie wireguard_webadmin Zero-Trust-Zugriffskontrolle implementiert, um interne Apps wie Grafana, Proxmox und mehr sicher zu veröffentlichen."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/de/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/de/>Start</a></li><li><a href=/de/zero-trust/ aria-current=page>Zero Trust</a></li><li><a href=/de/deployment/>Installation</a></li><li><a href=/de/get-involved/>Mitmachen</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇩🇪 DE
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/zero-trust/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/zero-trust/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/zero-trust/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/zero-trust/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/zero-trust/ hreflang=de class=lang-active><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Zero Trust</div><h1>Zero-Trust-Anwendungsgateway</h1><p class=section-sub style=margin-top:1rem>Veröffentlichen Sie interne Dienste sicher, ohne sie dem Internet direkt auszusetzen.</p></div></section><div class=page-content><div class=container><h2 id=was-bedeutet-zero-trust-hier>Was bedeutet Zero Trust hier?</h2><p>Traditionelle Netzwerksicherheit geht davon aus, dass alles innerhalb Ihres Netzwerks vertrauenswürdig ist.
Zero Trust dreht dieses Modell um: <strong>Keine Anfrage wird standardmäßig vertraut</strong>, selbst wenn sie aus dem VPN kommt.</p><p>In wireguard_webadmin sitzt das Zero-Trust-Application-Gateway vor Ihren internen Diensten.
Jede Anfrage muss sich authentifizieren, bevor sie die Anwendung erreicht. Der Dienst selbst muss niemals direkt veröffentlicht werden.</p><hr><h2 id=so-läuft-eine-anfrage-ab>So läuft eine Anfrage ab</h2><div class=flow-cards><div class=flow-card><div class=flow-card-header><span class=flow-card-num>1</span> <strong>Client erreicht das Gateway</strong></div><p>Der öffentliche Endpunkt empfängt die Anfrage anstelle des internen Dienstes.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>2</span> <strong>Browser-Validierung</strong></div><p>Altcha-Proof-of-Work kann automatisierten Missbrauch noch vor Beginn des Logins herausfordern.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>3</span> <strong>Identitätsprüfungen</strong></div><p>Zugangsdaten, TOTP und Richtlinien für die Quell-IP werden geprüft.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>4</span> <strong>An Upstream weiterleiten</strong></div><p>Nur freigegebene Anfragen werden an Grafana, Proxmox oder eine andere interne App weitergeleitet.</p></div></div><hr><h2 id=authentifizierungsmethoden>Authentifizierungsmethoden</h2><div class=auth-list><div class=auth-row><div class=auth-row-name>TOTP / 2FA</div><div class=auth-row-desc>Zeitbasierte Einmalpasswörter. Funktioniert mit jeder TOTP-App, etwa Google Authenticator, Aegis oder Authy.</div></div><div class=auth-row><div class=auth-row-name>Lokale Zugangsdaten</div><div class=auth-row-desc>Benutzername und Passwort werden direkt in wireguard_webadmin verwaltet. Kein externer IdP nötig.</div></div><div class=auth-row><div class=auth-row-name>IP-ACL</div><div class=auth-row-desc>Whitelist für bestimmte IPs oder Subnetze. VPN-Peers können anhand ihrer Tunnel-Adresse automatisch als vertrauenswürdig gelten.</div></div><div class=auth-row><div class=auth-row-name>OIDC <span class=auth-coming>demnächst verfügbar</span></div><div class=auth-row-desc>Delegieren Sie die Authentifizierung an Keycloak, Authentik, Google Workspace oder einen anderen OIDC-kompatiblen Anbieter.</div></div></div><hr><h2 id=schutz-vor-brute-force-altcha-proof-of-work>Schutz vor Brute Force: Altcha Proof-of-Work</h2><p>Bevor überhaupt ein Login-Formular angezeigt wird, muss der Browser eine leichte rechnerische Aufgabe lösen
(<a href=https://altcha.org/ target=_blank rel=noopener>Altcha</a>).</p><p>Das erzeugt praktisch keine Reibung für echte Nutzerinnen und Nutzer, da moderne Hardware die Aufgabe in Millisekunden löst,
macht automatisierte Credential-Stuffing-Angriffe im großen Maßstab aber rechnerisch teuer.</p><div class=callout><p><strong>Mehrschichtiger Schutz:</strong> Ein Rate Limiting ist bereits aktiv. Proof-of-Work ergänzt es: Während Rate Limiting das Anfragevolumen pro IP begrenzt, fügt Altcha für jede Anfrage einen Rechenaufwand hinzu, der verteilte Angriffe teuer macht, unabhängig davon, wie viele Quell-IPs beteiligt sind.</p></div><hr><h2 id=anwendungsfälle>Anwendungsfälle</h2><ul><li>Stellen Sie <strong>Grafana</strong> Ihrem Team bereit, ohne Port 3000 ins Internet zu öffnen</li><li>Veröffentlichen Sie eine <strong>Proxmox</strong>-Webkonsole hinter TOTP, die nur aus Ihrem VPN erreichbar ist</li><li>Teilen Sie eine <strong>selbst gehostete App</strong> mit einem Kunden oder einer Kundin über zeitlich begrenzte Zugangsdaten</li><li>Schützen Sie jeden <strong>internen HTTP-Dienst</strong>, ohne seine Konfiguration anzufassen</li></ul><div class="callout green"><p><strong>Keine Änderungen an der App erforderlich.</strong> Der Gatekeeper proxyt die Anfrage transparent weiter.
Ihr interner Dienst muss keine Authentifizierung implementieren, das übernimmt das Gateway.</p></div><hr><p>VPN-Verwaltung und Application Gateway laufen als ein einziger selbst gehosteter Stack. Kein Konto bei einem Drittanbieter, keine Abhängigkeit von ausgehenden Tunneln, kein Traffic, der Ihre Infrastruktur verlässt.</p></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/de/zero-trust/>Zero Trust</a></li><li><a href=/de/deployment/>Deployment</a></li><li><a href=/de/get-involved/>Get Involved</a></li></ul><div class=footer-built>entwickelt von <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

File diff suppressed because one or more lines are too long

1
docs/en/index.html Normal file
View File

@@ -0,0 +1 @@
<!doctype html><html lang=en-us><head><title>https://wireguard-webadmin.com/</title><link rel=canonical href=https://wireguard-webadmin.com/><meta charset=utf-8><meta http-equiv=refresh content="0; url=https://wireguard-webadmin.com/"></head></html>

1
docs/en/sitemap.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://wireguard-webadmin.com/</loc><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/"/><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/"/></url><url><loc>https://wireguard-webadmin.com/categories/</loc><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/categories/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/categories/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/categories/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/categories/"/><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/categories/"/></url><url><loc>https://wireguard-webadmin.com/deployment/</loc><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/deployment/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/deployment/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/deployment/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/deployment/"/><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/deployment/"/></url><url><loc>https://wireguard-webadmin.com/get-involved/</loc><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/get-involved/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/get-involved/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/get-involved/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/get-involved/"/><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/get-involved/"/></url><url><loc>https://wireguard-webadmin.com/tags/</loc><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/tags/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/tags/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/tags/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/tags/"/><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/tags/"/></url><url><loc>https://wireguard-webadmin.com/zero-trust/</loc><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/zero-trust/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/zero-trust/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/zero-trust/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/zero-trust/"/><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/zero-trust/"/></url></urlset>

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=es><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Categories · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/categories/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/categories/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/categories/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/categories/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/categories/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/es/categories/"><meta property="og:title" content="Categories · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Categories · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/es/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/es/>Inicio</a></li><li><a href=/es/zero-trust/>Zero Trust</a></li><li><a href=/es/deployment/>Instalación</a></li><li><a href=/es/get-involved/>Contribuir</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇪🇸 ES
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/categories/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/categories/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/categories/ hreflang=es class=lang-active><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/categories/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/categories/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Categories</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/es/zero-trust/>Zero Trust</a></li><li><a href=/es/deployment/>Deployment</a></li><li><a href=/es/get-involved/>Get Involved</a></li></ul><div class=footer-built>desarrollado por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on wireguard_webadmin</title><link>https://wireguard-webadmin.com/es/categories/</link><description>Recent content in Categories on wireguard_webadmin</description><generator>Hugo</generator><language>es</language><atom:link href="https://wireguard-webadmin.com/es/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=es><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Participa · wireguard_webadmin</title><meta name=description content="Formas de contribuir a wireguard_webadmin: reportar fallos, escribir código o simplemente difundir el proyecto."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/get-involved/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/get-involved/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/get-involved/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/get-involved/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/get-involved/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/es/get-involved/"><meta property="og:title" content="Participa · wireguard_webadmin"><meta property="og:description" content="Formas de contribuir a wireguard_webadmin: reportar fallos, escribir código o simplemente difundir el proyecto."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Participa · wireguard_webadmin"><meta name=twitter:description content="Formas de contribuir a wireguard_webadmin: reportar fallos, escribir código o simplemente difundir el proyecto."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/es/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/es/>Inicio</a></li><li><a href=/es/zero-trust/>Zero Trust</a></li><li><a href=/es/deployment/>Instalación</a></li><li><a href=/es/get-involved/ aria-current=page>Contribuir</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇪🇸 ES
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/get-involved/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/get-involved/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/get-involved/ hreflang=es class=lang-active><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/get-involved/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/get-involved/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Open Source</div><h1>Participa</h1><p class=section-sub style=margin-top:1rem>wireguard_webadmin se construye en abierto. Toda contribución ayuda, sin importar su tamaño.</p></div></section><div class=page-content><div class=container><div class=involve-grid><div class="involve-card involve-card--highlight"><div class=involve-card-icon></div><h3>Dale una estrella al repositorio</h3><p>Es lo más sencillo que puedes hacer. Ayuda a que otros sysadmins descubran el proyecto cuando están buscando exactamente algo así.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class="btn btn-primary">Dar estrella en GitHub</a></div><div class=involve-card><div class=involve-card-icon>🐛</div><h3>Reporta errores</h3><p>¿Encontraste algo roto? Abre un issue en GitHub. No hace falta plantilla: solo describe qué viste y cómo reproducirlo.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/issues target=_blank rel=noopener class="btn btn-outline">Abrir un issue</a></div><div class=involve-card><div class=involve-card-icon>🔧</div><h3>Contribuye con código</h3><p>Los pull requests son bienvenidos. Si no es algo trivial, abre primero un issue para alinearnos antes de que inviertas tiempo escribiendo código. Buenos puntos de partida: issues etiquetados como <code>good first issue</code>, correcciones con un caso de reproducción claro y cobertura de pruebas.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/pulls target=_blank rel=noopener class="btn btn-outline">Ver PR abiertas</a></div><div class=involve-card><div class=involve-card-icon>💬</div><h3>Únete a la conversación</h3><p>¿Tienes una instalación interesante? ¿Te encontraste con un caso límite? GitHub Discussions es el lugar para preguntas, ideas y usos que no encajan del todo en un issue.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener class="btn btn-outline">Ir a Discussions</a></div></div><div class=involve-footer><h4>Corre la voz</h4><p>Escribe una entrada de blog. Compártelo con tu equipo. Menciónalo cuando alguien pregunte cómo gestionar WireGuard. Ese alcance orgánico vale más que cualquier campaña publicitaria.</p></div></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/es/zero-trust/>Zero Trust</a></li><li><a href=/es/deployment/>Deployment</a></li><li><a href=/es/get-involved/>Get Involved</a></li></ul><div class=footer-built>desarrollado por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

14
docs/es/index.html Normal file

File diff suppressed because one or more lines are too long

49
docs/es/index.xml Normal file
View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>wireguard_webadmin</title><link>https://wireguard-webadmin.com/es/</link><description>Recent content on wireguard_webadmin</description><generator>Hugo</generator><language>es</language><atom:link href="https://wireguard-webadmin.com/es/index.xml" rel="self" type="application/rss+xml"/><item><title>Guía de despliegue</title><link>https://wireguard-webadmin.com/es/deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/es/deployment/</guid><description>&lt;h2 id="requisitos-previos"&gt;Requisitos previos&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Un servidor Linux accesible desde donde vayas a administrarlo&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/engine/install/"&gt;Docker&lt;/a&gt; y &lt;a href="https://docs.docker.com/compose/install/"&gt;Docker Compose&lt;/a&gt; instalados&lt;/li&gt;
&lt;li&gt;Un nombre de dominio apuntando a la IP de tu servidor&lt;/li&gt;
&lt;li&gt;Los puertos &lt;strong&gt;80&lt;/strong&gt; y &lt;strong&gt;443&lt;/strong&gt; abiertos para Caddy, y el puerto UDP de WireGuard abierto (por defecto &lt;strong&gt;51820&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="callout"&gt;
&lt;p&gt;&lt;strong&gt;Caddy necesita un nombre DNS válido&lt;/strong&gt;, interno o público, apuntando a tu servidor para poder obtener y renovar automáticamente los certificados SSL.&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="despliegue"&gt;Despliegue&lt;/h2&gt;
&lt;div class="tab-group"&gt;
&lt;div class="tabs"&gt;
&lt;button class="tab-btn active" data-tab="dep-step-1"&gt;1. Crear directorio&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-2"&gt;2. Obtener archivo compose&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-3"&gt;3. Configurar .env&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-4"&gt;4. Ejecutar&lt;/button&gt;
&lt;/div&gt;
&lt;div class="tab-wrap"&gt;
&lt;div class="tab-panel active" id="dep-step-1"&gt;
&lt;pre&gt;&lt;code&gt;mkdir wireguard_webadmin &amp;&amp; cd wireguard_webadmin&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-2"&gt;
&lt;pre&gt;&lt;code&gt;wget -O docker-compose.yml \
https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-3"&gt;
&lt;p&gt;Crea un archivo &lt;code&gt;.env&lt;/code&gt; en el mismo directorio. Define &lt;code&gt;SERVER_ADDRESS&lt;/code&gt; con tu dominio:&lt;/p&gt;</description></item><item><title>Participa</title><link>https://wireguard-webadmin.com/es/get-involved/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/es/get-involved/</guid><description>&lt;div class="involve-grid"&gt;
&lt;div class="involve-card involve-card--highlight"&gt;
&lt;div class="involve-card-icon"&gt;&lt;/div&gt;
&lt;h3&gt;Dale una estrella al repositorio&lt;/h3&gt;
&lt;p&gt;Es lo más sencillo que puedes hacer. Ayuda a que otros sysadmins descubran el proyecto cuando están buscando exactamente algo así.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin" target="_blank" rel="noopener" class="btn btn-primary"&gt;Dar estrella en GitHub&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🐛&lt;/div&gt;
&lt;h3&gt;Reporta errores&lt;/h3&gt;
&lt;p&gt;¿Encontraste algo roto? Abre un issue en GitHub. No hace falta plantilla: solo describe qué viste y cómo reproducirlo.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin/issues" target="_blank" rel="noopener" class="btn btn-outline"&gt;Abrir un issue&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🔧&lt;/div&gt;
&lt;h3&gt;Contribuye con código&lt;/h3&gt;
&lt;p&gt;Los pull requests son bienvenidos. Si no es algo trivial, abre primero un issue para alinearnos antes de que inviertas tiempo escribiendo código. Buenos puntos de partida: issues etiquetados como &lt;code&gt;good first issue&lt;/code&gt;, correcciones con un caso de reproducción claro y cobertura de pruebas.&lt;/p&gt;</description></item><item><title>Pasarela de aplicaciones Zero Trust</title><link>https://wireguard-webadmin.com/es/zero-trust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/es/zero-trust/</guid><description>&lt;h2 id="qué-significa-zero-trust-aquí"&gt;¿Qué significa Zero Trust aquí?&lt;/h2&gt;
&lt;p&gt;La seguridad de red tradicional asume que todo lo que está dentro de tu red es confiable.
Zero Trust invierte ese modelo: &lt;strong&gt;ninguna solicitud se considera confiable por defecto&lt;/strong&gt;, incluso si viene desde dentro de la VPN.&lt;/p&gt;
&lt;p&gt;En wireguard_webadmin, la pasarela de aplicaciones Zero Trust se coloca delante de tus servicios internos.
Cada solicitud debe autenticarse antes de llegar a la aplicación, y el servicio en sí nunca necesita exponerse directamente.&lt;/p&gt;</description></item></channel></rss>

1
docs/es/sitemap.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://wireguard-webadmin.com/es/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/"/></url><url><loc>https://wireguard-webadmin.com/es/categories/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/categories/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/categories/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/categories/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/categories/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/categories/"/></url><url><loc>https://wireguard-webadmin.com/es/deployment/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/deployment/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/deployment/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/deployment/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/deployment/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/deployment/"/></url><url><loc>https://wireguard-webadmin.com/es/get-involved/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/get-involved/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/get-involved/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/get-involved/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/get-involved/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/get-involved/"/></url><url><loc>https://wireguard-webadmin.com/es/zero-trust/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/zero-trust/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/zero-trust/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/zero-trust/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/zero-trust/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/zero-trust/"/></url><url><loc>https://wireguard-webadmin.com/es/tags/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/tags/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/tags/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/tags/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/tags/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/tags/"/></url></urlset>

11
docs/es/tags/index.html Normal file
View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=es><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Tags · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/tags/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/tags/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/tags/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/tags/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/tags/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/es/tags/"><meta property="og:title" content="Tags · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Tags · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/es/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/es/>Inicio</a></li><li><a href=/es/zero-trust/>Zero Trust</a></li><li><a href=/es/deployment/>Instalación</a></li><li><a href=/es/get-involved/>Contribuir</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇪🇸 ES
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/tags/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/tags/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/tags/ hreflang=es class=lang-active><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/tags/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/tags/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Tags</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/es/zero-trust/>Zero Trust</a></li><li><a href=/es/deployment/>Deployment</a></li><li><a href=/es/get-involved/>Get Involved</a></li></ul><div class=footer-built>desarrollado por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

1
docs/es/tags/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on wireguard_webadmin</title><link>https://wireguard-webadmin.com/es/tags/</link><description>Recent content in Tags on wireguard_webadmin</description><generator>Hugo</generator><language>es</language><atom:link href="https://wireguard-webadmin.com/es/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,16 @@
<!doctype html><html lang=es><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Pasarela de aplicaciones Zero Trust · wireguard_webadmin</title><meta name=description content="Descubre cómo wireguard_webadmin implementa control de acceso Zero Trust para publicar de forma segura apps internas como Grafana, Proxmox y más."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/zero-trust/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/zero-trust/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/zero-trust/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/zero-trust/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/zero-trust/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/es/zero-trust/"><meta property="og:title" content="Pasarela de aplicaciones Zero Trust · wireguard_webadmin"><meta property="og:description" content="Descubre cómo wireguard_webadmin implementa control de acceso Zero Trust para publicar de forma segura apps internas como Grafana, Proxmox y más."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Pasarela de aplicaciones Zero Trust · wireguard_webadmin"><meta name=twitter:description content="Descubre cómo wireguard_webadmin implementa control de acceso Zero Trust para publicar de forma segura apps internas como Grafana, Proxmox y más."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/es/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/es/>Inicio</a></li><li><a href=/es/zero-trust/ aria-current=page>Zero Trust</a></li><li><a href=/es/deployment/>Instalación</a></li><li><a href=/es/get-involved/>Contribuir</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇪🇸 ES
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/zero-trust/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/zero-trust/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/zero-trust/ hreflang=es class=lang-active><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/zero-trust/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/zero-trust/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Zero Trust</div><h1>Pasarela de aplicaciones Zero Trust</h1><p class=section-sub style=margin-top:1rem>Publica servicios internos de forma segura, sin exponerlos directamente a internet.</p></div></section><div class=page-content><div class=container><h2 id=qué-significa-zero-trust-aquí>¿Qué significa Zero Trust aquí?</h2><p>La seguridad de red tradicional asume que todo lo que está dentro de tu red es confiable.
Zero Trust invierte ese modelo: <strong>ninguna solicitud se considera confiable por defecto</strong>, incluso si viene desde dentro de la VPN.</p><p>En wireguard_webadmin, la pasarela de aplicaciones Zero Trust se coloca delante de tus servicios internos.
Cada solicitud debe autenticarse antes de llegar a la aplicación, y el servicio en sí nunca necesita exponerse directamente.</p><hr><h2 id=cómo-fluye-una-solicitud>Cómo fluye una solicitud</h2><div class=flow-cards><div class=flow-card><div class=flow-card-header><span class=flow-card-num>1</span> <strong>El cliente llega a la pasarela</strong></div><p>El endpoint público recibe la solicitud en lugar del servicio interno.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>2</span> <strong>Validación del navegador</strong></div><p>La prueba de trabajo de Altcha puede desafiar el abuso automatizado antes incluso de que empiece el inicio de sesión.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>3</span> <strong>Comprobaciones de identidad</strong></div><p>Se evalúan las credenciales, el TOTP y la política de IP de origen.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>4</span> <strong>Reenvío al upstream</strong></div><p>Solo las solicitudes aprobadas se envían a Grafana, Proxmox u otra aplicación interna.</p></div></div><hr><h2 id=métodos-de-autenticación>Métodos de autenticación</h2><div class=auth-list><div class=auth-row><div class=auth-row-name>TOTP / 2FA</div><div class=auth-row-desc>Contraseñas de un solo uso basadas en tiempo. Funciona con cualquier app TOTP: Google Authenticator, Aegis, Authy.</div></div><div class=auth-row><div class=auth-row-name>Credenciales locales</div><div class=auth-row-desc>Nombre de usuario y contraseña gestionados dentro de wireguard_webadmin. No hace falta un IdP externo.</div></div><div class=auth-row><div class=auth-row-name>ACL por IP</div><div class=auth-row-desc>Permite incluir IPs o subredes específicas en una lista blanca. Los peers VPN pueden considerarse confiables automáticamente por su dirección del túnel.</div></div><div class=auth-row><div class=auth-row-name>OIDC <span class=auth-coming>próximamente</span></div><div class=auth-row-desc>Delega la autenticación en Keycloak, Authentik, Google Workspace o cualquier proveedor compatible con OIDC.</div></div></div><hr><h2 id=anti-fuerza-bruta-prueba-de-trabajo-de-altcha>Anti fuerza bruta: prueba de trabajo de Altcha</h2><p>Antes de que aparezca cualquier formulario de inicio de sesión, el navegador debe resolver un desafío computacional ligero
(<a href=https://altcha.org/ target=_blank rel=noopener>Altcha</a>).</p><p>Esto no genera fricción para usuarios reales, porque el hardware moderno lo resuelve en milisegundos,
pero vuelve computacionalmente costosos los ataques automatizados de credential stuffing a gran escala.</p><div class=callout><p><strong>Protección por capas:</strong> Ya existe limitación de tasa. La prueba de trabajo la complementa: mientras el rate limiting limita el volumen de solicitudes por IP, Altcha añade un coste computacional por solicitud que encarece los ataques distribuidos, sin importar cuántas IPs de origen participen.</p></div><hr><h2 id=casos-de-uso>Casos de uso</h2><ul><li>Expón <strong>Grafana</strong> a tu equipo sin abrir el puerto 3000 a internet</li><li>Publica una consola web de <strong>Proxmox</strong> detrás de TOTP, accesible solo desde tu VPN</li><li>Comparte una <strong>app autoalojada</strong> con un cliente usando credenciales con tiempo limitado</li><li>Protege cualquier <strong>servicio HTTP interno</strong> sin tocar su configuración</li></ul><div class="callout green"><p><strong>No hacen falta cambios en la app.</strong> El gatekeeper reenvía la solicitud de forma transparente.
Tu servicio interno no necesita implementar autenticación: la pasarela se encarga de ello.</p></div><hr><p>La gestión de la VPN y la pasarela de aplicaciones se ejecutan como un único stack autoalojado. No necesitas cuenta en un servicio de terceros, ni dependes de túneles salientes, ni el tráfico sale de tu infraestructura.</p></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/es/zero-trust/>Zero Trust</a></li><li><a href=/es/deployment/>Deployment</a></li><li><a href=/es/get-involved/>Get Involved</a></li></ul><div class=footer-built>desarrollado por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

10
docs/favicon.svg Normal file
View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none">
<rect width="32" height="32" rx="8" fill="#0d1117"/>
<rect x="1" y="1" width="30" height="30" rx="7" stroke="#30363d" stroke-width="1"/>
<!-- Shield -->
<path d="M16 5 L24 8.5 L24 16 C24 20.5 20.5 24 16 26 C11.5 24 8 20.5 8 16 L8 8.5 Z"
fill="none" stroke="#58a6ff" stroke-width="1.5" stroke-linejoin="round"/>
<!-- WG lines -->
<line x1="12" y1="14" x2="20" y2="14" stroke="#3fb950" stroke-width="1.5" stroke-linecap="round"/>
<line x1="12" y1="17" x2="18" y2="17" stroke="#3fb950" stroke-width="1.5" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 629 B

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=fr><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Categories · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/categories/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/categories/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/categories/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/categories/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/categories/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/fr/categories/"><meta property="og:title" content="Categories · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Categories · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/fr/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/fr/>Accueil</a></li><li><a href=/fr/zero-trust/>Zero Trust</a></li><li><a href=/fr/deployment/>Installation</a></li><li><a href=/fr/get-involved/>Contribuer</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇫🇷 FR
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/categories/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/categories/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/categories/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/categories/ hreflang=fr class=lang-active><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/categories/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Categories</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/fr/zero-trust/>Zero Trust</a></li><li><a href=/fr/deployment/>Deployment</a></li><li><a href=/fr/get-involved/>Get Involved</a></li></ul><div class=footer-built>développé par <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on wireguard_webadmin</title><link>https://wireguard-webadmin.com/fr/categories/</link><description>Recent content in Categories on wireguard_webadmin</description><generator>Hugo</generator><language>fr</language><atom:link href="https://wireguard-webadmin.com/fr/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

14
docs/fr/index.html Normal file

File diff suppressed because one or more lines are too long

49
docs/fr/index.xml Normal file
View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>wireguard_webadmin</title><link>https://wireguard-webadmin.com/fr/</link><description>Recent content on wireguard_webadmin</description><generator>Hugo</generator><language>fr</language><atom:link href="https://wireguard-webadmin.com/fr/index.xml" rel="self" type="application/rss+xml"/><item><title>Guide de déploiement</title><link>https://wireguard-webadmin.com/fr/deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/fr/deployment/</guid><description>&lt;h2 id="prérequis"&gt;Prérequis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Un serveur Linux accessible depuis l&amp;rsquo;endroit où vous allez l&amp;rsquo;administrer&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/engine/install/"&gt;Docker&lt;/a&gt; et &lt;a href="https://docs.docker.com/compose/install/"&gt;Docker Compose&lt;/a&gt; installés&lt;/li&gt;
&lt;li&gt;Un nom de domaine pointant vers l&amp;rsquo;IP de votre serveur&lt;/li&gt;
&lt;li&gt;Les ports &lt;strong&gt;80&lt;/strong&gt; et &lt;strong&gt;443&lt;/strong&gt; ouverts pour Caddy, ainsi que le port UDP de WireGuard ouvert (par défaut &lt;strong&gt;51820&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="callout"&gt;
&lt;p&gt;&lt;strong&gt;Caddy nécessite un nom DNS valide&lt;/strong&gt;, interne ou public, pointant vers votre serveur afin d'obtenir et de renouveler automatiquement les certificats SSL.&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="déploiement"&gt;Déploiement&lt;/h2&gt;
&lt;div class="tab-group"&gt;
&lt;div class="tabs"&gt;
&lt;button class="tab-btn active" data-tab="dep-step-1"&gt;1. Créer le répertoire&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-2"&gt;2. Récupérer le fichier compose&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-3"&gt;3. Configurer .env&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-4"&gt;4. Lancer&lt;/button&gt;
&lt;/div&gt;
&lt;div class="tab-wrap"&gt;
&lt;div class="tab-panel active" id="dep-step-1"&gt;
&lt;pre&gt;&lt;code&gt;mkdir wireguard_webadmin &amp;&amp; cd wireguard_webadmin&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-2"&gt;
&lt;pre&gt;&lt;code&gt;wget -O docker-compose.yml \
https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-3"&gt;
&lt;p&gt;Créez un fichier &lt;code&gt;.env&lt;/code&gt; dans le même répertoire. Définissez &lt;code&gt;SERVER_ADDRESS&lt;/code&gt; avec votre domaine :&lt;/p&gt;</description></item><item><title>Participer</title><link>https://wireguard-webadmin.com/fr/get-involved/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/fr/get-involved/</guid><description>&lt;div class="involve-grid"&gt;
&lt;div class="involve-card involve-card--highlight"&gt;
&lt;div class="involve-card-icon"&gt;&lt;/div&gt;
&lt;h3&gt;Ajouter une étoile au dépôt&lt;/h3&gt;
&lt;p&gt;C'est la chose la plus simple que vous puissiez faire. Cela aide le projet à être découvert par d'autres admins système qui cherchent exactement ce type d'outil.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin" target="_blank" rel="noopener" class="btn btn-primary"&gt;Mettre une étoile sur GitHub&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🐛&lt;/div&gt;
&lt;h3&gt;Signaler des bugs&lt;/h3&gt;
&lt;p&gt;Vous avez trouvé quelque chose de cassé ? Ouvrez une issue sur GitHub. Aucun modèle requis : décrivez simplement ce que vous avez vu et comment le reproduire.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin/issues" target="_blank" rel="noopener" class="btn btn-outline"&gt;Ouvrir une issue&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🔧&lt;/div&gt;
&lt;h3&gt;Contribuer au code&lt;/h3&gt;
&lt;p&gt;Les pull requests sont les bienvenues. Pour tout ce qui n'est pas trivial, ouvrez d'abord une issue afin que nous puissions nous aligner avant que vous investissiez du temps à coder. Bons points de départ : les issues marquées &lt;code&gt;good first issue&lt;/code&gt;, les correctifs avec un cas de reproduction clair et l'ajout de couverture de tests.&lt;/p&gt;</description></item><item><title>Passerelle applicative Zero Trust</title><link>https://wireguard-webadmin.com/fr/zero-trust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/fr/zero-trust/</guid><description>&lt;h2 id="que-signifie-zero-trust-ici-"&gt;Que signifie Zero Trust ici ?&lt;/h2&gt;
&lt;p&gt;La sécurité réseau traditionnelle part du principe que tout ce qui se trouve à l&amp;rsquo;intérieur de votre réseau peut être considéré comme fiable.
Zero Trust inverse ce modèle : &lt;strong&gt;aucune requête n&amp;rsquo;est fiable par défaut&lt;/strong&gt;, même si elle provient du VPN.&lt;/p&gt;
&lt;p&gt;Dans wireguard_webadmin, la passerelle applicative Zero Trust se place devant vos services internes.
Chaque requête doit s&amp;rsquo;authentifier avant d&amp;rsquo;atteindre l&amp;rsquo;application, et le service lui-même n&amp;rsquo;a jamais besoin d&amp;rsquo;être exposé directement.&lt;/p&gt;</description></item></channel></rss>

1
docs/fr/sitemap.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://wireguard-webadmin.com/fr/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/"/></url><url><loc>https://wireguard-webadmin.com/fr/categories/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/categories/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/categories/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/categories/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/categories/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/categories/"/></url><url><loc>https://wireguard-webadmin.com/fr/deployment/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/deployment/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/deployment/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/deployment/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/deployment/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/deployment/"/></url><url><loc>https://wireguard-webadmin.com/fr/get-involved/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/get-involved/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/get-involved/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/get-involved/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/get-involved/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/get-involved/"/></url><url><loc>https://wireguard-webadmin.com/fr/zero-trust/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/zero-trust/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/zero-trust/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/zero-trust/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/zero-trust/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/zero-trust/"/></url><url><loc>https://wireguard-webadmin.com/fr/tags/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/tags/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/tags/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/tags/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/tags/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/tags/"/></url></urlset>

11
docs/fr/tags/index.html Normal file
View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=fr><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Tags · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/tags/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/tags/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/tags/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/tags/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/tags/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/fr/tags/"><meta property="og:title" content="Tags · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Tags · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/fr/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/fr/>Accueil</a></li><li><a href=/fr/zero-trust/>Zero Trust</a></li><li><a href=/fr/deployment/>Installation</a></li><li><a href=/fr/get-involved/>Contribuer</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇫🇷 FR
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/tags/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/tags/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/tags/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/tags/ hreflang=fr class=lang-active><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/tags/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Tags</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/fr/zero-trust/>Zero Trust</a></li><li><a href=/fr/deployment/>Deployment</a></li><li><a href=/fr/get-involved/>Get Involved</a></li></ul><div class=footer-built>développé par <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

1
docs/fr/tags/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on wireguard_webadmin</title><link>https://wireguard-webadmin.com/fr/tags/</link><description>Recent content in Tags on wireguard_webadmin</description><generator>Hugo</generator><language>fr</language><atom:link href="https://wireguard-webadmin.com/fr/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,16 @@
<!doctype html><html lang=fr><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Passerelle applicative Zero Trust · wireguard_webadmin</title><meta name=description content="Découvrez comment wireguard_webadmin met en œuvre un contrôle d'accès Zero Trust pour publier en toute sécurité des applications internes comme Grafana, Proxmox et bien plus."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/zero-trust/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/zero-trust/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/zero-trust/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/zero-trust/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/zero-trust/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/fr/zero-trust/"><meta property="og:title" content="Passerelle applicative Zero Trust · wireguard_webadmin"><meta property="og:description" content="Découvrez comment wireguard_webadmin met en œuvre un contrôle d'accès Zero Trust pour publier en toute sécurité des applications internes comme Grafana, Proxmox et bien plus."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Passerelle applicative Zero Trust · wireguard_webadmin"><meta name=twitter:description content="Découvrez comment wireguard_webadmin met en œuvre un contrôle d'accès Zero Trust pour publier en toute sécurité des applications internes comme Grafana, Proxmox et bien plus."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/fr/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/fr/>Accueil</a></li><li><a href=/fr/zero-trust/ aria-current=page>Zero Trust</a></li><li><a href=/fr/deployment/>Installation</a></li><li><a href=/fr/get-involved/>Contribuer</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇫🇷 FR
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/zero-trust/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/zero-trust/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/zero-trust/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/zero-trust/ hreflang=fr class=lang-active><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/zero-trust/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Zero Trust</div><h1>Passerelle applicative Zero Trust</h1><p class=section-sub style=margin-top:1rem>Publiez des services internes en toute sécurité, sans les exposer directement à internet.</p></div></section><div class=page-content><div class=container><h2 id=que-signifie-zero-trust-ici->Que signifie Zero Trust ici ?</h2><p>La sécurité réseau traditionnelle part du principe que tout ce qui se trouve à l&rsquo;intérieur de votre réseau peut être considéré comme fiable.
Zero Trust inverse ce modèle : <strong>aucune requête n&rsquo;est fiable par défaut</strong>, même si elle provient du VPN.</p><p>Dans wireguard_webadmin, la passerelle applicative Zero Trust se place devant vos services internes.
Chaque requête doit s&rsquo;authentifier avant d&rsquo;atteindre l&rsquo;application, et le service lui-même n&rsquo;a jamais besoin d&rsquo;être exposé directement.</p><hr><h2 id=comment-une-requête-circule>Comment une requête circule</h2><div class=flow-cards><div class=flow-card><div class=flow-card-header><span class=flow-card-num>1</span> <strong>Le client atteint la passerelle</strong></div><p>Le point d'entrée public reçoit la requête à la place du service interne.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>2</span> <strong>Validation du navigateur</strong></div><p>La preuve de travail Altcha peut bloquer les abus automatisés avant même le début de la connexion.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>3</span> <strong>Vérifications d'identité</strong></div><p>Les identifiants, le TOTP et la politique d'IP source sont évalués.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>4</span> <strong>Transmission vers l'upstream</strong></div><p>Seules les requêtes approuvées sont transmises à Grafana, Proxmox ou à une autre application interne.</p></div></div><hr><h2 id=méthodes-dauthentification>Méthodes d&rsquo;authentification</h2><div class=auth-list><div class=auth-row><div class=auth-row-name>TOTP / 2FA</div><div class=auth-row-desc>Mots de passe à usage unique basés sur le temps. Fonctionne avec toute application TOTP : Google Authenticator, Aegis, Authy.</div></div><div class=auth-row><div class=auth-row-name>Identifiants locaux</div><div class=auth-row-desc>Nom d'utilisateur et mot de passe gérés directement dans wireguard_webadmin. Aucun IdP externe nécessaire.</div></div><div class=auth-row><div class=auth-row-name>ACL IP</div><div class=auth-row-desc>Autorisez des IP ou sous-réseaux spécifiques. Les pairs VPN peuvent être automatiquement considérés comme fiables via leur adresse de tunnel.</div></div><div class=auth-row><div class=auth-row-name>OIDC <span class=auth-coming>bientôt disponible</span></div><div class=auth-row-desc>Déléguez l'authentification à Keycloak, Authentik, Google Workspace ou à tout fournisseur compatible OIDC.</div></div></div><hr><h2 id=anti-brute-force--preuve-de-travail-altcha>Anti brute force : preuve de travail Altcha</h2><p>Avant même qu&rsquo;un formulaire de connexion ne s&rsquo;affiche, le navigateur doit résoudre un léger défi computationnel
(<a href=https://altcha.org/ target=_blank rel=noopener>Altcha</a>).</p><p>Cela ne crée aucune friction pour les vrais utilisateurs, car le matériel moderne le résout en quelques millisecondes,
mais cela rend les attaques automatisées de credential stuffing coûteuses à grande échelle.</p><div class=callout><p><strong>Protection en couches :</strong> Une limitation de débit est déjà en place. La preuve de travail vient la compléter : là où le rate limiting borne le volume de requêtes par IP, Altcha ajoute un coût de calcul par requête qui rend les attaques distribuées coûteuses, quel que soit le nombre d'IP sources impliquées.</p></div><hr><h2 id=cas-dusage>Cas d&rsquo;usage</h2><ul><li>Exposez <strong>Grafana</strong> à votre équipe sans ouvrir le port 3000 sur internet</li><li>Publiez une console web <strong>Proxmox</strong> derrière TOTP, accessible uniquement depuis votre VPN</li><li>Partagez une <strong>application auto-hébergée</strong> avec un client à l&rsquo;aide d&rsquo;identifiants temporaires</li><li>Protégez n&rsquo;importe quel <strong>service HTTP interne</strong> sans modifier sa configuration</li></ul><div class="callout green"><p><strong>Aucune modification de l'application n'est nécessaire.</strong> Le gatekeeper transmet la requête de manière transparente.
Votre service interne n'a pas besoin d'implémenter l'authentification : la passerelle s'en charge.</p></div><hr><p>La gestion VPN et la passerelle applicative fonctionnent comme une seule stack auto-hébergée. Aucun compte chez un service tiers, aucune dépendance à un tunnel sortant, aucun trafic qui quitte votre infrastructure.</p></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/fr/zero-trust/>Zero Trust</a></li><li><a href=/fr/deployment/>Deployment</a></li><li><a href=/fr/get-involved/>Get Involved</a></li></ul><div class=footer-built>développé par <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=en-us><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Get Involved · wireguard_webadmin</title><meta name=description content="Ways to contribute to wireguard_webadmin — reporting bugs, writing code, or just spreading the word."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/get-involved/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/get-involved/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/get-involved/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/get-involved/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/get-involved/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/get-involved/"><meta property="og:title" content="Get Involved · wireguard_webadmin"><meta property="og:description" content="Ways to contribute to wireguard_webadmin — reporting bugs, writing code, or just spreading the word."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Get Involved · wireguard_webadmin"><meta name=twitter:description content="Ways to contribute to wireguard_webadmin — reporting bugs, writing code, or just spreading the word."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/>Home</a></li><li><a href=/zero-trust/>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/ aria-current=page>Get Involved</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇬🇧 EN
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/get-involved/ hreflang=en class=lang-active><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/get-involved/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/get-involved/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/get-involved/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/get-involved/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Open Source</div><h1>Get Involved</h1><p class=section-sub style=margin-top:1rem>wireguard_webadmin is built in the open. Every contribution helps — no matter the size.</p></div></section><div class=page-content><div class=container><div class=involve-grid><div class="involve-card involve-card--highlight"><div class=involve-card-icon></div><h3>Star the repo</h3><p>The simplest thing you can do. It helps the project get discovered by other sysadmins who are looking for exactly this.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class="btn btn-primary">Star on GitHub</a></div><div class=involve-card><div class=involve-card-icon>🐛</div><h3>Report bugs</h3><p>Found something broken? Open an issue on GitHub. No template required — just describe what you saw and how to reproduce it.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/issues target=_blank rel=noopener class="btn btn-outline">Open an issue</a></div><div class=involve-card><div class=involve-card-icon>🔧</div><h3>Contribute code</h3><p>Pull requests are welcome. For anything non-trivial, open an issue first so we can align before you invest time writing code. Good starting points: issues tagged <code>good first issue</code>, bug fixes with a clear reproduction case, and test coverage.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/pulls target=_blank rel=noopener class="btn btn-outline">Browse open PRs</a></div><div class=involve-card><div class=involve-card-icon>💬</div><h3>Join the discussion</h3><p>Running an interesting setup? Hit an edge case? GitHub Discussions is the place for questions, ideas, and use cases that don't fit neatly into an issue.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener class="btn btn-outline">Go to Discussions</a></div></div><div class=involve-footer><h4>Spread the word</h4><p>Write a blog post. Share it with your team. Mention it where someone is asking how to manage WireGuard. That kind of organic reach matters more than any ad campaign.</p></div></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/zero-trust/>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/>Get Involved</a></li></ul><div class=footer-built>built by <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

BIN
docs/images/dns.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 KiB

BIN
docs/images/firewall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

BIN
docs/images/scheduler.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

BIN
docs/images/vpn_invite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

File diff suppressed because one or more lines are too long

55
docs/index.xml Normal file
View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>wireguard_webadmin</title><link>https://wireguard-webadmin.com/</link><description>Recent content on wireguard_webadmin</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://wireguard-webadmin.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Deployment Guide</title><link>https://wireguard-webadmin.com/deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/deployment/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A Linux server reachable from where you&amp;rsquo;ll manage it&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/engine/install/"&gt;Docker&lt;/a&gt; and &lt;a href="https://docs.docker.com/compose/install/"&gt;Docker Compose&lt;/a&gt; installed&lt;/li&gt;
&lt;li&gt;A domain name pointing to your server&amp;rsquo;s IP&lt;/li&gt;
&lt;li&gt;Ports &lt;strong&gt;80&lt;/strong&gt; and &lt;strong&gt;443&lt;/strong&gt; open for Caddy; your WireGuard UDP port open (default &lt;strong&gt;51820&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="callout"&gt;
&lt;p&gt;&lt;strong&gt;Caddy requires a valid DNS name&lt;/strong&gt; — either internal or public — pointing to your server so it can obtain and renew SSL certificates automatically.&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="deploy"&gt;Deploy&lt;/h2&gt;
&lt;div class="tab-group"&gt;
&lt;div class="tabs"&gt;
&lt;button class="tab-btn active" data-tab="dep-step-1"&gt;1. Create directory&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-2"&gt;2. Fetch compose file&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-3"&gt;3. Configure .env&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-4"&gt;4. Run&lt;/button&gt;
&lt;/div&gt;
&lt;div class="tab-wrap"&gt;
&lt;div class="tab-panel active" id="dep-step-1"&gt;
&lt;pre&gt;&lt;code&gt;mkdir wireguard_webadmin &amp;&amp; cd wireguard_webadmin&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-2"&gt;
&lt;pre&gt;&lt;code&gt;wget -O docker-compose.yml \
https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-3"&gt;
&lt;p&gt;Create a &lt;code&gt;.env&lt;/code&gt; file in the same directory. Set &lt;code&gt;SERVER_ADDRESS&lt;/code&gt; to your domain:&lt;/p&gt;</description></item><item><title>Get Involved</title><link>https://wireguard-webadmin.com/get-involved/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/get-involved/</guid><description>&lt;div class="involve-grid"&gt;
&lt;div class="involve-card involve-card--highlight"&gt;
&lt;div class="involve-card-icon"&gt;&lt;/div&gt;
&lt;h3&gt;Star the repo&lt;/h3&gt;
&lt;p&gt;The simplest thing you can do. It helps the project get discovered by other sysadmins who are looking for exactly this.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin" target="_blank" rel="noopener" class="btn btn-primary"&gt;Star on GitHub&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🐛&lt;/div&gt;
&lt;h3&gt;Report bugs&lt;/h3&gt;
&lt;p&gt;Found something broken? Open an issue on GitHub. No template required — just describe what you saw and how to reproduce it.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin/issues" target="_blank" rel="noopener" class="btn btn-outline"&gt;Open an issue&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🔧&lt;/div&gt;
&lt;h3&gt;Contribute code&lt;/h3&gt;
&lt;p&gt;Pull requests are welcome. For anything non-trivial, open an issue first so we can align before you invest time writing code. Good starting points: issues tagged &lt;code&gt;good first issue&lt;/code&gt;, bug fixes with a clear reproduction case, and test coverage.&lt;/p&gt;</description></item><item><title>Zero Trust Application Gateway</title><link>https://wireguard-webadmin.com/zero-trust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/zero-trust/</guid><description>&lt;h2 id="what-is-zero-trust-here"&gt;What is Zero Trust here?&lt;/h2&gt;
&lt;p&gt;Traditional network security assumes that anything inside your network can be trusted.
Zero Trust flips that model: &lt;strong&gt;no request is trusted by default&lt;/strong&gt;, even if it comes from inside the VPN.&lt;/p&gt;
&lt;p&gt;In wireguard_webadmin, the Zero Trust application gateway sits in front of your internal services.
Every request must authenticate before reaching the app — the service itself never needs to be exposed directly.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="how-a-request-flows"&gt;How a request flows&lt;/h2&gt;
&lt;div class="flow-cards"&gt;
&lt;div class="flow-card"&gt;
&lt;div class="flow-card-header"&gt;&lt;span class="flow-card-num"&gt;1&lt;/span&gt; &lt;strong&gt;Client reaches gateway&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;The public endpoint receives the request instead of the internal service.&lt;/p&gt;</description></item></channel></rss>

BIN
docs/og-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=pt-BR><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Categories · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/categories/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/categories/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/categories/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/categories/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/categories/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/pt-br/categories/"><meta property="og:title" content="Categories · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Categories · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/pt-br/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/pt-br/>Início</a></li><li><a href=/pt-br/zero-trust/>Zero Trust</a></li><li><a href=/pt-br/deployment/>Instalação</a></li><li><a href=/pt-br/get-involved/>Contribua</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇧🇷 PT
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/categories/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/categories/ hreflang=pt-br class=lang-active><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/categories/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/categories/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/categories/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Categories</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/pt-br/zero-trust/>Zero Trust</a></li><li><a href=/pt-br/deployment/>Deployment</a></li><li><a href=/pt-br/get-involved/>Get Involved</a></li></ul><div class=footer-built>desenvolvido por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on wireguard_webadmin</title><link>https://wireguard-webadmin.com/pt-br/categories/</link><description>Recent content in Categories on wireguard_webadmin</description><generator>Hugo</generator><language>pt-BR</language><atom:link href="https://wireguard-webadmin.com/pt-br/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=pt-BR><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Participe · wireguard_webadmin</title><meta name=description content="Formas de contribuir com o wireguard_webadmin: reportar bugs, escrever código ou simplesmente divulgar o projeto."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/get-involved/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/get-involved/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/get-involved/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/get-involved/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/get-involved/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/pt-br/get-involved/"><meta property="og:title" content="Participe · wireguard_webadmin"><meta property="og:description" content="Formas de contribuir com o wireguard_webadmin: reportar bugs, escrever código ou simplesmente divulgar o projeto."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Participe · wireguard_webadmin"><meta name=twitter:description content="Formas de contribuir com o wireguard_webadmin: reportar bugs, escrever código ou simplesmente divulgar o projeto."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/pt-br/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/pt-br/>Início</a></li><li><a href=/pt-br/zero-trust/>Zero Trust</a></li><li><a href=/pt-br/deployment/>Instalação</a></li><li><a href=/pt-br/get-involved/ aria-current=page>Contribua</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇧🇷 PT
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/get-involved/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/get-involved/ hreflang=pt-br class=lang-active><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/get-involved/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/get-involved/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/get-involved/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Open Source</div><h1>Participe</h1><p class=section-sub style=margin-top:1rem>wireguard_webadmin é desenvolvido de forma aberta. Toda contribuição ajuda, independentemente do tamanho.</p></div></section><div class=page-content><div class=container><div class=involve-grid><div class="involve-card involve-card--highlight"><div class=involve-card-icon></div><h3>Dê uma estrela ao repositório</h3><p>É a coisa mais simples que você pode fazer. Isso ajuda o projeto a ser descoberto por outros sysadmins que estão procurando exatamente algo assim.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class="btn btn-primary">Dar estrela no GitHub</a></div><div class=involve-card><div class=involve-card-icon>🐛</div><h3>Reporte bugs</h3><p>Encontrou algo quebrado? Abra uma issue no GitHub. Não precisa de template: basta descrever o que você viu e como reproduzir.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/issues target=_blank rel=noopener class="btn btn-outline">Abrir uma issue</a></div><div class=involve-card><div class=involve-card-icon>🔧</div><h3>Contribua com código</h3><p>Pull requests são bem-vindos. Para qualquer coisa que não seja trivial, abra uma issue antes para alinharmos o caminho antes de você investir tempo escrevendo código. Bons pontos de partida: issues marcadas com <code>good first issue</code>, correções com um caso de reprodução claro e cobertura de testes.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/pulls target=_blank rel=noopener class="btn btn-outline">Ver PRs abertas</a></div><div class=involve-card><div class=involve-card-icon>💬</div><h3>Entre na discussão</h3><p>Está rodando uma configuração interessante? Encontrou um caso de borda? O GitHub Discussions é o lugar certo para perguntas, ideias e cenários de uso que não se encaixam bem em uma issue.</p><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener class="btn btn-outline">Ir para Discussions</a></div></div><div class=involve-footer><h4>Espalhe a ideia</h4><p>Escreva um post. Compartilhe com o seu time. Mencione o projeto quando alguém perguntar como gerenciar WireGuard. Esse alcance orgânico vale mais do que qualquer campanha publicitária.</p></div></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/pt-br/zero-trust/>Zero Trust</a></li><li><a href=/pt-br/deployment/>Deployment</a></li><li><a href=/pt-br/get-involved/>Get Involved</a></li></ul><div class=footer-built>desenvolvido por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

14
docs/pt-br/index.html Normal file

File diff suppressed because one or more lines are too long

49
docs/pt-br/index.xml Normal file
View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>wireguard_webadmin</title><link>https://wireguard-webadmin.com/pt-br/</link><description>Recent content on wireguard_webadmin</description><generator>Hugo</generator><language>pt-BR</language><atom:link href="https://wireguard-webadmin.com/pt-br/index.xml" rel="self" type="application/rss+xml"/><item><title>Gateway de Aplicações Zero Trust</title><link>https://wireguard-webadmin.com/pt-br/zero-trust/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/pt-br/zero-trust/</guid><description>&lt;h2 id="o-que-significa-zero-trust-aqui"&gt;O que significa Zero Trust aqui?&lt;/h2&gt;
&lt;p&gt;A segurança de rede tradicional assume que tudo o que está dentro da sua rede pode ser confiável.
Zero Trust inverte esse modelo: &lt;strong&gt;nenhuma requisição é confiável por padrão&lt;/strong&gt;, mesmo que venha de dentro da VPN.&lt;/p&gt;
&lt;p&gt;No wireguard_webadmin, o gateway de aplicações Zero Trust fica na frente dos seus serviços internos.
Toda requisição precisa se autenticar antes de chegar à aplicação, e o serviço em si nunca precisa ser exposto diretamente.&lt;/p&gt;</description></item><item><title>Guia de Deploy</title><link>https://wireguard-webadmin.com/pt-br/deployment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/pt-br/deployment/</guid><description>&lt;h2 id="pré-requisitos"&gt;Pré-requisitos&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Um servidor Linux acessível a partir de onde você vai administrá-lo&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/engine/install/"&gt;Docker&lt;/a&gt; e &lt;a href="https://docs.docker.com/compose/install/"&gt;Docker Compose&lt;/a&gt; instalados&lt;/li&gt;
&lt;li&gt;Um nome de domínio apontando para o IP do seu servidor&lt;/li&gt;
&lt;li&gt;Portas &lt;strong&gt;80&lt;/strong&gt; e &lt;strong&gt;443&lt;/strong&gt; abertas para o Caddy, além da porta UDP do WireGuard aberta (padrão &lt;strong&gt;51820&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="callout"&gt;
&lt;p&gt;&lt;strong&gt;O Caddy precisa de um nome DNS válido&lt;/strong&gt;, interno ou público, apontando para o seu servidor para conseguir obter e renovar certificados SSL automaticamente.&lt;/p&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="deploy"&gt;Deploy&lt;/h2&gt;
&lt;div class="tab-group"&gt;
&lt;div class="tabs"&gt;
&lt;button class="tab-btn active" data-tab="dep-step-1"&gt;1. Criar diretório&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-2"&gt;2. Baixar arquivo compose&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-3"&gt;3. Configurar .env&lt;/button&gt;
&lt;button class="tab-btn" data-tab="dep-step-4"&gt;4. Executar&lt;/button&gt;
&lt;/div&gt;
&lt;div class="tab-wrap"&gt;
&lt;div class="tab-panel active" id="dep-step-1"&gt;
&lt;pre&gt;&lt;code&gt;mkdir wireguard_webadmin &amp;&amp; cd wireguard_webadmin&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-2"&gt;
&lt;pre&gt;&lt;code&gt;wget -O docker-compose.yml \
https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="tab-panel" id="dep-step-3"&gt;
&lt;p&gt;Crie um arquivo &lt;code&gt;.env&lt;/code&gt; no mesmo diretório. Defina &lt;code&gt;SERVER_ADDRESS&lt;/code&gt; com o seu domínio:&lt;/p&gt;</description></item><item><title>Participe</title><link>https://wireguard-webadmin.com/pt-br/get-involved/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://wireguard-webadmin.com/pt-br/get-involved/</guid><description>&lt;div class="involve-grid"&gt;
&lt;div class="involve-card involve-card--highlight"&gt;
&lt;div class="involve-card-icon"&gt;&lt;/div&gt;
&lt;h3&gt;Dê uma estrela ao repositório&lt;/h3&gt;
&lt;p&gt;É a coisa mais simples que você pode fazer. Isso ajuda o projeto a ser descoberto por outros sysadmins que estão procurando exatamente algo assim.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin" target="_blank" rel="noopener" class="btn btn-primary"&gt;Dar estrela no GitHub&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🐛&lt;/div&gt;
&lt;h3&gt;Reporte bugs&lt;/h3&gt;
&lt;p&gt;Encontrou algo quebrado? Abra uma issue no GitHub. Não precisa de template: basta descrever o que você viu e como reproduzir.&lt;/p&gt;
&lt;a href="https://github.com/eduardogsilva/wireguard_webadmin/issues" target="_blank" rel="noopener" class="btn btn-outline"&gt;Abrir uma issue&lt;/a&gt;
&lt;/div&gt;
&lt;div class="involve-card"&gt;
&lt;div class="involve-card-icon"&gt;🔧&lt;/div&gt;
&lt;h3&gt;Contribua com código&lt;/h3&gt;
&lt;p&gt;Pull requests são bem-vindos. Para qualquer coisa que não seja trivial, abra uma issue antes para alinharmos o caminho antes de você investir tempo escrevendo código. Bons pontos de partida: issues marcadas com &lt;code&gt;good first issue&lt;/code&gt;, correções com um caso de reprodução claro e cobertura de testes.&lt;/p&gt;</description></item></channel></rss>

1
docs/pt-br/sitemap.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://wireguard-webadmin.com/pt-br/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/"/></url><url><loc>https://wireguard-webadmin.com/pt-br/categories/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/categories/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/categories/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/categories/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/categories/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/categories/"/></url><url><loc>https://wireguard-webadmin.com/pt-br/zero-trust/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/zero-trust/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/zero-trust/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/zero-trust/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/zero-trust/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/zero-trust/"/></url><url><loc>https://wireguard-webadmin.com/pt-br/deployment/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/deployment/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/deployment/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/deployment/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/deployment/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/deployment/"/></url><url><loc>https://wireguard-webadmin.com/pt-br/get-involved/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/get-involved/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/get-involved/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/get-involved/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/get-involved/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/get-involved/"/></url><url><loc>https://wireguard-webadmin.com/pt-br/tags/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://wireguard-webadmin.com/tags/"/><xhtml:link rel="alternate" hreflang="es" href="https://wireguard-webadmin.com/es/tags/"/><xhtml:link rel="alternate" hreflang="fr" href="https://wireguard-webadmin.com/fr/tags/"/><xhtml:link rel="alternate" hreflang="de" href="https://wireguard-webadmin.com/de/tags/"/><xhtml:link rel="alternate" hreflang="pt-BR" href="https://wireguard-webadmin.com/pt-br/tags/"/></url></urlset>

View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=pt-BR><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Tags · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/tags/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/tags/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/tags/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/tags/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/tags/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/pt-br/tags/"><meta property="og:title" content="Tags · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Tags · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/pt-br/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/pt-br/>Início</a></li><li><a href=/pt-br/zero-trust/>Zero Trust</a></li><li><a href=/pt-br/deployment/>Instalação</a></li><li><a href=/pt-br/get-involved/>Contribua</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇧🇷 PT
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/tags/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/tags/ hreflang=pt-br class=lang-active><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/tags/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/tags/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/tags/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Tags</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/pt-br/zero-trust/>Zero Trust</a></li><li><a href=/pt-br/deployment/>Deployment</a></li><li><a href=/pt-br/get-involved/>Get Involved</a></li></ul><div class=footer-built>desenvolvido por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on wireguard_webadmin</title><link>https://wireguard-webadmin.com/pt-br/tags/</link><description>Recent content in Tags on wireguard_webadmin</description><generator>Hugo</generator><language>pt-BR</language><atom:link href="https://wireguard-webadmin.com/pt-br/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,16 @@
<!doctype html><html lang=pt-BR><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Gateway de Aplicações Zero Trust · wireguard_webadmin</title><meta name=description content="Entenda como o wireguard_webadmin implementa controle de acesso Zero Trust para publicar com segurança aplicações internas como Grafana, Proxmox e outras."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/zero-trust/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/zero-trust/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/zero-trust/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/zero-trust/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/zero-trust/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/pt-br/zero-trust/"><meta property="og:title" content="Gateway de Aplicações Zero Trust · wireguard_webadmin"><meta property="og:description" content="Entenda como o wireguard_webadmin implementa controle de acesso Zero Trust para publicar com segurança aplicações internas como Grafana, Proxmox e outras."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Gateway de Aplicações Zero Trust · wireguard_webadmin"><meta name=twitter:description content="Entenda como o wireguard_webadmin implementa controle de acesso Zero Trust para publicar com segurança aplicações internas como Grafana, Proxmox e outras."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/pt-br/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/pt-br/>Início</a></li><li><a href=/pt-br/zero-trust/ aria-current=page>Zero Trust</a></li><li><a href=/pt-br/deployment/>Instalação</a></li><li><a href=/pt-br/get-involved/>Contribua</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇧🇷 PT
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/zero-trust/ hreflang=en><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/zero-trust/ hreflang=pt-br class=lang-active><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/zero-trust/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/zero-trust/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/zero-trust/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Zero Trust</div><h1>Gateway de Aplicações Zero Trust</h1><p class=section-sub style=margin-top:1rem>Publique serviços internos com segurança, sem expô-los diretamente à internet.</p></div></section><div class=page-content><div class=container><h2 id=o-que-significa-zero-trust-aqui>O que significa Zero Trust aqui?</h2><p>A segurança de rede tradicional assume que tudo o que está dentro da sua rede pode ser confiável.
Zero Trust inverte esse modelo: <strong>nenhuma requisição é confiável por padrão</strong>, mesmo que venha de dentro da VPN.</p><p>No wireguard_webadmin, o gateway de aplicações Zero Trust fica na frente dos seus serviços internos.
Toda requisição precisa se autenticar antes de chegar à aplicação, e o serviço em si nunca precisa ser exposto diretamente.</p><hr><h2 id=como-uma-requisição-flui>Como uma requisição flui</h2><div class=flow-cards><div class=flow-card><div class=flow-card-header><span class=flow-card-num>1</span> <strong>O cliente chega ao gateway</strong></div><p>O endpoint público recebe a requisição no lugar do serviço interno.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>2</span> <strong>Validação do navegador</strong></div><p>O proof-of-work do Altcha pode desafiar abusos automatizados antes mesmo do login começar.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>3</span> <strong>Verificações de identidade</strong></div><p>Credenciais, TOTP e a política de IP de origem são avaliados.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>4</span> <strong>Encaminhamento para o upstream</strong></div><p>Apenas requisições aprovadas são encaminhadas para Grafana, Proxmox ou outra aplicação interna.</p></div></div><hr><h2 id=métodos-de-autenticação>Métodos de autenticação</h2><div class=auth-list><div class=auth-row><div class=auth-row-name>TOTP / 2FA</div><div class=auth-row-desc>Senhas temporárias baseadas em tempo. Funciona com qualquer app TOTP, como Google Authenticator, Aegis e Authy.</div></div><div class=auth-row><div class=auth-row-name>Credenciais locais</div><div class=auth-row-desc>Nome de usuário e senha gerenciados dentro do wireguard_webadmin. Nenhum IdP externo é necessário.</div></div><div class=auth-row><div class=auth-row-name>ACL por IP</div><div class=auth-row-desc>Permita IPs ou sub-redes específicas em uma lista de confiança. Peers da VPN podem ser automaticamente confiáveis pelo endereço do túnel.</div></div><div class=auth-row><div class=auth-row-name>OIDC <span class=auth-coming>em breve</span></div><div class=auth-row-desc>Delegue a autenticação para Keycloak, Authentik, Google Workspace ou qualquer provedor compatível com OIDC.</div></div></div><hr><h2 id=anti-brute-force-proof-of-work-do-altcha>Anti brute force: proof-of-work do Altcha</h2><p>Antes mesmo de qualquer formulário de login ser exibido, o navegador precisa resolver um desafio computacional leve
(<a href=https://altcha.org/ target=_blank rel=noopener>Altcha</a>).</p><p>Isso não gera atrito para usuários reais, já que o hardware moderno resolve o desafio em milissegundos,
mas torna ataques automatizados de credential stuffing computacionalmente caros em larga escala.</p><div class=callout><p><strong>Proteção em camadas:</strong> O rate limiting já está em vigor. O proof-of-work complementa essa camada: enquanto o rate limiting limita o volume de requisições por IP, o Altcha adiciona um custo computacional por requisição que encarece ataques distribuídos, independentemente de quantos IPs de origem estejam envolvidos.</p></div><hr><h2 id=casos-de-uso>Casos de uso</h2><ul><li>Exponha o <strong>Grafana</strong> para o seu time sem abrir a porta 3000 para a internet</li><li>Publique um console web do <strong>Proxmox</strong> atrás de TOTP, acessível apenas pela sua VPN</li><li>Compartilhe uma <strong>aplicação self-hosted</strong> com um cliente usando credenciais temporárias</li><li>Proteja qualquer <strong>serviço HTTP interno</strong> sem mexer na configuração dele</li></ul><div class="callout green"><p><strong>Nenhuma mudança na aplicação é necessária.</strong> O gatekeeper faz o proxy da requisição de forma transparente.
Seu serviço interno não precisa implementar autenticação: o gateway cuida disso.</p></div><hr><p>O gerenciamento da VPN e o gateway de aplicações rodam como uma única stack self-hosted. Sem conta em serviço de terceiros, sem dependência de túnel de saída e sem tráfego deixando a sua infraestrutura.</p></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/pt-br/zero-trust/>Zero Trust</a></li><li><a href=/pt-br/deployment/>Deployment</a></li><li><a href=/pt-br/get-involved/>Get Involved</a></li></ul><div class=footer-built>desenvolvido por <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

1
docs/sitemap.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://wireguard-webadmin.com/en/sitemap.xml</loc></sitemap><sitemap><loc>https://wireguard-webadmin.com/pt-br/sitemap.xml</loc></sitemap><sitemap><loc>https://wireguard-webadmin.com/es/sitemap.xml</loc></sitemap><sitemap><loc>https://wireguard-webadmin.com/fr/sitemap.xml</loc></sitemap><sitemap><loc>https://wireguard-webadmin.com/de/sitemap.xml</loc></sitemap></sitemapindex>

11
docs/tags/index.html Normal file
View File

@@ -0,0 +1,11 @@
<!doctype html><html lang=en-us><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Tags · wireguard_webadmin</title><meta name=description content="Self-hosted VPN management and Zero Trust access control."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/tags/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/tags/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/tags/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/tags/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/tags/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/tags/"><meta property="og:title" content="Tags · wireguard_webadmin"><meta property="og:description" content="Self-hosted VPN management and Zero Trust access control."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Tags · wireguard_webadmin"><meta name=twitter:description content="Self-hosted VPN management and Zero Trust access control."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/>Home</a></li><li><a href=/zero-trust/>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/>Get Involved</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇬🇧 EN
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/tags/ hreflang=en class=lang-active><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/tags/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/tags/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/tags/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/tags/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><div class=container style="padding:4rem 0"><h1>Tags</h1></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/zero-trust/>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/>Get Involved</a></li></ul><div class=footer-built>built by <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>

1
docs/tags/index.xml Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tags on wireguard_webadmin</title><link>https://wireguard-webadmin.com/tags/</link><description>Recent content in Tags on wireguard_webadmin</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://wireguard-webadmin.com/tags/index.xml" rel="self" type="application/rss+xml"/></channel></rss>

View File

@@ -0,0 +1,16 @@
<!doctype html><html lang=en-us><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Zero Trust Application Gateway · wireguard_webadmin</title><meta name=description content="Learn how wireguard_webadmin implements Zero Trust access control to safely publish internal apps like Grafana, Proxmox, and more."><link rel=alternate hreflang=en-us href=https://wireguard-webadmin.com/zero-trust/><link rel=alternate hreflang=pt-BR href=https://wireguard-webadmin.com/pt-br/zero-trust/><link rel=alternate hreflang=es href=https://wireguard-webadmin.com/es/zero-trust/><link rel=alternate hreflang=fr href=https://wireguard-webadmin.com/fr/zero-trust/><link rel=alternate hreflang=de href=https://wireguard-webadmin.com/de/zero-trust/><link rel=alternate hreflang=x-default href=https://wireguard-webadmin.com/><meta property="og:type" content="website"><meta property="og:url" content="https://wireguard-webadmin.com/zero-trust/"><meta property="og:title" content="Zero Trust Application Gateway · wireguard_webadmin"><meta property="og:description" content="Learn how wireguard_webadmin implements Zero Trust access control to safely publish internal apps like Grafana, Proxmox, and more."><meta property="og:image" content="https://wireguard-webadmin.com/og-image.png"><meta property="og:image:width" content="1280"><meta property="og:image:height" content="800"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Zero Trust Application Gateway · wireguard_webadmin"><meta name=twitter:description content="Learn how wireguard_webadmin implements Zero Trust access control to safely publish internal apps like Grafana, Proxmox, and more."><meta name=twitter:image content="https://wireguard-webadmin.com/og-image.png"><link rel=icon type=image/svg+xml href=/favicon.svg><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel=stylesheet><link rel=stylesheet href=/css/main.min.css></head><body><header class=site-header><div class=container><nav class=nav-inner><a href=/ class=nav-logo>wireguard_<span>webadmin</span></a>
<button class=hamburger aria-label="Toggle menu" aria-expanded=false>
<span></span><span></span><span></span></button><ul class=nav-links><li><a href=/>Home</a></li><li><a href=/zero-trust/ aria-current=page>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/>Get Involved</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener class=nav-github><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.374.0.0 5.373.0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931.0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176.0.0 1.008-.322 3.301 1.23A11.509 11.509.0 0112 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221.0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12z"/></svg>
GitHub</a></li><li class=nav-lang-sep></li><li class=lang-dropdown><button class=lang-btn aria-expanded=false>
🇬🇧 EN
<svg width="10" height="10" viewBox="0 0 10 10" fill="currentColor"><path d="M2 3.5l3 3 3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></button><ul class=lang-menu><li><a href=/zero-trust/ hreflang=en class=lang-active><span class=lang-flag>🇬🇧</span>
<span>English</span></a></li><li><a href=/pt-br/zero-trust/ hreflang=pt-br><span class=lang-flag>🇧🇷</span>
<span>Português</span></a></li><li><a href=/es/zero-trust/ hreflang=es><span class=lang-flag>🇪🇸</span>
<span>Español</span></a></li><li><a href=/fr/zero-trust/ hreflang=fr><span class=lang-flag>🇫🇷</span>
<span>Français</span></a></li><li><a href=/de/zero-trust/ hreflang=de><span class=lang-flag>🇩🇪</span>
<span>Deutsch</span></a></li></ul></li></ul></nav></div></header><main><section class=page-hero><div class=container><div class=section-label>Zero Trust</div><h1>Zero Trust Application Gateway</h1><p class=section-sub style=margin-top:1rem>Publish internal services securely — without exposing them to the internet.</p></div></section><div class=page-content><div class=container><h2 id=what-is-zero-trust-here>What is Zero Trust here?</h2><p>Traditional network security assumes that anything inside your network can be trusted.
Zero Trust flips that model: <strong>no request is trusted by default</strong>, even if it comes from inside the VPN.</p><p>In wireguard_webadmin, the Zero Trust application gateway sits in front of your internal services.
Every request must authenticate before reaching the app — the service itself never needs to be exposed directly.</p><hr><h2 id=how-a-request-flows>How a request flows</h2><div class=flow-cards><div class=flow-card><div class=flow-card-header><span class=flow-card-num>1</span> <strong>Client reaches gateway</strong></div><p>The public endpoint receives the request instead of the internal service.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>2</span> <strong>Browser validation</strong></div><p>Altcha proof-of-work can challenge automated abuse before login even starts.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>3</span> <strong>Identity checks</strong></div><p>Credentials, TOTP, and source IP policy are evaluated.</p></div><div class=flow-card><div class=flow-card-header><span class=flow-card-num>4</span> <strong>Forward to upstream</strong></div><p>Only approved requests are proxied to Grafana, Proxmox, or another internal app.</p></div></div><hr><h2 id=authentication-methods>Authentication methods</h2><div class=auth-list><div class=auth-row><div class=auth-row-name>TOTP / 2FA</div><div class=auth-row-desc>Time-based one-time passwords. Works with any TOTP app — Google Authenticator, Aegis, Authy.</div></div><div class=auth-row><div class=auth-row-name>Local credentials</div><div class=auth-row-desc>Username and password managed inside wireguard_webadmin. No external IdP required.</div></div><div class=auth-row><div class=auth-row-name>IP ACL</div><div class=auth-row-desc>Whitelist specific IPs or subnets. VPN peers can be automatically trusted by their tunnel address.</div></div><div class=auth-row><div class=auth-row-name>OIDC <span class=auth-coming>coming soon</span></div><div class=auth-row-desc>Delegate authentication to Keycloak, Authentik, Google Workspace, or any OIDC-compatible provider.</div></div></div><hr><h2 id=anti-brute-force-altcha-proof-of-work>Anti-brute-force: Altcha proof-of-work</h2><p>Before any login form is shown, the browser must solve a lightweight computational challenge
(<a href=https://altcha.org/ target=_blank rel=noopener>Altcha</a>).</p><p>This has zero friction for real users (solved in milliseconds by modern hardware) but makes
automated credential-stuffing attacks computationally expensive at scale.</p><div class=callout><p><strong>Layered protection:</strong> Rate limiting is already in place. Proof-of-work complements it — where rate limiting bounds the request volume per IP, Altcha adds a per-request computational cost that makes distributed attacks expensive regardless of how many source IPs are involved.</p></div><hr><h2 id=use-cases>Use cases</h2><ul><li>Expose <strong>Grafana</strong> to your team without opening port 3000 to the internet</li><li>Publish a <strong>Proxmox</strong> web console behind TOTP, accessible only from your VPN</li><li>Share a <strong>self-hosted app</strong> with a client with time-limited credentials</li><li>Gate any <strong>internal HTTP service</strong> without touching its configuration</li></ul><div class="callout green"><p><strong>No app changes required.</strong> The gatekeeper proxies the request transparently.
Your internal service doesn't need to implement authentication — the gateway handles it.</p></div><hr><p>VPN management and the application gateway run as a single self-hosted stack. No account at a third-party service, no outbound tunnel dependency, no traffic leaving your infrastructure.</p></div></div></main><footer class=site-footer><div class=container><div class=footer-inner><div class=footer-logo>wireguard_<span>webadmin</span></div><ul class=footer-links><li><a href=https://github.com/eduardogsilva/wireguard_webadmin target=_blank rel=noopener>GitHub</a></li><li><a href=https://github.com/eduardogsilva/wireguard_webadmin/discussions target=_blank rel=noopener>Discussions</a></li><li><a href=/zero-trust/>Zero Trust</a></li><li><a href=/deployment/>Deployment</a></li><li><a href=/get-involved/>Get Involved</a></li></ul><div class=footer-built>built by <a href=https://github.com/eduardogsilva target=_blank rel=noopener>@eduardogsilva</a></div></div></div></footer><script>document.querySelectorAll(".tab-btn").forEach(e=>{e.addEventListener("click",()=>{const t=e.closest(".tab-group");t.querySelectorAll(".tab-btn").forEach(e=>e.classList.remove("active")),t.querySelectorAll(".tab-panel").forEach(e=>e.classList.remove("active")),e.classList.add("active"),t.querySelector("#"+e.dataset.tab).classList.add("active")})});const hamburger=document.querySelector(".hamburger"),navLinks=document.querySelector(".nav-links");hamburger&&(hamburger.addEventListener("click",e=>{e.stopPropagation();const t=navLinks.classList.toggle("open");hamburger.classList.toggle("open",t),hamburger.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{!navLinks.contains(e.target)&&!hamburger.contains(e.target)&&(navLinks.classList.remove("open"),hamburger.classList.remove("open"),hamburger.setAttribute("aria-expanded",!1))}));const langBtn=document.querySelector(".lang-btn"),langDropdown=document.querySelector(".lang-dropdown");if(langBtn&&(langBtn.addEventListener("click",e=>{e.stopPropagation();const t=langDropdown.classList.toggle("open");langBtn.setAttribute("aria-expanded",t)}),document.addEventListener("click",e=>{langDropdown.contains(e.target)||(langDropdown.classList.remove("open"),langBtn.setAttribute("aria-expanded",!1))}),langDropdown.querySelectorAll(".lang-menu a").forEach(e=>{e.addEventListener("click",()=>localStorage.setItem("lang-manual","1"))})),location.pathname==="/"&&!localStorage.getItem("lang-manual")){const t=(navigator.language||navigator.userLanguage||"en").toLowerCase(),n=[{prefix:"pt",url:"/pt-br/"},{prefix:"es",url:"/es/"},{prefix:"fr",url:"/fr/"},{prefix:"de",url:"/de/"}],e=n.find(e=>t.startsWith(e.prefix));e&&location.replace(e.url)}</script></body></html>