Posts tagged: homelab

All posts with the tag "homelab"

40 posts latest post 2026-04-08
Publishing rhythm
Apr 2026 | 1 posts

Setting up 4G Backup with Google Fi and Netgear LM1200

I connected my home network to have 4G bakcup with Google Fi and Netgear LM1200. Goodle Fi offers free data-only sim cards that you can order from their service. It takes a couple of days, and a new sim arrives in the mail free of charge. It does pull data from your account, so if you are not on an unlimited plan be careful of how much you let go through the sim. I’ve owned this for a few years now, but it’s been disconnected for a good six months or so. I’m not s[e what happened, but it stopped recognizing the old sim card. no need to point out the coffee stains at the end, its definitely not related Follow the provided instuctions # Activating the sim asked for a confirmation code shipped with the sim card, then brought me to this page. Clicking brought up instructions to set up the APN in the LM1200. Restart # First thing for me was that the sim was not recognized, restarting the LM1200 did the trick to recognize it as a Google Fi sim, and I started setting up by adding the APN as i…

Make MinIO Access Key

Today in my homelab I wanted to setup a new service that needed a MinIO access key. So I created a new user and a new access key with the MinIO CLI rather than poking through the ui like I have before. Global Level vs User Level # The MinIO CLI has two levels of access, global and user level. Most of the commands in this post will have several ways to do similar tasks that would potentially work. We are going to prefer to use the user level commands for more control. For some commands such as listing Keys it is handy to use the global level. The Policy # First we are going to make a new policy file named. Set the Minio Alias # Before we can create new access keys we will need to start by settin up an alias in minio that has admin rights to the minio server. Check to see if your alias exists. The Script # Now we are going to pick a SECRETKEY and a NEWUSERNAME, create the policy, create the user, attach the policy to the user and add the user to the alias. Attention This is the secret ke…
Manufacturer Recertified Drives | Enterprise Grade Manufacturer Recertified enterprise drives work and look like new. Rebuilt by the manufacturer and quality tested to ensure they function as new, our recertified drives save on cost. Shop now! ServerPartDeals.com · serverpartdeals.com For my next drive upgrade in my homelab I am gong to be using one of these factory recertified drives from serverpartdeals.com. Found them on an LTT video awhile back. They are some lightly used and recertified, fully burnt in drives. Shop for drives that are certified once again by the manufacturer to work like new. Factory ReCertified drives are cost-effective alternatives compared to factory-sealed new counter parts. Additionally, unlike in mass production, the re-certification process involves closer attention to the overall operation of the hardware so that the re-certification will not have to happen a 2nd time
GitHub - gitroomhq/postiz-helmchart: Helm for Postiz Helm for Postiz. Contribute to gitroomhq/postiz-helmchart development by creating an account on GitHub. GitHub · github.com Reminder to myself, look into self hosting postiz with this helm chart later.
linkding A self-hosted bookmarking service that is designed to be minimal, fast and easy to set up. linkding · linkding.link linkding looks like an interesting alternative to thoughts. Thoughts is focused on the note being a value add tweet length blog post that you share to the public. This seems more focused on fire and forget with some note taking and search ability. I should definitely level up the search and tag discovery in thoughts.

I’ve been debugging a cloudflared tunnel issue in my homelab all day today, and getting really frustrated. My issue ended up being that it was running twice, once without the correct config file and another with it. I believe that cacheing may have compounded the issue.

In yesterday’s post I setup a cloudflared tunnel on my ubuntu server to expose applications running on the server to the internet. I’m setting up a new server and running cloudflared in its own vm.

setup cloudflared tunnel on ubuntu

Check that dns is pointing to the correct tunnel #

dig subdomain.example.com
traceroute subdomain.example.com

Check that the tunnel is running #

export CLOUDFLARED_TUNNEL_ID = "my-tunnel-id"

cloudflared tunnel list
cloudflared tunnel info $CLOUDFLARED_TUNNEL_ID

I run a cloudflared tunnel on my ubuntu server to expose applications running on the server to the internet. I’m setting up a new server and running cloudflared in its own vm.

Get the cloudflared binary #

sudo wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O /usr/local/bin/cloudflared

sudo chmod +x /usr/local/bin/cloudflared

#

Now setup the config directory. For the systemd service to work, the config file needs to be in /etc/cloudflared. I like to give my user rights to edit the config file without being sudo, we will do that here by creating a group cloudflared, add ourselves to the group, give ownership of /etc/cloudflared to the group, give group write access to the directory, and refresh groups.

sudo mkdir -p /etc/cloudflared
sudo groupadd cloudflared
sudo usermod -aG cloudflared $USER
sudo chown -R root:cloudflared /etc/cloudflared
sudo chmod g+w /etc/cloudflared
newgrp cloudflared

login #

Now we can log into the domain zone with cloudflared.

cloudflared tunnel login

This will give a url, follow it in a browser to log in.

cloudflared tunnel create <NAME>
mv ~/.cloudflared/cert.pem /etc/cloudflared/cert.pem
mv ~/.cloudflared/<tunnel-id>.json /etc/cloudflared/<tunnel-id>.json

config #

Now setup config. For the systemd service to work, the config file needs to be in /etc/cloudflared. The config that I have provided below will expose localhost:8000 to tester.example.com

export CLOUDFLARED_TUNNEL_ID=$(ls /etc/cloudflared/*.json | xargs -n 1 basename | sed 's/\.json$//')
mv ~/.cloudflared/${CLOUDFLARED_TUNNEL_ID}.json /etc/cloudflared/${CLOUDFLARED_TUNNEL_ID}.json
mv ~/.cloudflared/cert.pem /etc/cloudflared/cert.pem
echo "
tunnel: $(CLOUDFLARED_TUNNEL_ID)
credentials-file: /etc/cloudflared/$(CLOUDFLARED_TUNNEL_ID).json
ingress:
  - hostname: tester.example.com
    service: http://localhost:8000
  - service: 'http_status:404'
" >> /etc/cloudflared/config.yaml

dns #

Now to get a dns record for tester.example.com to point to the cloudflared tunnel.

cloudflared tunnel route dns $(CLOUDFLARED_TUNNEL_ID) tester.example.com

systemd #

Now install the systemd service.

sudo cloudflared service install
sudo systemctl status cloudflared.service
# if its not running
sudo systemctl start cloudflared.service
Fitting two hard drives and an SSD in a Dell OptiPlex 7010 SFF The Dell OptiPlex 7010 SFF officially only has room for one 2.5" hard drive internally, I fitted two 3.25" hard drives and a 2.5" SSD in one. willj.net This guy fit 2 3.5" drives and an sdd in a dell 7050 SFF. It looks tight, and there it probably not much airflow running in it, but its an impressive project.
Homelabbers have been some of the best co-workers I have ever had. Typically have a get shit done, If there’s a way I will find it kind of mentality. If you are struggling to get a job in tech right now its tough. Starting a homelab on a pc you pull out of the trash is a good way to get some experience that you can talk about in interview questions. Linked video has some great points!

Looking for a Heroku replacement, What I found was shocking!

Your browser does not support the audio element. I’ve long hosted my personal blog as a static site on waylonwalker.com. It’s all markdown, converted to html, and shipped as is. It’s been great, I’ve moved it from GitHub Pages, to Netlify, tried Vercel for a minute, and have landed on Cloudflare Pages. Each migration has not really been that hard, it’s just pointing ci to a different host after the site has built. What about server side # Now the part that I have struggled with is how to cheaply host a server rendered application that can just live on forever without me paying for it. This is a harder problem as it costs more to keep servers spinning, memory, and disk all ready for you to use at a moments notice. Honestly # I never really deployed anything that useful on heroku, but it seems like the klenex of the bunch that’s why they are in the title. I’ve moved between digital ocean and fly.io, and have had some great experiences with both. I just don’t want to build something that…
Uptime Kuma A self-hosted monitoring tool uptime.kuma.pet Uptime kuma is a fantastic self hosted monitoring tool. One docker run command and you are up and running. Once you are in you have full control over checking status of urls, frequency, allowed timeouts, and a HUGE list of notification providers I deployed it in my homelab today.
External Link thoughts.waylonwalker.com I was looking to add running kubernetes jobs to a python cli I am creating, and I found this solution, mostly thanks to and my loose understanding of what the yaml syntax is supposed to look like for a kubernetes job. This will let me create a job in the cluster, choose the image that runs, the command that is called, and how long until the job expires and is cleaned up. While the job still exists I can go in and look at the logs, but once its ttl has expired they are gone.