My Home Server Setup - Part I
Last updated
Last updated
Years ago, when I was experimenting with single-board computers (SBCs), I was amazed by the capabilities of the Raspberry Pi. My initial plan was to use it for a home automation system for hydroponics, but that project didn’t quite work out. However, I later repurposed it as a DNS security tool for my home network. For ease of deployment, I set up Pi-hole using Docker on Raspberry Pi OS.
Since I had a containerized service running on the Raspberry Pi, I started experimenting with other self-hosted applications like Gitea, Nextcloud, and a few others. While this was an exciting learning experience, I encountered several challenges over time:
Performance and Heating Issues: SBCs aren’t designed to run multiple services continuously. While they can handle it, they tend to overheat, and performance degrades significantly. Over time, as I added more services, resource usage increased exponentially.
Storage and Connectivity: While the Raspberry Pi supports USB hard drives, managing multiple external components without a dedicated case quickly becomes cluttered. More wires mean more complexity, and ensuring proper spacing to avoid overheating and static buildup adds another maintenance layer.
Stability: Frequent OS crashes and unexpected reboots were common. Stability remained an issue even with controlled temperature management using smart plugs for scheduled power cycles and only installing necessary updates. The SD card would eventually become corrupted or unstable. Additionally, working with ARM architecture posed its own set of compatibility challenges.
Given these limitations, I decided to upgrade to a small, power-efficient, silent, stable, and compact x86-based system. I opted for a used Dell OptiPlex, which I got at a great price. Currently, I have two of them running as my home servers.
For the OS, I chose Manjaro Linux on both servers. Manjaro is lightweight, has minimal bloatware, and offers excellent package management, making it a solid choice for my use case. For container management, I run Docker on both machines and manage the containers via Portainer for a simple and efficient workflow.
Here are the services I use daily:
– A great Docker management solution
– A customizable dashboard that serves as my homepage, linking to all my services and bookmarks
– Monitors service health and can send alerts to Slack, Discord, and other platforms
I'm still in the process of setting up additional services and will share more updates in the future. Stay tuned!
As I continue refining my home lab, I plan to explore more advanced configurations, including:
Kubernetes or Docker Swarm: To improve container orchestration and scalability
Self-Hosting Email Services: Setting up a mail server with improved privacy and security
VPN and Zero Trust Networking: Implementing a WireGuard-based VPN and exploring solutions like Tailscale for secure remote access
Home Automation: Revisiting my original hydroponics project using Home Assistant and IoT devices
AI and Machine Learning: Running small-scale ML models for personal projects, such as image recognition or automation
This journey has been a rewarding learning experience, and I look forward to sharing more insights in the next part of this series. If you're building your own home server, I'd love to hear about your setup and experiences!
– A web-based IDE, useful for making quick configuration changes
– A lightweight Git repository management system
– This is an Automation and workflow management tool with good integrations
– A collection of handy scripts
– Synchronizes and backs up files across devices
– A self-hosted alternative to Spotify
– A powerful PDF management tool
– A meal and recipe management service
– Local photo storage and management
– A self-hosted media streaming service with cross-platform support
– A document and note management tool
– An RSS aggregator for consolidating all my feeds
– A document management service with tagging for easy organization
– A digital library for reading manga and books
– A personal finance management tool
– A personal relationship manager; I use it for journaling, though it has many other features
– A self-hosted cloud storage solution
– An S3-compatible storage alternative for large files
– A robust backup solution (Pro tip: Always back up your data! Things may seem stable until an unexpected update wipes everything out.)
– A DNS-based ad blocker and network security tool
– A self-hosted password manager