Deployed 72adc5ff to development with ProperDocs 1.6.7 and mike 2.2.0

This commit is contained in:
github-actions 2026-06-19 13:22:36 +00:00
parent ffd81c2eac
commit c1a6d2eeb5
8 changed files with 50 additions and 51 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -4,15 +4,14 @@
</span></code></pre></div> <p>Headscale logs <code>WRN listening without TLS but ServerURL does not start with http://</code> during startup. This is expected and indicates that the reverse proxy is in charge of terminating TLS.</p> <h3 id=trusted-proxies>Trusted proxies<a class=headerlink href=#trusted-proxies title="Permanent link">&para;</a></h3> <p>Headscale ignores <code>True-Client-IP</code>, <code>X-Real-IP</code> and <code>X-Forwarded-For</code> headers unless the request's TCP peer matches the <code>trusted_proxies</code> configuration option. Set this to the CIDR(s) your reverse proxy connects from so the real client IP appears in access logs.</p> <div class="language-yaml highlight"><span class=filename>config.yaml</span><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a><span class=nt>trusted_proxies</span><span class=p>:</span>
</span><span id=__span-1-2><a id=__codelineno-1-2 name=__codelineno-1-2 href=#__codelineno-1-2></a><span class=w> </span><span class="p p-Indicator">-</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">127.0.0.1/32</span>
</span><span id=__span-1-3><a id=__codelineno-1-3 name=__codelineno-1-3 href=#__codelineno-1-3></a><span class=w> </span><span class="p p-Indicator">-</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">::1/128</span>
</span></code></pre></div> <p>The reverse proxy is responsible to replace any client-supplied <code>True-Client-IP</code>, <code>X-Real-IP</code>, <code>X-Forwarded-For</code> headers on inbound requests with sanitized values. Headscale picks the first valid IP address supplied by headers in this order:</p> <ul> <li><code>True-Client-IP</code></li> <li><code>X-Real-IP</code></li> <li><code>X-Forwarded-For</code></li> </ul> <h2 id=limitations>Limitations<a class=headerlink href=#limitations title="Permanent link">&para;</a></h2> <ul> <li>A reverse proxy adds another layer of complexity that needs to be able to handle the <a href=#websocket>Tailscale Control Protocol</a> properly. Be sure to test your setup without a reverse proxy before raising an issue.</li> <li>STUN (used along with the <a href=../../derp/ >embedded DERP server</a>) requires udp/3478 to be served publicly.</li> <li><a href=../../api/#grpc>gRPC</a> (used to remote control Headscale) may not be proxied.</li> </ul> <h2 id=reverse-proxy-specific-configuration>Reverse proxy specific configuration<a class=headerlink href=#reverse-proxy-specific-configuration title="Permanent link">&para;</a></h2> <div class="admonition warning"> <p class=admonition-title>Third-party software and services</p> <p>This section of the documentation is specific for third-party software and services. We recommend users read the third-party documentation for a secure configuration.</p> </div> <p>This following Headscale configuration may be used as base for the various reverse proxy examples below. The following is <a href=../../../setup/requirements/ >assumed</a>:</p> <ul> <li>Service for Tailscale clients is served via HTTPS on port 443.</li> <li>The reverse proxy redirects HTTP to HTTPS and is terminating TLS.</li> <li>Both Headscale and the reverse proxy are running on the same host.</li> <li><a href=../../debug/#metrics-and-debug-endpoint>Metrics</a> and <a href=../../api/#grpc>gRPC</a> are not proxied, those are available via localhost.</li> </ul> <div class="language-yaml highlight"><span class=filename>config.yaml</span><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=hll><span class=nt>server_url</span><span class=p>:</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">https://&lt;SERVER_NAME&gt;</span>
</span></code></pre></div> <p>The reverse proxy is responsible to replace any client-supplied <code>True-Client-IP</code>, <code>X-Real-IP</code>, <code>X-Forwarded-For</code> headers on inbound requests with sanitized values. Headscale picks the first valid IP address supplied by headers in this order:</p> <ul> <li><code>True-Client-IP</code></li> <li><code>X-Real-IP</code></li> <li><code>X-Forwarded-For</code></li> </ul> <h2 id=limitations>Limitations<a class=headerlink href=#limitations title="Permanent link">&para;</a></h2> <ul> <li>A reverse proxy adds another layer of complexity that needs to be able to handle the <a href=#websocket>Tailscale Control Protocol</a> properly. Be sure to test your setup without a reverse proxy before raising an issue.</li> <li>STUN (used along with the <a href=../../derp/ >embedded DERP server</a>) requires udp/3478 to be served publicly.</li> </ul> <h2 id=reverse-proxy-specific-configuration>Reverse proxy specific configuration<a class=headerlink href=#reverse-proxy-specific-configuration title="Permanent link">&para;</a></h2> <div class="admonition warning"> <p class=admonition-title>Third-party software and services</p> <p>This section of the documentation is specific for third-party software and services. We recommend users read the third-party documentation for a secure configuration.</p> </div> <p>This following Headscale configuration may be used as base for the various reverse proxy examples below. The following is <a href=../../../setup/requirements/ >assumed</a>:</p> <ul> <li>Service for Tailscale clients is served via HTTPS on port 443.</li> <li>The reverse proxy redirects HTTP to HTTPS and is terminating TLS.</li> <li>Both Headscale and the reverse proxy are running on the same host.</li> <li><a href=../../debug/#metrics-and-debug-endpoint>Metrics</a> are not proxied, those are available via localhost.</li> </ul> <div class="language-yaml highlight"><span class=filename>config.yaml</span><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a><span class=hll><span class=nt>server_url</span><span class=p>:</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">https://&lt;SERVER_NAME&gt;</span>
</span></span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a><span class=nt>listen_addr</span><span class=p>:</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">127.0.0.1:8080</span>
</span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a><span class=nt>metrics_listen_addr</span><span class=p>:</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">127.0.0.1:9090</span>
</span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=nt>grpc_listen_addr</span><span class=p>:</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">127.0.0.1:50443</span>
</span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a><span class=nt>trusted_proxies</span><span class=p>:</span>
</span><span id=__span-2-6><a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a><span class=w> </span><span class="p p-Indicator">-</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">127.0.0.1/32</span>
</span><span id=__span-2-7><a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=w> </span><span class="p p-Indicator">-</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">::1/128</span>
</span><span id=__span-2-8><a id=__codelineno-2-8 name=__codelineno-2-8 href=#__codelineno-2-8></a><span class=nt>tls_cert_path</span><span class=p>:</span><span class=w> </span><span class=s>&quot;&quot;</span>
</span><span id=__span-2-9><a id=__codelineno-2-9 name=__codelineno-2-9 href=#__codelineno-2-9></a><span class=nt>tls_key_path</span><span class=p>:</span><span class=w> </span><span class=s>&quot;&quot;</span>
</span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a><span class=nt>trusted_proxies</span><span class=p>:</span>
</span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a><span class=w> </span><span class="p p-Indicator">-</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">127.0.0.1/32</span>
</span><span id=__span-2-6><a id=__codelineno-2-6 name=__codelineno-2-6 href=#__codelineno-2-6></a><span class=w> </span><span class="p p-Indicator">-</span><span class=w> </span><span class="l l-Scalar l-Scalar-Plain">::1/128</span>
</span><span id=__span-2-7><a id=__codelineno-2-7 name=__codelineno-2-7 href=#__codelineno-2-7></a><span class=nt>tls_cert_path</span><span class=p>:</span><span class=w> </span><span class=s>&quot;&quot;</span>
</span><span id=__span-2-8><a id=__codelineno-2-8 name=__codelineno-2-8 href=#__codelineno-2-8></a><span class=nt>tls_key_path</span><span class=p>:</span><span class=w> </span><span class=s>&quot;&quot;</span>
</span></code></pre></div> <h3 id=apache>Apache<a class=headerlink href=#apache title="Permanent link">&para;</a></h3> <p>The following basic Apache configuration works with the Headscale configuration <a href=#reverse-proxy-specific-configuration>as shown above</a>. Substitute placeholders and adjust the configuration as needed:</p> <ul> <li><code>&lt;SERVER_NAME&gt;</code>: The server name for your instance, e.g. <code>headscale.example.com</code></li> <li><code>&lt;PATH_TO_TLS_CERT&gt;</code>: Absolute path to your TLS certificate</li> <li><code>&lt;PATH_TO_TLS_KEY&gt;</code>: Absolute path to your TLS private key</li> </ul> <div class="language-apache highlight"><span class=filename>apache.conf</span><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a><span class=nt>&lt;VirtualHost</span><span class=w> </span><span class=s>*:80</span><span class=nt>&gt;</span>
</span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a><span class=hll><span class=w> </span><span class=nb>ServerName</span><span class=w> </span>&lt;SERVER_NAME&gt;
</span></span><span id=__span-3-3><a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -2,167 +2,167 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://juanfont.github.io/headscale/development/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/about/clients/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/about/contributing/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/about/faq/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/about/features/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/about/help/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/about/releases/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/about/sponsor/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/api/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/configuration/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/debug/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/derp/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/dns/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/oidc/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/policy/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/registration/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/routes/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/tags/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/tls/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/integration/reverse-proxy/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/integration/tools/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/ref/integration/web-ui/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/setup/requirements/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/setup/upgrade/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/setup/install/community/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/setup/install/container/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/setup/install/main/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/setup/install/official/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/setup/install/source/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/usage/getting-started/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/usage/connect/android/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/usage/connect/apple/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>https://juanfont.github.io/headscale/development/usage/connect/windows/</loc>
<lastmod>2026-06-18</lastmod>
<lastmod>2026-06-19</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.

View file

@ -10,8 +10,8 @@
"version": "0.29.1",
"title": "0.29.1",
"aliases": [
"stable",
"latest"
"latest",
"stable"
]
},
{