I remember my very first home server in college, an old Dell PowerEdge rack mounted server I found on facebook marketplace paired with some Hard drives I found also on facebook marketplace. This server opened my eyes to the benefits of self hosting.
I started simple, Ubuntu server and a Minecraft server. It didn’t take long before I realized I needed more RAM so I upgraded to a staggering 16GB of DDR3 RAM (from 8GB). A couple months later I discovered docker containers, I could now host a handful of services locally! My first docker container was openVPN, so I could invite all my friends that lived across town to my video game server without opening the server up to the general public. Let’s fast forward 6 years since I got that server.
I realized, electricity is expensive and this giant server could be traded for a much smaller, more energy efficient (and arguably faster) cluster of Raspberry Pis. I moved away from video games and focused on more utilitarian docker containers such as Home Assistant
So I want to break down some of the most useful contains I currently use on a weekly basis.
Heimdall
This container is small but allows you to add all your web URLs into a single portal for easy access to every container you deploy. It also supports authentication and can connect to some containers via API to give you a general idea of health or stats of each container.
Pi-Hole
No one likes those intrusive ads that make browsing the internet a pain. Pi-Hole is a network-wide ad-blocker that ignores any DNS queries to black-listed domains known for being ad providers.
It is important to keep up to date as these domains frequently change
Portainer
This one is exciting! You don’t even have to remember individual IP addresses for each node of your cluster. You can use Portainer to manage each node in your cluster and each container. It provides a UI for you to view stats on your cluster/node/container along with an easy way to attach to console for easy debugging without the need to SSH.
Speed Test Tracker
Sometimes you can’t tell if your network is slow or if you’re experiencing a network outage. Speed Test Tracker tests the internet speed and logs it at a set interval for you to monitor or be alerted when it detects if you’re suffering from an outage.
Wyze Cameras
I have a couple of cameras around the house but Wyze only offers a mobile app. With this container it allows you to view the camera’s feed in browser.
Home Assistant
This is my favorite container! I am a sucker for automation especially when it requires very little effort to set up. Home Assistant does exactly that. I am able to tie in all of my smart home devices and create automations, integrate with apple home kit, Amazon Alexa, and create custom shortcuts in my phone for even more automation!
My favorite automation is: If I am Home, it is a weekday, it is not a federal holiday, I am not marked Out of Office in my calendar and the time is 8:45AM, turn on my office lights, Set my standing desk to standing height (for stand-up at 9AM), pause any alarms once office initially detects my presence, and sets my phone to “Work” focus.
Conclusion
I have all of these containers and more running on one Raspberry Pi 3B (1GB RAM and 4 Cores), and two Libre Computer compute boards (4GB RAM and 4 Cores). This setup leaves a bit of headroom given it’s current workload, however thanks to this being a cluster, adding a 4th node is as easy as installing a Portainer Agent docker container and connecting it to the main node (5 mins) from start to finish.
Leave a Reply