Infrastructure Updates: November 2023

My personal projects continue to move along. Here's an update on the current state of my home lab infrastructure.
Hana-chan beside my soon-to-be-provisioned home server.

Hello! While life has been busy lately, I’ve been trying to make headway on my personal projects. Here’s a small little update on where things are at.

VPN Gateway

Now that I’ve moved into my own home, I needed access to my computing resources at my brother’s place and at my parents’ place. To enable routing between my home and their places, I needed a gateway to route other subnet traffic to their respective VPN gateways.

Before I moved in, I contemplated on buying a router. I had talked with some of my coworkers about their home network configurations, and one of them (hi Jackson) had a Ubiquiti setup, where they could do site-to-site with another Ubiquiti box. For them, this made sense because they already had a previous setup to work with. For me, I would have to enter the Ubiquiti ecosystem. I did a little bit of digging, and it turns out Ubiquiti has a more compact router called the Ubiquiti Dream Router (UDR), which is basically running Linux under the hood, and it has Wi-Fi 6. Since I use ZeroTier for site-to-site VPN, they also have a guide with an arm64-based binary to install with it. Because of that, I decided to bite the bullet and try it out.

Setting up the UDR was a breeze. I installed the Unifi app on my Xperia and I was pretty much on my way. I was able to create two subnets: one for my home network, and another for my IoT devices in a few minutes. I created my initial Wi-Fi network and linked it to the home network, and then another Wi-Fi network for my IoT devices.

After that, I installed the ZeroTier binary. I had to configure IPv4 routing on the UDR to route between the ZeroTier network and the UDR’s LAN. Then, I added the UDR to my ZeroTier network, added a new managed route on ZeroTier Central, and I was almost on my way. The final thing I had to do was add the new subnet to route to the correct next hop on my existing subnets; after that, everything just worked. At my current place, the UDR is the router and the default gateway, so all local ingress traffic destined to the other subnets are routed as expected. DNS resolution via the tunnel also resolves without issue. This also allows me to forego another install of Windows Server, as the domain-wide DNS entries work: PCs can still roam across the networks and still resolve to contact a domain controller. Hurray! One thing I still have to figure out is how to compile the latest source code for UDR, as the current binary is a few versions old. That’ll be a task for the upcoming months.

Updated intersite network diagram.

In preparation for my new home lab setup, I also bought a 5-port Ubiquiti desktop switch (the Switch Flex Mini) that is conveniently powered by PoE from my UDR. I put this small hub in my home office area, where it’ll hook up to my lab server, my personal laptop, and my brother’s desktop, as he sometimes comes over to work (just like we did for the last year and a half).

Web Applications

In addition to added connectivity, I have been continuing to update my Docker configuration: namely additional web applications. The first big one is an instance of Misskey, one of a handful of decentralized social network applications that implements the ActivityPub protocol. I installed this during the time Twitter was starting its transition to X (at around late April). A lot of Japanese people were using it, and a number of artists I follow on pixiv and Twitter also began to use it, so making the switch over was pretty easy. I think the UI and plethora of reactions (along with custom reactions) were pretty cool, so I’m also supporting its development by way of a pixivFANBOX subscription.

The feed of my Misskey instance.

The next web application is Actual budget. My coworkers and I often talk about self-hosting applications, and this one came up as a one to manage personal finances. My previous workflow was updating a spreadsheet on my computer locally (as I don’t have it saved on Google Docs), and it was a chore to sit down and type everything out. With this web app, I can now add my transactions while I’m on the go. Its purpose is to handle daily life transactions in your local currency, so unfortunately foreign transactions need to be converted back to your local currency. It would be nice to see this sort of feature implemented at some point, but overall, it’s simple and gives me insights at my fingertips to manage my spending.

The Actual Budget page from my internal network.

The last thing I added to my toolbox was phpMyAdmin. I’ve used it in the past (before I started using MySQL Workbench), and I still like the ability to modify databases in my web browser, so I decided to re-install it. It still works as I remembered from the past, so hurray for that. Now that I’ve been using MySQL more and creating my own schemas with foreign key relationships, I’ve realized how powerful phpMyAdmin is. It helps enforce foreign key relationships in fields by showing dropdown menus for two column foreign key tables, among other things. I’m finding it quite handy for some of my hobby expenses that I’m keeping track of in my database.

PMA query page from my internal network.

Future Work

There’s still a lot of things I want to do. For one, I’ve been replacing the various light switches in my unit with IoT smart switches. Right now, with the UDR, I can create additional SSIDs that map to the same network. At my parents’ and brother’s place, where I’m using Google Wi-Fi, we only have two SSIDs: one for guests/IoT and the other for our personal devices. I decided to change the IoT SSID at my new place to a different one, but also keep the old one around. It saved me the hassle of configuring some other smart plugs I brought over from my brother’s place, as they could just talk to the new one directly. The next thing I want to do here is to add a local instance of home assistant to see if I can manage the devices locally. I’ve done it before as a HyperV virtual machine a few years back, but I never got around to explore it in depth, so I do want to come back to this.

The other thing I want to do is to script away my offline backups, and be able to plug in my external drive, run a script, and unplug it afterwards. That’ll probably be a fun weekend project at some point. 🙂

Anyways, that’s all I’ve got this time around. The year’s almost coming to a close, so expect a “look back on 2023” post next month.

Until next time,
~Lui

Injabie3
Injabie3

Just some guy on the Internet that writes code for fun and for a living, and also collects anime figures.

Articles: 264

Feel free to leave a reply