From 36b96bf8c80a06c7cef811534d24e73c5c721d99 Mon Sep 17 00:00:00 2001 From: davegallant Date: Tue, 2 Jan 2024 15:56:02 +0000 Subject: [PATCH] deploy: 0da424dd19e10b797470887834e7b7edbd555a44 --- 404.html | 8 +------- about/index.html | 10 ++-------- blog/2020/03/16/appgate-sdp-on-arch-linux/index.html | 10 ++-------- blog/2021/09/06/what-to-do-with-a-homelab/index.html | 10 ++-------- blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html | 10 ++-------- .../automatically-rotating-aws-access-keys/index.html | 10 ++-------- .../index.html | 10 ++-------- .../11/14/running-k3s-in-lxc-on-proxmox/index.html | 8 +------- .../03/13/backing-up-gmail-with-synology/index.html | 10 ++-------- .../02/virtualizing-my-router-with-pfsense/index.html | 10 ++-------- blog/2022/12/10/watching-youtube-in-private/index.html | 10 ++-------- .../index.html | 10 ++-------- .../setting-up-gitea-actions-with-tailscale/index.html | 10 ++-------- categories/index.html | 8 +------- index.html | 8 +------- page/2/index.html | 8 +------- post/index.html | 8 +------- post/page/2/index.html | 8 +------- tags/aks/index.html | 8 +------- tags/aws-vault/index.html | 8 +------- tags/aws/index.html | 8 +------- tags/azure/index.html | 8 +------- tags/backup/index.html | 8 +------- tags/bastion/index.html | 8 +------- tags/cloud-sql-proxy/index.html | 8 +------- tags/containers/index.html | 8 +------- tags/database/index.html | 8 +------- tags/degoogle/index.html | 8 +------- tags/docker/index.html | 8 +------- tags/dotfiles/index.html | 8 +------- tags/eks/index.html | 8 +------- tags/gitea-actions/index.html | 8 +------- tags/gitea/index.html | 8 +------- tags/github-actions/index.html | 8 +------- tags/gmail/index.html | 8 +------- tags/home-manager/index.html | 8 +------- tags/index.html | 8 +------- tags/invidious/index.html | 8 +------- tags/k3s/index.html | 8 +------- tags/k8s/index.html | 8 +------- tags/kubectl-plugin-socks5-proxy/index.html | 8 +------- tags/linux/index.html | 8 +------- tags/lxc/index.html | 8 +------- tags/nix/index.html | 8 +------- tags/openwrt/index.html | 8 +------- tags/page/2/index.html | 8 +------- tags/page/3/index.html | 8 +------- tags/page/4/index.html | 8 +------- tags/page/5/index.html | 8 +------- tags/pfsense/index.html | 8 +------- tags/podman/index.html | 8 +------- tags/privacy/index.html | 8 +------- tags/proxmox/index.html | 8 +------- tags/proxy/index.html | 8 +------- tags/python/index.html | 8 +------- tags/ransomware/index.html | 8 +------- tags/router-on-a-stick/index.html | 8 +------- tags/router/index.html | 8 +------- tags/security/index.html | 8 +------- tags/self-hosted/index.html | 8 +------- tags/socat/index.html | 8 +------- tags/socks/index.html | 8 +------- tags/synology/index.html | 8 +------- tags/tailscale/index.html | 8 +------- tags/vlan/index.html | 8 +------- tags/vpn/index.html | 8 +------- tags/yewtu.be/index.html | 8 +------- tags/youtube/index.html | 8 +------- 68 files changed, 79 insertions(+), 487 deletions(-) diff --git a/404.html b/404.html index 03121758..b3126ae0 100644 --- a/404.html +++ b/404.html @@ -1,9 +1,3 @@ -404 Page not found
+404 Page not found

404 Page not found

This is not the page you're looking for.

\ No newline at end of file diff --git a/about/index.html b/about/index.html index e971619e..472f002d 100644 --- a/about/index.html +++ b/about/index.html @@ -1,13 +1,7 @@ -AboutAbout
+Feel free to reach out at me@davegallant.ca.">

About

I’m a software tinkerer with a passion for infrastructure, tooling, security, and coffee.

Feel free to reach out at me@davegallant.ca.

\ No newline at end of file diff --git a/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html b/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html index 4bda2184..99405ae2 100644 --- a/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html +++ b/blog/2020/03/16/appgate-sdp-on-arch-linux/index.html @@ -1,11 +1,5 @@ -AppGate SDP on Arch Linux
+AppGate SDP on Arch Linux

AppGate SDP on Arch Linux

AppGate SDP provides a Zero Trust network. This post describes how to get AppGate SDP 4.3.2 working on Arch Linux.

Depending on the AppGate SDP Server that is running, you may require a client that is more recent than the latest package on AUR. As of right now, the latest AUR is 4.2.2-1.

These steps highlight how to get it working with Python3.8 by making a 1 line modification to AppGate source code.

Packaging

We already know the community package is currently out of date, so let’s clone it:

git clone https://aur.archlinux.org/appgate-sdp.git
 cd appgate-sdp
diff --git a/blog/2021/09/06/what-to-do-with-a-homelab/index.html b/blog/2021/09/06/what-to-do-with-a-homelab/index.html
index 9207dd09..aefb4248 100644
--- a/blog/2021/09/06/what-to-do-with-a-homelab/index.html
+++ b/blog/2021/09/06/what-to-do-with-a-homelab/index.html
@@ -1,11 +1,5 @@
-What to do with a homelab
+What to do with a homelab

What to do with a homelab

A homelab can be an inexpensive way to host a multitude of internal/external services and learn a lot in the process.

Do you want host your own Media server? Ad blocker? Web server? Are you interested in learning more about Linux? Virtualization? Networking? Security? Building a homelab can be an entertaining playground to enhance your computer skills.

One of the best parts about building a homelab is that it doesn’t have to be a large investment in terms of hardware. One of the simplest ways to build a homelab is out of a refurbished computer. diff --git a/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html b/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html index c9551173..3092ced4 100644 --- a/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html +++ b/blog/2021/09/08/why-i-threw-out-my-dotfiles/index.html @@ -1,11 +1,5 @@ -Why I threw out my dotfiles

+Why I threw out my dotfiles

Why I threw out my dotfiles

Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (~/.zshrc, ~/.config/git/config, ~/.config/tmux/tmux.conf, etc). I have tried several different ways to manage them, including bare git repos and utilities such as GNU Stow. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: home-manager.

What is home-manager?

Before understanding home-manager, it is worth briefly discussing what nix is. nix is a package manager that originally spawned from a PhD thesis. Unlike other package managers, it uses symbolic links to keep track of the currently installed packages, keeping around the old ones in case you may want to rollback.

For example, I have used nix to install the package bind which includes dig. You can see that it is available on multiple platforms. The absolute path of dig can be found by running:

$ ls -lh $(which dig)
 lrwxr-xr-x 73 root 31 Dec  1969 /run/current-system/sw/bin/dig -> /nix/store/0r4qdyprljd3dki57jn6c6a8dh2rbg9g-bind-9.16.16-dnsutils/bin/dig
 

Notice that there is a hash included in the file path? This is a nix store path and is computed by the nix package manager. This nix pill does a good job explaining how this hash is computed. All of the nix pills are worth a read, if you are interested in learning more about nix itself. However, using home-manager does not require extensive knowledge of nix.

Part of the nix ecosystem includes nixpkgs. Many popular tools can be found already packaged in this repository. As you can see with these stats, there is a large number of existing packages that are being maintained by the community. Contributing a new package is easy, and anyone can do it!

home-manager leverages the nix package manager (and nixpkgs), as well the nix language so that you can declaratively define your system configuration. I store my nix-config in git so that I can keep track of my packages and configurations, and retain a clean and informative git commit history so that I can understand what changed and why.

Setting up home-manager

⚠️ If you run this on your main machine, make sure you backup your configuration files first. home-manager is pretty good about not overwriting existing configuration, but it is better to have a backup! Alternatively, you could test this out on a VM or cloud instance.

The first thing you should do is install nix:

curl -L https://nixos.org/nix/install | sh
diff --git a/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html b/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html
index a406ca5e..9a76097f 100644
--- a/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html
+++ b/blog/2021/09/17/automatically-rotating-aws-access-keys/index.html
@@ -1,14 +1,8 @@
-Automatically rotating AWS access keysAutomatically rotating AWS access keys
+In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.">

Automatically rotating AWS access keys

Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background.

In the longer term, migrating my local workflows to aws-vault seems like a more secure solution. This would mean that credentials (even temporary session credentials) never have to be written in plaintext to disk (i.e. where AWS suggests). Any existing applications, such as terraform, could be have their credentials passed to them from aws-vault, which retrieves them from the OS’s secure keystore. There is even a rotate command included.

\ No newline at end of file diff --git a/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html b/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html index d3864aa4..6b1a008c 100644 --- a/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html +++ b/blog/2021/10/11/replacing-docker-with-podman-on-macos-and-linux/index.html @@ -1,11 +1,5 @@ -Replacing docker with podman on macOS (and Linux)
+Replacing docker with podman on macOS (and Linux)

Replacing docker with podman on macOS (and Linux)

There are a number of reasons why you might want to replace docker, especially on macOS. The following feature bundled in Docker Desktop might have motivated you enough to consider replacing docker:

Docker has been one of the larger influencers in the container world, helping to standardize the OCI Image Format Specification. For many developers, containers have become synonymous with terms like docker and Dockerfile (a file containing build instructions for a container image). Docker has certainly made it very convenient to build and run containers, but it is not the only solution for doing so.

This post briefly describes my experience swapping out docker for podman on macOS.

What is a container?

A container is a standard unit of software that packages up all application dependencies within it. Multiple containers can be run on a host machine all sharing the same kernel as the host. Linux namespaces help provide an isolated view of the system, including mnt, pid, net, ipc, uid, cgroup, and time. There is an in-depth video that discusses what containers are made from, and near the end there is a demonstration on how to build your own containers from the command line.

By easily allowing the necessary dependencies to live alongside the application code, containers make the “works on my machine” problem less of a problem.

Benefits of Podman

One of the most interesting features of Podman is that it is daemonless. There isn’t a process running on your system managing your containers. In contrast, the docker client is reliant upon the docker daemon (often running as root) to be able to build and run containers.

Podman is rootless by default. It is now possible to run the docker daemon rootless as well, but it’s still not the default behaviour.

I’ve also observed that so far my 2019 16" Macbook Pro hasn’t sounded like a jet engine, although I haven’t performed any disk-intensive operations yet.

Installing Podman

Running Podman on macOS is more involved than on Linux, because the podman-machine must run Linux inside of a virtual machine. Fortunately, the installation is made simple with brew (read this if you’re installing Podman on Linux):

brew install podman
 

The podman-machine must be started:

# This is not necessary on Linux
 podman machine init
diff --git a/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html b/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html
index 2765909e..58499087 100644
--- a/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html
+++ b/blog/2021/11/14/running-k3s-in-lxc-on-proxmox/index.html
@@ -1,10 +1,4 @@
-Running K3s in LXC on Proxmox
+Running K3s in LXC on Proxmox

Running K3s in LXC on Proxmox

It has been a while since I’ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I’ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it’d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment. LXC containers also provide an efficient way to use a machine’s resources.

What is K3s?

K3s is a Kubernetes distro that advertises itself as a lightweight binary with a much smaller memory-footprint than traditional k8s. K3s is not a fork of k8s as it seeks to remain as close to upstream as it possibly can.

Configure Proxmox

This gist contains snippets and discussion on how to deploy K3s in LXC on Proxmox. It mentions that bridge-nf-call-iptables should be loaded, but I did not understand the benefit of doing this.

Disable swap

There is an issue on Kubernetes regarding swap here. There claims to be support for swap in 1.22, but for now let’s disable it:

sudo sysctl vm.swappiness=0
 sudo swapoff -a
 

It might be worth experimenting with swap enabled in the future to see how that might affect performance.

Enable IP Forwarding

To avoid IP Forwarding issues with Traefik, run the following on the host:

sudo sysctl net.ipv4.ip_forward=1
diff --git a/blog/2022/03/13/backing-up-gmail-with-synology/index.html b/blog/2022/03/13/backing-up-gmail-with-synology/index.html
index 2931e3ea..d23ad978 100644
--- a/blog/2022/03/13/backing-up-gmail-with-synology/index.html
+++ b/blog/2022/03/13/backing-up-gmail-with-synology/index.html
@@ -1,11 +1,5 @@
-Backing up gmail with Synology
+Backing up gmail with Synology

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

The thought of completely de-googling has crossed my mind on occassion. Convenience, coupled with my admiration for Google engineering, has prevented me from doing so thus far. Though, I may end up doing so at some point in the future.

Synology MailPlus Server

Synology products are reasonably priced for what you get (essentially a cloud-in-a-box) and there is very little maintenance required. I’ve recently been in interested in syncing and snapshotting my personal data. I’ve setup Synology’s Cloud Sync and keep copies of most of my cloud data.

I’ve used tools such as gmvault with success in the past. Setting this up on a cron seems like a viable option. However, I don’t really need a lot of the features it offers and do not plan to restore this data to another account.

Synology’s MailPlus seems to be a good candidate for backing up this data. By enabling POP3 fetching, it’s possible to fetch all existing emails, as well as periodically fetch all new emails. If a disaster ever did occur, having these emails would be beneficial, as they are an extension of my memory bank.

Installing MailPlus can be done from the Package Center:

image

Next, I went into Synology MailPlus Server and on the left, clicked on Account and ensured my user was marked as active.

Afterwords, I followed these instructions in order to start backing up emails.

When entering the POP3 credentials, I created an app password solely for authenticating to POP3 from the Synology device. This is required because I have 2-Step verification enabled on my account. There doesn’t seem to be a more secure way to access POP3 at the moment. It does seem like app password access is limited in scope (when MFA is enabled). These app passwords can’t be used to login to the main Google account.

I made sure to set the Fetch Range to All in order to get all emails from the beginning of time.

After this, mail started coming in.

image

After fetching 19 years worth of emails, I tried searching for some emails. It only took a few seconds to search through ~50K emails, which is a relief if I ever did have to search for something important.

Securing Synology

Since Synology devices are not hermetically sealed, it’s best to secure them by enabling MFA to help prevent being the victim of ransomware. It is also wise to backup your system settings and volumes to the cloud using a tool such as Hyper Backup. Encrypting your shared volumes should also be done, since unfortunately DSM does not support full disk encryption.

Summary

Having backups of various forms of cloud data is a good investment, especially in times of war. I certainly feel more at ease for having backed up my emails.

diff --git a/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html b/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html index 610faa1d..c33a31cb 100644 --- a/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html +++ b/blog/2022/04/02/virtualizing-my-router-with-pfsense/index.html @@ -1,11 +1,5 @@ -Virtualizing my router with pfSense
+Virtualizing my router with pfSense

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

pfSense

I figured this would be a good opportunity to try pfSense. I’ve heard nothing but positive things about pfSense and the fact it’s been around since 2004, based on FreeBSD, and written in PHP gave me the impression that it would be relatively stable (and I’d expect nothing less because it has an important job to do!). pfSense can be run on many different machines, and there are even some officially supported appliances. Since I already have a machine running Proxmox, why not just run it in a VM? It’d allow for automatic snapshotting of the machine. There is a good video on this by Techno Tim. Tim has a lot of good videos, and this one is about virtualizing pfSense.

Router on a stick

I had initially made the assumption that in order to build a router, you would need more than a single NIC (or a dual-port NIC) in order to support both WAN and LAN. This is simply not the case, because VLANs are awesome! In order to create a router, all you need is a single port NIC and a network switch that supports VLANs (also marketed as a managed switch). I picked up the Netgear GS308E because it has both a sufficient amount of ports for my needs, and it supports VLANs. It also has a nice sturdy metal frame which was a pleasant surprise.

After setting up this Netgear switch, it shoud be possible to access the web interface at http://192.168.0.239. It may be at a different address. To find the address, try checking your DHCP leases in your router interface (if you plugged it into an existing router). I realized I was unable to access this interface because I was on a different subnet, so I set my machine’s address to 192.168.0.22 in order to temporarily setup this switch. I assigned a static ip address to the switch (in System > Switch Information) so that it was in the same subnet as the rest of my network.

The web interface is nothing spectactular, but it allows for managing VLANs.

The following configuration will:

  • assign port 1 to be the LAN (connected to the Proxmox machine)
  • assign port 8 to be the WAN (connected to my ISP’s modem)

In the switch’s web interface, I went to VLAN and then 802.1Q, and then clicked on VLAN Configuration. I configured the ports to look like this:

vlan-config

Note that the VLAN Identifier Setting has been setup already with two VLANs (1 and 10). More VLANs can be created (i.e. to isolate IoT devices), but 2 VLANs is all we need for the initial setup of a router.

To replicate the above configuration, add a new VLAN ID 10 (1 should exist by default).

Next, go into VLAN Membership and configure VLAN 1’s port membership to be the following:

vlan-membership-1

and then configure VLAN 10’s port membership to be the following:

vlan-membership-10

Now, go into Port PVID and ensure that port 8 is set to PVID 10.

vlan-port-pvid

This above configuration will dedicate two of the eight ports to WAN and LAN. This will allow the internet to flow into the pfSense from the modem.

Setting up pfSense

pfSense is fairly easy to setup. Just download the latest ISO and boot up the virtual machine. When setting up the machine, I mostly went with all of the defaults. Configuration can be changed later in the web interface, which is quite a bit simpler.

Since VLANs are going to be leveraged, when you go to Assign Interfaces, VLANs should be setup now like the following:

  • WAN should be vtnet0.10
  • LAN should be vtnet0

After going through the rest of the installation, if everything is connected correctly it should display both WAN and LAN addresses.

If all goes well, the web interface should be running at https://192.168.1.1.

pfsense-dashboard

And this is where the fun begins. There are many tutorials and blogs about how to setup pfSense and various services and packages that can be installed. I’ve already installed pfBlocker-NG.

Summary

It is fairly simple to setup a router with pfSense from within a virtual machine. A physical dedicated routing machine is not necessary and often does not perform as well as software running on faster and more reliable hardware. So far, pfSense has been running for over a week without a single hiccup. pfSense is a mature piece of software that is incredibly powerful and flexible. To avoid some of the instability I had experienced with OpenWrt, I enabled AutoConfigBackup, which is capable of automatically backing up configuration upon every change. I plan to explore and experiment with more services and configuration in the future, so the ability to track all of these changes gives me the peace of mind that experimentation is safe.

diff --git a/blog/2022/12/10/watching-youtube-in-private/index.html b/blog/2022/12/10/watching-youtube-in-private/index.html index 1d6ebf97..68355627 100644 --- a/blog/2022/12/10/watching-youtube-in-private/index.html +++ b/blog/2022/12/10/watching-youtube-in-private/index.html @@ -1,11 +1,5 @@ -Watching YouTube in private
+Watching YouTube in private

Watching YouTube in private

I recently stumbled upon yewtu.be and found it intriguing. It not only allows you to watch YouTube without being on YouTube, but it also allows you to create an account and subscribe to channels without a Google account. What sort of wizardry is going on under the hood? It turns out that it’s a hosted instance of invidious.

image

The layout is simple, and JavaScript is not required.

I started using yewtu.be as my primary client for watching videos. I subscribe to several YouTube channels and I prefer the interface invidiuous provides due to its simplicity. It’s also nice to be in control of my search and watch history.

A few days ago, yewtu.be went down briefly, and that motivated me enough to self-host invidious. There are several other hosted instances listed here, but being able to easily backup my own instance (including subscriptions and watch history) is more compelling in my case.

Hosting invidious

The quickest way to get invidious up is with docker-compose as mentioned in the docs.

I made a few modifications, and ended up with:

version: "3"
 services:
   invidious:
diff --git a/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html b/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html
index 2a47816e..9e6cb8b4 100644
--- a/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html
+++ b/blog/2023/05/22/using-aks-and-socks-to-connect-to-a-private-azure-db/index.html
@@ -1,11 +1,5 @@
-Using AKS and SOCKS to connect to a private Azure DB
+Using AKS and SOCKS to connect to a private Azure DB

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Go Public?

Should the database be migrated to public subnets? Ideally not, since it is good practice to host internal infrastructure in restricted subnets.

How do others handle this?

With GCP, connecting to a private db instance from any machine can be achieved with cloud-sql-proxy. This works by proxying requests from your machine to the SQL database instance in the cloud, while the authentication is handled by GCP’s IAM.

So what about Azure? Is there any solution that is as elegant as cloud-sql-proxy?

A Bastion

Similar to what AWS has recommended, perhaps a bastion is the way forward?

Azure has a fully-managed service called Azure Bastion that provides secure access to virtual machines that do not have public IPs. This looks interesting, but unfortunately it costs money and requires an additional virtual machine.

Because this adds cost (and complexity), it does not seem like a desirable option in its current state. If it provided a more seamless connection to the database, it would be more appealing.

SOCKS

2023-12-13: An alternative to using a socks proxy is socat. This would allow you to relay tcp connections to a pod running in k8s, and then port-forward them to your localhost. If this sounds more appealing, install krew-net-forward and then run “kubectl net-forward -i mydb.postgres.database.azure.com -p 5432 -l 5432” to access the database through “localhost:5432”

SOCKS is a protocol that enables a way to proxy connections by exchanging network packets between the client and the server. There are many implementations and many readily available container images that can run a SOCKS server.

It’s possible to use this sort of proxy to connect to a private DB, but is it any simpler than using a virtual machine as a jumphost? It wasn’t until I stumbled upon kubectl-plugin-socks5-proxy that I was convinced that using SOCKS could be made simple.

So how does it work? By installing the kubectl plugin and then running kubectl socks5-proxy, a SOCKS proxy server is spun up in a pod and then opens up port-forwarding session using kubectl.

As you can see below, this k8s plugin is wrapped up nicely:

$ kubectl socks5-proxy
diff --git a/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/index.html b/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/index.html
index 193a15b4..1caf31b2 100644
--- a/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/index.html
+++ b/blog/2023/12/10/setting-up-gitea-actions-with-tailscale/index.html
@@ -1,11 +1,5 @@
-Setting up Gitea Actions with Tailscale
+Setting up Gitea Actions with Tailscale

Setting up Gitea Actions with Tailscale

In this post I’ll go through the process of setting up Gitea Actions and Tailscale, unlocking a simple and secure way to automate workflows.

What is Gitea?

Gitea is a lightweight and fast git server that has much of the same look and feel as github. I have been using it in my homelab to mirror repositories hosted on other platforms such as github and gitlab. These mirrors take advantage of the decentralized nature of git by serving as “backups”. One of the main reasons I hadn’t been using it more often was due to the lack of integrated CI/CD. This is no longer the case.

Gitea Actions

Gitea Actions have made it into the 1.19.0 release. This feature had been in an experimental state up until 1.21.0 and is now enabled by default 🎉.

So what are they? If you’ve ever used GitHub Actions (and if you’re reading this, I imagine you have), these will look familiar. Gitea Actions essentially enable the ability to run github workflows on gitea. Workflows between gitea and github are not completely interopable, but a lot of the same workflow syntax is already compatible on gitea. You can find a documented list of unsupported workflows syntax.

Actions work by using a custom fork of nekos/act. Workflows run in a new container for every job. If you specify an action such as ‘actions/checkout@v3’, it defaults to downloading the scripts from github.com. To avoid internet egress, you could always clone the required actions to your local gitea instance.

Actions (gitea’s implementation) has me excited because it makes spinning up a network-isolated environment for workflow automation incredibly simple.

Integration with Tailscale

So how does Tailscale help here? Well, more recently I’ve been exposing my self-hosted services through a combination of traefik and the tailscale (through the tailscale-traefik proxy integration described here). This allows for a nice looking dns name (i.e. gitea.my-tailnet-name.ts.net) and automatic tls certificate management. I can also share this tailscale node securely with other tailscale users without configuring any firewall rules on my router.

Deploying Gitea, Traefik, and Tailscale

In my case, the following is already set up:

My preferred approach to deploying code in a homelab environment is with docker compose. I have deployed this in a proxmox lxc container based on debian with a hostname gitea. This could be deployed in any environment and with any hostname (as long you updated the tailscale machine name to your preferred subdomain for magic dns).

The docker-compose.yaml file looks like:

version: "3.7"
 services:
   gitea:
diff --git a/categories/index.html b/categories/index.html
index ee189a07..fabdd09e 100644
--- a/categories/index.html
+++ b/categories/index.html
@@ -1,9 +1,3 @@
-Categories
+Categories

Categories

\ No newline at end of file diff --git a/index.html b/index.html index 816f95bc..4ff9372c 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,4 @@ -— Software Engineer
+— Software Engineer

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

Read more >

Running K3s in LXC on Proxmox

It has been a while since I’ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I’ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it’d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.
Read more >

Automatically rotating AWS access keys

Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background. In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.
Read more >

Why I threw out my dotfiles

Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (~/.zshrc, ~/.config/git/config, ~/.config/tmux/tmux.conf, etc). I have tried several different ways to manage them, including bare git repos and utilities such as GNU Stow. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: home-manager.

Read more >

What to do with a homelab

A homelab can be an inexpensive way to host a multitude of internal/external services and learn a lot in the process.

Read more >
\ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html index c2ece692..d6e27cc6 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -1,10 +1,4 @@ -— Software Engineer
+— Software Engineer

\ No newline at end of file diff --git a/post/index.html b/post/index.html index 635265db..45553800 100644 --- a/post/index.html +++ b/post/index.html @@ -1,10 +1,4 @@ -Posts
+Posts

Posts

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

Read more >

Running K3s in LXC on Proxmox

It has been a while since I’ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I’ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it’d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.
Read more >

Automatically rotating AWS access keys

Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background. In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.
Read more >

Why I threw out my dotfiles

Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (~/.zshrc, ~/.config/git/config, ~/.config/tmux/tmux.conf, etc). I have tried several different ways to manage them, including bare git repos and utilities such as GNU Stow. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: home-manager.

Read more >

What to do with a homelab

A homelab can be an inexpensive way to host a multitude of internal/external services and learn a lot in the process.

Read more >
\ No newline at end of file diff --git a/post/page/2/index.html b/post/page/2/index.html index 136d4c02..24937bd9 100644 --- a/post/page/2/index.html +++ b/post/page/2/index.html @@ -1,10 +1,4 @@ -Posts
+Posts

Posts

\ No newline at end of file diff --git a/tags/aks/index.html b/tags/aks/index.html index aa7f0890..65ecac0c 100644 --- a/tags/aks/index.html +++ b/tags/aks/index.html @@ -1,9 +1,3 @@ -aks
+aks

aks

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/aws-vault/index.html b/tags/aws-vault/index.html index c28ec0fd..3e96cedb 100644 --- a/tags/aws-vault/index.html +++ b/tags/aws-vault/index.html @@ -1,10 +1,4 @@ -aws-vault
+aws-vault

aws-vault

Automatically rotating AWS access keys

Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background. In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.
Read more >
\ No newline at end of file diff --git a/tags/aws/index.html b/tags/aws/index.html index a380caea..48298383 100644 --- a/tags/aws/index.html +++ b/tags/aws/index.html @@ -1,10 +1,4 @@ -aws
+aws

aws

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >

Automatically rotating AWS access keys

Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background. In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.
Read more >
\ No newline at end of file diff --git a/tags/azure/index.html b/tags/azure/index.html index e90094e0..40a502b2 100644 --- a/tags/azure/index.html +++ b/tags/azure/index.html @@ -1,9 +1,3 @@ -azure
+azure

azure

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/backup/index.html b/tags/backup/index.html index 0c14ec57..7b4a603a 100644 --- a/tags/backup/index.html +++ b/tags/backup/index.html @@ -1,9 +1,3 @@ -backup
+backup

backup

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

Read more >
\ No newline at end of file diff --git a/tags/bastion/index.html b/tags/bastion/index.html index bdfe294b..5191b623 100644 --- a/tags/bastion/index.html +++ b/tags/bastion/index.html @@ -1,9 +1,3 @@ -bastion
+bastion

bastion

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/cloud-sql-proxy/index.html b/tags/cloud-sql-proxy/index.html index cfb8379c..8d17f211 100644 --- a/tags/cloud-sql-proxy/index.html +++ b/tags/cloud-sql-proxy/index.html @@ -1,9 +1,3 @@ -cloud-sql-proxy
+cloud-sql-proxy

cloud-sql-proxy

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/containers/index.html b/tags/containers/index.html index 9fd9c77d..e842a8d1 100644 --- a/tags/containers/index.html +++ b/tags/containers/index.html @@ -1,9 +1,3 @@ -containers
+containers

containers

\ No newline at end of file diff --git a/tags/database/index.html b/tags/database/index.html index 06512749..c5b718fd 100644 --- a/tags/database/index.html +++ b/tags/database/index.html @@ -1,9 +1,3 @@ -database
+database

database

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/degoogle/index.html b/tags/degoogle/index.html index e0c59fa8..eaa8bcb2 100644 --- a/tags/degoogle/index.html +++ b/tags/degoogle/index.html @@ -1,9 +1,3 @@ -degoogle
+degoogle

degoogle

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

Read more >
\ No newline at end of file diff --git a/tags/docker/index.html b/tags/docker/index.html index 5a28d187..f3d49758 100644 --- a/tags/docker/index.html +++ b/tags/docker/index.html @@ -1,9 +1,3 @@ -docker
+docker

docker

\ No newline at end of file diff --git a/tags/dotfiles/index.html b/tags/dotfiles/index.html index a3fa6eaf..db057bdc 100644 --- a/tags/dotfiles/index.html +++ b/tags/dotfiles/index.html @@ -1,9 +1,3 @@ -dotfiles
+dotfiles

dotfiles

Why I threw out my dotfiles

Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (~/.zshrc, ~/.config/git/config, ~/.config/tmux/tmux.conf, etc). I have tried several different ways to manage them, including bare git repos and utilities such as GNU Stow. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: home-manager.

Read more >
\ No newline at end of file diff --git a/tags/eks/index.html b/tags/eks/index.html index 1d7dd938..9fa676fe 100644 --- a/tags/eks/index.html +++ b/tags/eks/index.html @@ -1,9 +1,3 @@ -eks
+eks

eks

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/gitea-actions/index.html b/tags/gitea-actions/index.html index 18ecfae5..8f62a3bc 100644 --- a/tags/gitea-actions/index.html +++ b/tags/gitea-actions/index.html @@ -1,9 +1,3 @@ -gitea actions
+gitea actions

gitea actions

\ No newline at end of file diff --git a/tags/gitea/index.html b/tags/gitea/index.html index b1e670c1..a50541d0 100644 --- a/tags/gitea/index.html +++ b/tags/gitea/index.html @@ -1,9 +1,3 @@ -gitea
+gitea

gitea

\ No newline at end of file diff --git a/tags/github-actions/index.html b/tags/github-actions/index.html index 2748d514..84b4209c 100644 --- a/tags/github-actions/index.html +++ b/tags/github-actions/index.html @@ -1,9 +1,3 @@ -github actions
+github actions

github actions

\ No newline at end of file diff --git a/tags/gmail/index.html b/tags/gmail/index.html index 4ac2abcc..0e16cf5e 100644 --- a/tags/gmail/index.html +++ b/tags/gmail/index.html @@ -1,9 +1,3 @@ -gmail
+gmail

gmail

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

Read more >
\ No newline at end of file diff --git a/tags/home-manager/index.html b/tags/home-manager/index.html index 83be000a..c65f7ba0 100644 --- a/tags/home-manager/index.html +++ b/tags/home-manager/index.html @@ -1,9 +1,3 @@ -home-manager
+home-manager

home-manager

Why I threw out my dotfiles

Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (~/.zshrc, ~/.config/git/config, ~/.config/tmux/tmux.conf, etc). I have tried several different ways to manage them, including bare git repos and utilities such as GNU Stow. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: home-manager.

Read more >
\ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 7bc82493..fba18973 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,9 +1,3 @@ -Tags
+Tags

Tags

gitea

aks

aws

azure

bastion

\ No newline at end of file diff --git a/tags/invidious/index.html b/tags/invidious/index.html index d770cc99..9b5cc378 100644 --- a/tags/invidious/index.html +++ b/tags/invidious/index.html @@ -1,9 +1,3 @@ -invidious
+invidious

invidious

\ No newline at end of file diff --git a/tags/k3s/index.html b/tags/k3s/index.html index 29ddcfac..fcf637f3 100644 --- a/tags/k3s/index.html +++ b/tags/k3s/index.html @@ -1,9 +1,3 @@ -k3s
+k3s

k3s

Running K3s in LXC on Proxmox

It has been a while since I’ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I’ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it’d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.
Read more >
\ No newline at end of file diff --git a/tags/k8s/index.html b/tags/k8s/index.html index 8ea92458..50395d35 100644 --- a/tags/k8s/index.html +++ b/tags/k8s/index.html @@ -1,9 +1,3 @@ -k8s
+k8s

k8s

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/kubectl-plugin-socks5-proxy/index.html b/tags/kubectl-plugin-socks5-proxy/index.html index 5d52b178..244b413b 100644 --- a/tags/kubectl-plugin-socks5-proxy/index.html +++ b/tags/kubectl-plugin-socks5-proxy/index.html @@ -1,9 +1,3 @@ -kubectl-plugin-socks5-proxy
+kubectl-plugin-socks5-proxy

kubectl-plugin-socks5-proxy

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/linux/index.html b/tags/linux/index.html index 1c6976ac..c9c765f5 100644 --- a/tags/linux/index.html +++ b/tags/linux/index.html @@ -1,9 +1,3 @@ -linux
+linux

linux

\ No newline at end of file diff --git a/tags/lxc/index.html b/tags/lxc/index.html index 65978e1e..482718a0 100644 --- a/tags/lxc/index.html +++ b/tags/lxc/index.html @@ -1,9 +1,3 @@ -lxc
+lxc

lxc

Running K3s in LXC on Proxmox

It has been a while since I’ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I’ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it’d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.
Read more >
\ No newline at end of file diff --git a/tags/nix/index.html b/tags/nix/index.html index 588c3c90..5c6eb455 100644 --- a/tags/nix/index.html +++ b/tags/nix/index.html @@ -1,9 +1,3 @@ -nix
+nix

nix

Why I threw out my dotfiles

Over the years I have collected a number of dotfiles that I have shared across both Linux and macOS machines (~/.zshrc, ~/.config/git/config, ~/.config/tmux/tmux.conf, etc). I have tried several different ways to manage them, including bare git repos and utilities such as GNU Stow. These solutions work well enough, but I have since found what I would consider a much better solution for organizing user configuration: home-manager.

Read more >
\ No newline at end of file diff --git a/tags/openwrt/index.html b/tags/openwrt/index.html index bf876f6f..7dbc5038 100644 --- a/tags/openwrt/index.html +++ b/tags/openwrt/index.html @@ -1,9 +1,3 @@ -openwrt
+openwrt

openwrt

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >
\ No newline at end of file diff --git a/tags/page/2/index.html b/tags/page/2/index.html index 06fbf250..b33499e8 100644 --- a/tags/page/2/index.html +++ b/tags/page/2/index.html @@ -1,10 +1,4 @@ -Tags
+Tags

Tags

database

eks

k8s

proxy

socat

socks

degoogle

privacy

diff --git a/tags/page/3/index.html b/tags/page/3/index.html index efd4ae71..61b6cc75 100644 --- a/tags/page/3/index.html +++ b/tags/page/3/index.html @@ -1,10 +1,4 @@ -Tags
+Tags

Tags

yewtu.be

youtube

openwrt

pfsense

proxmox

router

vlan

backup

gmail

diff --git a/tags/page/4/index.html b/tags/page/4/index.html index b2a65ce7..6ea0b4a7 100644 --- a/tags/page/4/index.html +++ b/tags/page/4/index.html @@ -1,10 +1,4 @@ -Tags
+Tags

Tags

synology

k3s

lxc

docker

podman

python

security

diff --git a/tags/page/5/index.html b/tags/page/5/index.html index a9d3fcdc..bde20527 100644 --- a/tags/page/5/index.html +++ b/tags/page/5/index.html @@ -1,10 +1,4 @@ -Tags
+Tags

Tags

dotfiles

nix

linux

vpn

\ No newline at end of file diff --git a/tags/pfsense/index.html b/tags/pfsense/index.html index 2282a488..0f3abe59 100644 --- a/tags/pfsense/index.html +++ b/tags/pfsense/index.html @@ -1,9 +1,3 @@ -pfsense
+pfsense

pfsense

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >
\ No newline at end of file diff --git a/tags/podman/index.html b/tags/podman/index.html index 778f83af..48392b45 100644 --- a/tags/podman/index.html +++ b/tags/podman/index.html @@ -1,9 +1,3 @@ -podman
+podman

podman

\ No newline at end of file diff --git a/tags/privacy/index.html b/tags/privacy/index.html index e4c5e762..91fc4a36 100644 --- a/tags/privacy/index.html +++ b/tags/privacy/index.html @@ -1,9 +1,3 @@ -privacy
+privacy

privacy

\ No newline at end of file diff --git a/tags/proxmox/index.html b/tags/proxmox/index.html index fb7f7c77..6b731dc0 100644 --- a/tags/proxmox/index.html +++ b/tags/proxmox/index.html @@ -1,9 +1,3 @@ -proxmox
+proxmox

proxmox

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >

Running K3s in LXC on Proxmox

It has been a while since I’ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I’ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it’d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.
Read more >
\ No newline at end of file diff --git a/tags/proxy/index.html b/tags/proxy/index.html index 472b2ed5..60903736 100644 --- a/tags/proxy/index.html +++ b/tags/proxy/index.html @@ -1,9 +1,3 @@ -proxy
+proxy

proxy

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/python/index.html b/tags/python/index.html index 6837148f..2b8a1413 100644 --- a/tags/python/index.html +++ b/tags/python/index.html @@ -1,10 +1,4 @@ -python
+python

python

Automatically rotating AWS access keys

Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background. In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.
Read more >
\ No newline at end of file diff --git a/tags/ransomware/index.html b/tags/ransomware/index.html index c4be56ed..b9f6dd39 100644 --- a/tags/ransomware/index.html +++ b/tags/ransomware/index.html @@ -1,9 +1,3 @@ -ransomware
+ransomware

ransomware

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

Read more >
\ No newline at end of file diff --git a/tags/router-on-a-stick/index.html b/tags/router-on-a-stick/index.html index 1763f6b5..85e9ddc7 100644 --- a/tags/router-on-a-stick/index.html +++ b/tags/router-on-a-stick/index.html @@ -1,9 +1,3 @@ -router-on-a-stick
+router-on-a-stick

router-on-a-stick

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >
\ No newline at end of file diff --git a/tags/router/index.html b/tags/router/index.html index d1268d3b..9ab42a4e 100644 --- a/tags/router/index.html +++ b/tags/router/index.html @@ -1,9 +1,3 @@ -router
+router

router

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >
\ No newline at end of file diff --git a/tags/security/index.html b/tags/security/index.html index fa15a01e..cd99c67e 100644 --- a/tags/security/index.html +++ b/tags/security/index.html @@ -1,10 +1,4 @@ -security
+security

security

Automatically rotating AWS access keys

Rotating credentials is a security best practice. This morning, I read a question about automatically rotating AWS Access Keys without having to go through the hassle of navigating the AWS console. There are some existing solutions already, but I decided to write a script since it was incredibly simple. The script could be packed up as a systemd/launchd service to continually rotate access keys in the background. In the longer term, migrating my local workflows to aws-vault seems like a more secure solution.
Read more >
\ No newline at end of file diff --git a/tags/self-hosted/index.html b/tags/self-hosted/index.html index 11c79033..1295b42e 100644 --- a/tags/self-hosted/index.html +++ b/tags/self-hosted/index.html @@ -1,9 +1,3 @@ -self-hosted
+self-hosted

self-hosted

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >

Running K3s in LXC on Proxmox

It has been a while since I’ve actively used Kubernetes and wanted to explore the evolution of tools such as Helm and Tekton. I decided to deploy K3s, since I’ve had success with deploying it on resource-contrained Raspberry Pis in the past. I thought that this time it’d be convenient to have K3s running in a LXC container on Proxmox. This would allow for easy snapshotting of the entire Kubernetes deployment.
Read more >
\ No newline at end of file diff --git a/tags/socat/index.html b/tags/socat/index.html index 1237fd58..42573342 100644 --- a/tags/socat/index.html +++ b/tags/socat/index.html @@ -1,9 +1,3 @@ -socat
+socat

socat

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/socks/index.html b/tags/socks/index.html index e0dc6acb..975bd12a 100644 --- a/tags/socks/index.html +++ b/tags/socks/index.html @@ -1,9 +1,3 @@ -socks
+socks

socks

Using AKS and SOCKS to connect to a private Azure DB

I ran into a roadblock recently where I wanted to be able to conveniently connect to a managed postgres database within Azure that was not running on public subnets. And by conveniently, I mean that I’d rather not have to spin up an ephemeral virtual machine running in the same network and proxy the connection, and I’d like to use a local client (preferably with a GUI). After several web searches, it became evident that Azure does not readily provide much tooling to support this.

Read more >
\ No newline at end of file diff --git a/tags/synology/index.html b/tags/synology/index.html index 2847f03f..89d52e02 100644 --- a/tags/synology/index.html +++ b/tags/synology/index.html @@ -1,9 +1,3 @@ -synology
+synology

synology

Backing up gmail with Synology

I’ve used gmail since the beta launched touting a whopping 1GB of storage. I thought this was a massive leap in email technology at the time. I was lucky enough to get an invite fairly quickly. Not suprisingly, I have many years of emails, attachments, and photos. I certainly do not want to lose the content of many of these emails. Despite the redundancy of the data that Google secures, I still feel better retaining a copy of this data on my own physical machines.

Read more >
\ No newline at end of file diff --git a/tags/tailscale/index.html b/tags/tailscale/index.html index 66449f3a..f2bbaab3 100644 --- a/tags/tailscale/index.html +++ b/tags/tailscale/index.html @@ -1,9 +1,3 @@ -tailscale
+tailscale

tailscale

\ No newline at end of file diff --git a/tags/vlan/index.html b/tags/vlan/index.html index 5ae10124..4a021d3b 100644 --- a/tags/vlan/index.html +++ b/tags/vlan/index.html @@ -1,9 +1,3 @@ -vlan
+vlan

vlan

Virtualizing my router with pfSense

My aging router has been running OpenWrt for years and for the most part has been quite reliable. OpenWrt is an open-source project used on embedded devices to route network traffic. It supports many different configurations and there exists a large index of packages. Ever since I’ve connected some standalone wireless access points, I’ve had less of a need for an off-the-shelf all-in-one wireless router combo. I’ve also recently been experiencing instability with my router (likely the result of a combination of configuration tweaking and firmware updating). OpenWrt has served me well, but it is time to move on!

Read more >
\ No newline at end of file diff --git a/tags/vpn/index.html b/tags/vpn/index.html index fdf40e52..144f956a 100644 --- a/tags/vpn/index.html +++ b/tags/vpn/index.html @@ -1,9 +1,3 @@ -vpn
+vpn

vpn

\ No newline at end of file diff --git a/tags/yewtu.be/index.html b/tags/yewtu.be/index.html index 2ab90ef0..51b382e3 100644 --- a/tags/yewtu.be/index.html +++ b/tags/yewtu.be/index.html @@ -1,9 +1,3 @@ -yewtu.be
+yewtu.be

yewtu.be

\ No newline at end of file diff --git a/tags/youtube/index.html b/tags/youtube/index.html index 241872c5..25f8c245 100644 --- a/tags/youtube/index.html +++ b/tags/youtube/index.html @@ -1,9 +1,3 @@ -youtube
+youtube

youtube

\ No newline at end of file