Skip to content

Commit

Permalink
deploy: b4b2fc4
Browse files Browse the repository at this point in the history
  • Loading branch information
radarsymphony committed Nov 16, 2023
1 parent ccc7189 commit 180c61f
Show file tree
Hide file tree
Showing 13 changed files with 19 additions and 17 deletions.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.120.2"><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><style>:root{--accent-color:#c40000}</style><title>knightsdata</title>
<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.120.4"><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><style>:root{--accent-color:#c40000}</style><title>knightsdata</title>
<meta name=description content="On a quest to serve."><meta name=keywords content="blog,gokarna,hugo,devops,tech,documentation,sysadmin,opensource,how-to,IT,software"><meta property="og:url" content="https://knightsdata.com/"><meta property="og:type" content="website"><meta property="og:title" content="knightsdata"><meta property="og:description" content="On a quest to serve."><meta property="og:image" content="/images/avatar.jpg"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="knightsdata"><meta name=twitter:description content="On a quest to serve."><meta property="twitter:domain" content="https://knightsdata.com/"><meta property="twitter:url" content="https://knightsdata.com/"><meta name=twitter:image content="/images/avatar.jpg"><link rel=canonical href=https://knightsdata.com/><link rel=stylesheet type=text/css href=https://knightsdata.com/css/normalize.min.css media=print onload='this.media="all"'><link rel=stylesheet type=text/css href=https://knightsdata.com/css/main.css><link disabled id=dark-theme rel=stylesheet href=https://knightsdata.com/css/dark.css><script src=https://knightsdata.com/js/svg-injector.min.js></script><script src=https://knightsdata.com/js/feather-icons.min.js></script><script src=https://knightsdata.com/js/main.js></script><link rel=stylesheet href=/css/custom.css></head><body><script type=text/javascript>setThemeByUserPref()</script><header class=header><nav class=header-nav><div class=avatar><a href=https://knightsdata.com><img src=https://knightsdata.com/images/avatar.jpg alt=avatar></a></div><div class=nav-title><a class=nav-brand href=https://knightsdata.com>knightsdata</a></div><div class=nav-links><div class=nav-link><a href=https://knightsdata.com/posts/>Posts</a></div><div class=nav-link><a href=https://knightsdata.com/tags/>Tags</a></div><div class=nav-link><a href=https://knightsdata.com/about/>About</a></div><div class=nav-link><a href=https://github.com/radarsymphony><span data-feather=github></span></a></div><span class=nav-icons-divider></span><div class="nav-link dark-theme-toggle"><span id=dark-theme-toggle-screen-reader-target class=sr-only></span>
<a><span id=theme-toggle-icon data-feather=moon></span></a></div><div class=nav-link id=hamburger-menu-toggle><span id=hamburger-menu-toggle-screen-reader-target class=sr-only>menu</span>
<a><span data-feather=menu></span></a></div><ul class="nav-hamburger-list visibility-hidden"><li class=nav-item><a href=https://knightsdata.com/posts/>Posts</a></li><li class=nav-item><a href=https://knightsdata.com/tags/>Tags</a></li><li class=nav-item><a href=https://knightsdata.com/about/>About</a></li><li class=nav-item><a href=https://github.com/radarsymphony><span data-feather=github></span></a></li><li class="nav-item dark-theme-toggle"><span id=dark-theme-toggle-screen-reader-target class=sr-only>theme</span>
Expand Down
2 changes: 1 addition & 1 deletion index.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>knightsdata</title><link>https://knightsdata.com/</link><description>Recent content on knightsdata</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 31 Oct 2023 15:01:39 -0700</lastBuildDate><atom:link href="https://knightsdata.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Heads or Tailscale VPN</title><link>https://knightsdata.com/posts/headscale-for-tailscale-vpn/</link><pubDate>Tue, 31 Oct 2023 15:01:39 -0700</pubDate><guid>https://knightsdata.com/posts/headscale-for-tailscale-vpn/</guid><description>Overview This guide outlines how to set up Headscale running as Docker container behind a reverse proxy (Traefik). It uses a free ubuntu VPS from the Oracle Cloud Free Tier, but any linux-based host with public IP and about ~1GB of memory should work for small Home Lab setups.
Headscale is an opensource reverse-engineered implementation of the closed source Tailscale coordination server. There are many advantages to using the original Tailscale coordination server, such as a feature admin panel and multiple tailnets.</description></item><item><title>Tailscale Mesh VPN</title><link>https://knightsdata.com/posts/tailscale-mesh-vpn/</link><pubDate>Tue, 31 Oct 2023 13:47:56 -0700</pubDate><guid>https://knightsdata.com/posts/tailscale-mesh-vpn/</guid><description>Overview Tailscale is an easy to configure mesh VPN. It uses NAT traversal to connect peers to each other. This article will outline the steps to set up Tailscale running in Docker as if it were running on the docker host directly (without SSH over the VPN - yet). This approach enables managing the Tailscale connection as you would any other docker service and creates a portable and deploy-able compose.yml to run on other systems.</description></item><item><title>Local DNS with Bind9</title><link>https://knightsdata.com/posts/local-dns-with-bind9/</link><pubDate>Sun, 29 Oct 2023 10:30:32 -0700</pubDate><guid>https://knightsdata.com/posts/local-dns-with-bind9/</guid><description>Overview This short article outlines the steps to set up a local DNS server using BIND9 and Docker on a Raspberry Pi. This approach enables you to manage your own zone(s) for local services running in a Home Lab. It may also help cache DNS queries to reduce lookup time for frequently requested resources. I&amp;rsquo;ve only tested this approach in protected local networks.
Headscale is an opensource reverse-engineered implementation of the closed source Tailscale coordination server. There are many advantages to using the original Tailscale coordination server, such as a convenient admin panel and multiple tailnets.</description></item><item><title>Tailscale Mesh VPN</title><link>https://knightsdata.com/posts/tailscale-mesh-vpn/</link><pubDate>Tue, 31 Oct 2023 13:47:56 -0700</pubDate><guid>https://knightsdata.com/posts/tailscale-mesh-vpn/</guid><description>Overview Tailscale is an easy to configure mesh VPN. It uses NAT traversal to connect peers to each other. This article will outline the steps to set up Tailscale running in Docker as if it were running on the docker host directly (without SSH over the VPN - yet). This approach enables managing the Tailscale connection as you would any other docker service and creates a portable and deploy-able compose.yml to run on other systems.</description></item><item><title>Local DNS with Bind9</title><link>https://knightsdata.com/posts/local-dns-with-bind9/</link><pubDate>Sun, 29 Oct 2023 10:30:32 -0700</pubDate><guid>https://knightsdata.com/posts/local-dns-with-bind9/</guid><description>Overview This short article outlines the steps to set up a local DNS server using BIND9 and Docker on a Raspberry Pi. This approach enables you to manage your own zone(s) for local services running in a Home Lab. It may also help cache DNS queries to reduce lookup time for frequently requested resources. I&amp;rsquo;ve only tested this approach in protected local networks.
Prerequisites Docker &amp;amp; docker-compose Raspberry Pi (optional*) Static IP for Pi (reserved in your DHCP server/router) * You could host this on a personal computer.</description></item><item><title>Traefik Reverse Proxy</title><link>https://knightsdata.com/posts/traefik-reverse-proxy/</link><pubDate>Fri, 27 Oct 2023 18:38:41 -0700</pubDate><guid>https://knightsdata.com/posts/traefik-reverse-proxy/</guid><description>Overview The following guide outlines the steps to run Traefik with docker as a reverse proxy for your host. This setup enables you to resolve hostnames to particular containers running on the host. With a public domain, you can use Traefik to request SSL certificates to enable https for each site.
Prerequisites Public domain (I use &amp;ldquo;example.com&amp;rdquo; throughout, so update these examples with your domain) Docker Docker Compose DNS Setup To allow Traefik to request SSL certificates, you will need to generate an API key with your DNS provider and identify the email associated with that account.</description></item><item><title>How To Set Up This Blog</title><link>https://knightsdata.com/posts/set-up-this-blog/</link><pubDate>Sun, 05 Feb 2023 18:00:23 -0800</pubDate><guid>https://knightsdata.com/posts/set-up-this-blog/</guid><description>Overview This guide outlines the steps required to create a minimal blog like this one. This blog leverages Github Pages and Hugo to render markdown pages as blog posts and apply the Gokarna theme.
The steps will begin with setting up an account on github.com and run through to deploying the site via a github workflow. I may create another post about adding the ability for your readers to comment on a post.</description></item></channel></rss>
2 changes: 1 addition & 1 deletion posts/headscale-for-tailscale-vpn/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<meta name=description content="On a quest to serve."><meta name=keywords content="blog,gokarna,hugo,devops,tech,documentation,sysadmin,opensource,how-to,IT,software,vpn,tailscale,headscale,server,homelab,network"><meta property="og:url" content="https://knightsdata.com/posts/headscale-for-tailscale-vpn/"><meta property="og:type" content="website"><meta property="og:title" content="Heads or Tailscale VPN"><meta property="og:description" content="On a quest to serve."><meta property="og:image" content="/images/avatar.jpg"><meta name=twitter:card content="summary_large_image"><meta name=twitter:title content="Heads or Tailscale VPN"><meta name=twitter:description content="On a quest to serve."><meta property="twitter:domain" content="https://knightsdata.com/posts/headscale-for-tailscale-vpn/"><meta property="twitter:url" content="https://knightsdata.com/posts/headscale-for-tailscale-vpn/"><meta name=twitter:image content="/images/avatar.jpg"><link rel=canonical href=https://knightsdata.com/posts/headscale-for-tailscale-vpn/><link rel=stylesheet type=text/css href=https://knightsdata.com/css/normalize.min.css media=print onload='this.media="all"'><link rel=stylesheet type=text/css href=https://knightsdata.com/css/main.css><link disabled id=dark-theme rel=stylesheet href=https://knightsdata.com/css/dark.css><script src=https://knightsdata.com/js/svg-injector.min.js></script><script src=https://knightsdata.com/js/feather-icons.min.js></script><script src=https://knightsdata.com/js/main.js></script><link rel=stylesheet href=/css/custom.css></head><body><script type=text/javascript>setThemeByUserPref()</script><header class=header><nav class=header-nav><div class=avatar><a href=https://knightsdata.com><img src=https://knightsdata.com/images/avatar.jpg alt=avatar></a></div><div class=nav-title><a class=nav-brand href=https://knightsdata.com>knightsdata</a></div><div class=nav-links><div class=nav-link><a href=https://knightsdata.com/posts/>Posts</a></div><div class=nav-link><a href=https://knightsdata.com/tags/>Tags</a></div><div class=nav-link><a href=https://knightsdata.com/about/>About</a></div><div class=nav-link><a href=https://github.com/radarsymphony><span data-feather=github></span></a></div><span class=nav-icons-divider></span><div class="nav-link dark-theme-toggle"><span id=dark-theme-toggle-screen-reader-target class=sr-only></span>
<a><span id=theme-toggle-icon data-feather=moon></span></a></div><div class=nav-link id=hamburger-menu-toggle><span id=hamburger-menu-toggle-screen-reader-target class=sr-only>menu</span>
<a><span data-feather=menu></span></a></div><ul class="nav-hamburger-list visibility-hidden"><li class=nav-item><a href=https://knightsdata.com/posts/>Posts</a></li><li class=nav-item><a href=https://knightsdata.com/tags/>Tags</a></li><li class=nav-item><a href=https://knightsdata.com/about/>About</a></li><li class=nav-item><a href=https://github.com/radarsymphony><span data-feather=github></span></a></li><li class="nav-item dark-theme-toggle"><span id=dark-theme-toggle-screen-reader-target class=sr-only>theme</span>
<a><span id=theme-toggle-icon data-feather=moon></span></a></li></ul></div></nav></header><main id=content><div class="post container"><div class=post-header-section><h1>Heads or Tailscale VPN</h1><small role=doc-subtitle></small><p class=post-date>October 31, 2023</p><ul class=post-tags><li class=post-tag><a href=https://knightsdata.com/tags/vpn>vpn</a></li><li class=post-tag><a href=https://knightsdata.com/tags/tailscale>tailscale</a></li><li class=post-tag><a href=https://knightsdata.com/tags/headscale>headscale</a></li><li class=post-tag><a href=https://knightsdata.com/tags/opensource>opensource</a></li><li class=post-tag><a href=https://knightsdata.com/tags/server>server</a></li><li class=post-tag><a href=https://knightsdata.com/tags/homelab>homelab</a></li><li class=post-tag><a href=https://knightsdata.com/tags/network>network</a></li></ul></div><div class=post-content><p><h1 id=overview>Overview</h1><p>This guide outlines how to set up <a href=https://headscale.net/>Headscale</a> running as Docker container behind a reverse proxy (Traefik). It uses a free ubuntu VPS from the Oracle Cloud Free Tier, but any linux-based host with public IP and about ~1GB of memory should work for small Home Lab setups.</p><p>Headscale is an opensource reverse-engineered implementation of the closed source Tailscale coordination server. There are many advantages to using the original Tailscale coordination server, such as a feature admin panel and multiple tailnets. However, I am on a quest to explore opensource and privacy-focused software, I&rsquo;ve decided to set up Headscale as my Tailscale coordination server.</p><p>Setting up Headscale behind a reverse-proxy is not something that the maintainers support or use themselves, but it <em>is</em> a feature that is often <a href=https://github.com/juanfont/headscale/issues/527>requested by community members</a>. I wanted to see if I could identify a way to configure Headscale behind Traefik as a reverse proxy. The following is my working prototype.</p><h4 id=prerequisites>Prerequisites</h4><ul><li>Linux VPS with Public IP and ~1GB of memory</li><li>Traefik running in docker container (<a href=/posts/traefik-reverse-proxy>Review this guide</a>)</li><li>Public domain</li><li><a href=https://github.com/juanfont/headscale/blob/main/docs/reverse-proxy.md>Must read this Headscale documentation</a></li></ul><h1 id=vps-setup>VPS Setup</h1><ol><li>Create a free VPS with Oracle Cloud.</li><li>Point a hostname to the public IP of your VPS (e.g. <code>headscale.example.com</code>).</li><li>Update packages and install docker and docker-compose.</li><li>Set up a container running Traefik as described in <a href=/posts/traefik-reverse-proxy>this guide</a>.</li></ol><h1 id=headscale-setup>Headscale Setup</h1><ol><li>Login to the VPS with SSH.</li><li>Create a directory for Headscale: <code>mkdir /srv/apps/headscale</code></li><li>Change to that directory: <code>cd /srv/apps/headscale</code></li><li>Create a compose.yml file and paste the following into, updating values as required:</li></ol><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-yaml data-lang=yaml><span style=display:flex><span><span style=color:#f92672>services</span>:
<a><span id=theme-toggle-icon data-feather=moon></span></a></li></ul></div></nav></header><main id=content><div class="post container"><div class=post-header-section><h1>Heads or Tailscale VPN</h1><small role=doc-subtitle></small><p class=post-date>October 31, 2023</p><ul class=post-tags><li class=post-tag><a href=https://knightsdata.com/tags/vpn>vpn</a></li><li class=post-tag><a href=https://knightsdata.com/tags/tailscale>tailscale</a></li><li class=post-tag><a href=https://knightsdata.com/tags/headscale>headscale</a></li><li class=post-tag><a href=https://knightsdata.com/tags/opensource>opensource</a></li><li class=post-tag><a href=https://knightsdata.com/tags/server>server</a></li><li class=post-tag><a href=https://knightsdata.com/tags/homelab>homelab</a></li><li class=post-tag><a href=https://knightsdata.com/tags/network>network</a></li></ul></div><div class=post-content><p><h1 id=overview>Overview</h1><p>This guide outlines how to set up <a href=https://headscale.net/>Headscale</a> running as Docker container behind a reverse proxy (Traefik). It uses a free ubuntu VPS from the Oracle Cloud Free Tier, but any linux-based host with public IP and about ~1GB of memory should work for small Home Lab setups.</p><p>Headscale is an opensource reverse-engineered implementation of the closed source Tailscale coordination server. There are many advantages to using the original Tailscale coordination server, such as a convenient admin panel and multiple tailnets. However, I am on a quest to explore opensource and privacy-focused software, I&rsquo;ve decided to set up Headscale as my Tailscale coordination server.</p><p>Setting up Headscale behind a reverse-proxy is not something that the maintainers support or use themselves, but it <em>is</em> a feature that is often <a href=https://github.com/juanfont/headscale/issues/527>requested by community members</a>. I wanted to see if I could identify a way to configure Headscale behind Traefik as a reverse proxy. The following is my working prototype.</p><h4 id=prerequisites>Prerequisites</h4><ul><li>Linux VPS with Public IP and ~1GB of memory</li><li>Traefik running in docker container (<a href=/posts/traefik-reverse-proxy>Review this guide</a>)</li><li>Public domain</li><li><a href=https://github.com/juanfont/headscale/blob/main/docs/reverse-proxy.md>Must read this Headscale documentation</a></li></ul><h1 id=vps-setup>VPS Setup</h1><ol><li>Create a free VPS with Oracle Cloud.</li><li>Point a hostname to the public IP of your VPS (e.g. <code>headscale.example.com</code>).</li><li>Update packages and install docker and docker-compose.</li><li>Set up a container running Traefik as described in <a href=/posts/traefik-reverse-proxy>this guide</a>.</li></ol><h1 id=headscale-setup>Headscale Setup</h1><ol><li>Login to the VPS with SSH.</li><li>Create a directory for Headscale: <code>mkdir /srv/apps/headscale</code></li><li>Change to that directory: <code>cd /srv/apps/headscale</code></li><li>Create a compose.yml file and paste the following into, updating values as required:</li></ol><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-yaml data-lang=yaml><span style=display:flex><span><span style=color:#f92672>services</span>:
</span></span><span style=display:flex><span> <span style=color:#f92672>headscale</span>:
</span></span><span style=display:flex><span> <span style=color:#f92672>image</span>: <span style=color:#ae81ff>headscale/headscale:latest</span>
</span></span><span style=display:flex><span> <span style=color:#f92672>container_name</span>: <span style=color:#ae81ff>headscale</span>
Expand Down
Loading

0 comments on commit 180c61f

Please sign in to comment.