Posts

Dealing with a corrupted Raspberry Pi

It was a chilly Monday morning. School was cancelled due to the ice on the roads. I thought it would be a perfect day to get some stuff done in my homelab. But as they say, anything that can go wrong will go wrong.

First signs

In the morning I installed Pi-hole on my raspberry pi. You can read my blog post about that. After I deployed the Pi-hole, I tried to install another app to deploy something else. When I was installing that, I was getting errors about some syntax error in a file. I opened the file in question using vim and it looked normal. I found a backup of that file and I copied the backup to the main file and everything worked.

Setting up a second Pi-Hole

For almost a year I have been using Pi-hole as the only DNS server in my network. For those of you who don’t know, Pi-hole is an open-source solution for custom DNS records and ad-blocking in your home network. My Pi-hole instance has worked just fine up until now. Recently, it has started slowing down the entire network and crashing.

Picking a server

Right now I have 3 servers. 2 of them are running linux, and the other one is running Home Assistant OS. The Home Assistant server is pretty locked down so it may be hard to get Pi-hole up and running on it. One of the linux servers is already running Pi-hole.

Badly written analytics script causes cascading homelab failure

This all started a couple weeks ago. Things started to slow down on my homelab server. My Minecraft server kept crashing. I thought that the Minecraft server was the cause of this because it has a lot of memory allocated to it and every time this would happen, the memory would fill up and the Minecraft server would crash. That thought was further reinforced when I noticed the memory was almost about to overflow when I stopped my Minecraft server and the memory usage significantly went down.

My New Blog (again)

New year (almost), new me blog! It feels like this is the millionth time I made a new blog. My previous blog was really bad. I had to write blog posts inside a JSON file. Nothing at all was automated.

Recently I started using Obsidian to take notes. It’s just a markdown editor but with a fancy UI and some more features. Then one day I realized I could write my blog posts in Obsidian and have them automatically pushed to my website.

Roast your developer portfolio

I have just made yet another website! This one is inspired by codenoid/github-roast. Basically you just input a link to your portfolio site and it roasts it. Once you roast it, make sure to post it to Mastodon and Twitter with the #devportfolioroast hashtag.
The front-end was written in HTML, CSS, and JS and the backend fully in Python. Once you input the URL, the backend will send a request to the Gemma:2B model from Google using Ollama. It will then send the roast back to the browser and display it. The site is super simple.
Now it is time for you to go and roast your portfolio: https://portfolio-roast.thefossrant.com

My homelab had the stupidest outage ever

This morning I woke up to my phone using mobile data and my home assistant automations not working. Initially I thought it the power was out, but I could turn on the lights just fine. I checked my UniFi app and saw that the server was not connected to the network at all. This meant that the cable got unplugged, the switch isn’t working, or the server isn’t working. It said the switch was connected and another device was connected to the switch so that narrows it down to just 2 cases. So I opened my server closet in the basement and immediately noticed something was wrong. I couldn’t figure out what was wrong but I just felt like something was wrong. Everything was plugged in, the network switch lights were blinking like normal, my raspberry pi was running just fine, even the server indicator lights were on. My main server is an old gaming PC so it has a glass side panel so I looked inside and I could see the fan spinning, but I could not hear it. Usually I have it set to full speed and I can hear full speed very well. I tried rebooting the server with the power button and the fans didn’t go to full speed. As a last resort, I brought down a keyboard and monitor. As soon as I plugged in the monitor, I saw that there was a prompt to set the time on the BIOS!
Image Description In my opinion, this was the stupidest reason for an outage.

I rewrote my blog site

So I recently added RSS feeds to my blog and that means I would have to edit 3 files to create a blog post. That’s ridiculous! So I made a new blog site in PHP. All of the data comes in from the RSS feed, meaning I only have to edit 1 file. In the future, I will probably create a program which automatically formats the XML and stuff so I only need to worry about typing the article. I considered automatically generating a summary using AI but it didn’t work out so well. In the future when AI improves, I might do that. The site is hosted on domino server (one of my 2 servers) using Apache in a docker container and is then proxied through Caddy which generates the SSL certificate. As of right now Caddy is running on a raspberry pi so if the site grows in popularity I might have to scale things up. There are still a couple things I need to add to the website but for now it is in great shape!

RSS feeds are now available on my blog

I have created an RSS feed for my blog! This means you can now view my posts in your preferred RSS reader.

As of right now, I am still manually creating articles with HTML and manually adding them to the RSS feed. I am looking into solutions for this to make the process more streamlined. Stay tuned for more!

I made a voice assistant

I have just released the first version of my voice assistant Excalibur! It is an alternative to voice assistants like Google and Alexa but privacy focused. You can download it on github.

The voice assistant is written completely in python. It uses Vosk for speech recognition and Ollama for AI processing. It currently has the ability to answer questions, give you the time, and give you the weather. It works by detecting words in your prompt like “weather” and “time” and gives you a result based on that. If none of the trigger words are detected, it hands off the prompt to the AI which will try its best to generate an answer.

My experience with UniFi

A few months ago I purchased a UniFi Dream Router after experiencing problems with my ISP-provided router. And now I can’t go back. I have tried 2 different ISP routers as well as a couple “gaming” routers. The difference between your router and the UniFi Dream Router is that UniFi makes enterprise hardware. They managed to pack all of the enterprise features from their super expensive rackmount hardware into a small $200 device. You might be wondering what the difference is between a residential and enterprise router. The main thing is reliability. With the dream router, I have had zero down time not related to power outages.