Posts tagged: homelab

All posts with the tag "homelab"

40 posts latest post 2026-04-08
Publishing rhythm
Apr 2026 | 1 posts
- I really like this idea for a homelab [1] jbod. Hardware Haven builds out Just a Bunch Of Disks using some pretty affordable hardware and has up to 16 disks added to his homelab with the os having full access to use with zfs. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /homelab/ [2]: /thoughts/

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 # [1] Activating the sim asked for a confirmation code shipped with the sim card, then brought me to this page. [2] Clicking Have a Different Device? brought up instructions to set up the APN in the LM1200. [3] Restart # [4] First thing for me was that the sim was not recognized, restarting the LM1200 did the trick to recognize it as a Google F...

Make MinIO Access Key

Today in my homelab [1] 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. [2] Global Level vs User Level # [3] 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 # [4] First we are going to make a new policy file named mypages_rw_policy.json. { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::mybucket" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Effect": "Allow", "Resource": [...
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 [1] For my next drive upgrade in my homelab [2] 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 Note This post is a thought [3]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://serverpartdeals.com/collections/manufacturer-recertified-drives [2]: /homelab/ [3]: /thoughts/
GitHub - imagegenius/docker-immich: Monolithic (Single) Docker Container for Immich Monolithic (Single) Docker Container for Immich. Contribute to imagegenius/docker-immich development by creating an account on GitHub. GitHub · github.com [1] imagegenius has made an immich all in one setup that looks much easier to use than immich. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/imagegenius/docker-immich/ [2]: /thoughts/
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 [1] Reminder to myself, look into self hosting postiz with this helm chart later. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/gitroomhq/postiz-helmchart [2]: /thoughts/
linkding A self-hosted bookmarking service that is designed to be minimal, fast and easy to set up. linkding · linkding.link [1] 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. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://linkding.link/ [2]: /thoughts/
I’ve been debugging a cloudflared tunnel issue in my homelab [1] 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 [2] Check that dns is pointing to the correct tunnel # [3] dig subdomain.example.com traceroute subdomain.example.com Check that the tunnel is running # [4] export CLOUDFLARED_TUNNEL_ID = "my-tunnel-id" cloudflared tunnel list cloudflared tunnel info $CLOUDFLARED_TUNNEL_ID References: [1]: /homelab/ [2]: /setup-cloudflared-tunnel-on-ubuntu/ [3]: #check-that-dns-is-pointing-to-the-correct-tunnel [4]: #check-that-the-tunnel-is-running
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 # [1] 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 # [2] 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 # [3] 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....
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 [1] 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. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://willj.net/posts/fitting-two-hard-drives-and-an-ssd-in-a-dell-optiplex-7010-usff/ [2]: /thoughts/
- 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! Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /homelab/ [2]: /thoughts/

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 [1], 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. [2] What about server side # [3] 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 # [4] 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...
Uptime Kuma A self-hosted monitoring tool uptime.kuma.pet [1] Uptime kuma is a fantastic self hosted [2] 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 docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1 I deployed it in my homelab [3] today. [4] Note This post is a thought [5]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://uptime.kuma.pet/ [2]: /self-host/ [3]: /homelab/ [4]: https://twitter.com/_WaylonWalker/status/1723077941649707468 [5]: /thoughts/
External Link thoughts.waylonwalker.com [1] I was looking to add running kubernetes jobs to a python cli I am creating, and I found this solution, mostly thanks to ollama run mistral:7b-instruct-q4_K_M 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. from kubernetes import client, config # Load the default kubeconfig config.load_kube_config() # Define the API client for batch jobs api_instance = client.BatchV1Api() # Create a new job object job = client.V1Job( api_version="batch/v1", kind="Job", metadata=client.V1ObjectMeta(name="myjob"), spec=client.V1JobSpec( ttl_seconds_after_finished=100, template=client.V1PodTemplateSpec( metadata=client.V1ObjectMeta(labels={"app": "myjob"}), spec=client.V1PodSpec( containers=[ client.V1Container( name="myjobcontainer", image="busybox", command=["ls", "/"], ), ], restart_policy="Never", ), ), backoff_limit=1, )...
GitHub - mkimuram/k8sviz: Generate Kubernetes architecture diagrams from the actual state in a namespace Generate Kubernetes architecture diagrams from the actual state in a namespace - mkimuram/k8sviz GitHub · github.com [1] This is a sick kubernetes architecture diagran generation tool. Here is an example [2] installation # [3] $ curl -LO https://raw.githubusercontent.com/mkimuram/k8sviz/master/k8sviz.sh $ chmod u+x k8sviz.sh Usage # [4] ./k8sviz.sh --kubeconfig ~/.config/kube/falcon-k3s.yaml -t png -o k8sviz.png Note This post is a thought [5]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/mkimuram/k8sviz [2]: https://raw.githubusercontent.com/mkimuram/k8sviz/master/examples/wordpress/default.png [3]: #installation [4]: #usage [5]: /thoughts/
Translate a Docker Compose File to Kubernetes Resources What Kubernetes · kubernetes.io [1] kompose is a sick cli to convert docker-compose.yml to kubernetes manifest. # install curl -L https://github.com/kubernetes/kompose/releases/download/v1.26.0/kompose-linux-amd64 -o kompose kompose convert kompose convert -o deployment.yaml Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://kubernetes.io/docs/tasks/configure-pod-container/translate-compose-kubernetes/ [2]: /thoughts/
[1] Running your own docker registry in one line podman run -d -p 5000:5000 --restart=always --name registry registry:latest Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://blog.nashcom.de/nashcomblog.nsf/dx/k3s-podman-and-a-registry.htm [2]: /thoughts/
Kubernetes Persistent Volumes with Deployment and StatefulSet How to use Kubernetes persistent volumes with deployment and stateful set and also when you should use one or another. Alen Komljen · akomljen.com [1] Example of how to add a pvc to a deployment. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://akomljen.com/kubernetes-persistent-volumes-with-deployment-and-statefulset/ [2]: /thoughts/
[1] I was curious to see what was going on inside of my minio object storage. Great technique here by Frank to create an inspector pod, then you can do as you wish with the data. I created the manifest as pvc-inspector.yml apiVersion: v1 kind: Pod metadata: name: pvc-inspector spec: containers: - image: busybox name: pvc-inspector command: ["tail"] args: ["-f", "/dev/null"] volumeMounts: - mountPath: /pvc name: pvc-mount volumes: - name: pvc-mount persistentVolumeClaim: claimName: pvc-name Then used it like this. # create pvc-inspector pod kubectl apply -f pvc-inspector.yml # exec into inspector kubectl exec -it pvc-inspector -- sh # explore data ls /pvc # cleanup kubectl delete -f pvc-inspector.yml Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://frank.sauerburger.io/2021/12/01/inspect-k8s-pvc.html [2]: /thoughts/
External Link stackoverflow.com [1] In order to use k8s secrets manifest you first need to encode the data values. echo -n 'mega_secret_key' | openssl base64 Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://stackoverflow.com/questions/53394973/cant-create-secret-in-kubernetes-illegal-base64-data-at-input [2]: /thoughts/