My Home Server Setup

In today’s digital age, having a reliable home server setup can be incredibly beneficial, whether for streaming media, managing files, or simply learning new tech skills. I recently took the plunge and set up my own server using a second-hand mini PC. I’m excited to share my experience, including the hardware I chose, the software stack I implemented, and the backup solutions I put in place.

Homelab Dashboard
Heimdall Dashboard

Hardware Specifications

I went with a Dell Optiplex 3060 Micro for my server. It’s a compact machine that offers solid performance, even as a second-hand unit. Here’s what I’m working with:

Dell OptiPlex 3060 Micro
Dell OptiPlex 3060 Micro

To enhance security, I’ve encrypted both the HDD and SSD using LUKS (Linux Unified Key Setup). This ensures that my data remains protected, even if the drives are physically compromised.

Additionally, I’ve integrated a Raspberry Pi into my setup as an alternative to IPMI (Intelligent Platform Management Interface). This allows me to monitor and manage my server remotely, providing a cost-effective solution for out-of-band management.

Operating System

For the operating system, I chose Debian 12. I’ve always appreciated Debian for its stability and security, and it has a strong community backing. The installation was straightforward, and I found it easy to customize to fit my needs.

Containerization with Docker

One of the best decisions I made was to use Docker for containerization. It allows me to run applications in isolated environments, which simplifies management and reduces conflicts. Here’s a rundown of the containers I have set up:

Managing Storage for Media

A big part of my server’s storage is dedicated to media files. I have about 100 GB of movies, 200GB of music, along with 50 GB of personal photos and 30 GB of family photos. That totals 380 GB of media that I need to manage and back up. Jellyfin has been fantastic for organizing and streaming my movie library to various devices in my home. With a 1TB HDD, I have plenty of room for my current collection and future additions.

Backup Solutions with Restic, Storj, and Backblaze

To keep my data safe, I implemented a backup strategy using Restic along with Storj and Backblaze B2. Here’s how I set it up:

By using both Backblaze B2 and Storj, I ensure that my data is backed up in multiple locations, providing peace of mind against data loss.

VPN Setup with Windscribe

To enhance my privacy, I opted for a Windscribe VPN monthly plan at $3. This plan allows me to connect to servers in both Singapore and the US, which is great for accessing geo-restricted content. The integration of Windscribe with my Docker setup helps secure my internet traffic.

Remote Access with Tailscale

For secure remote access to my server, I implemented Tailscale. This tool creates a secure mesh VPN, allowing me to connect to my server from anywhere without exposing it to the public internet. It’s been a game-changer for accessing my services securely.

Public Access with Cloudflare Tunnels

To make my public-facing websites accessible, I use Cloudflare Tunnels. This service allows me to expose only the necessary Docker containers to the internet securely, without needing to open ports on my router. It adds an extra layer of security and ensures that my public applications are accessible from anywhere while keeping the rest of my server private.

Current Situation and Future Plans

I live in a university setting for about nine months a year, which means I need a server that is both reliable and accessible remotely. With a solid 300 Mbps broadband connection at home, I can stream media and access my server without any issues. In the future, I plan to upgrade to a NAS with a similar setup, which will allow for more storage and better data management.

Conclusion

Setting up my home server with a second-hand Dell Optiplex 3060 has been a rewarding experience. The combination of Debian, Docker, Tailscale, Windscribe, and a solid backup strategy using Restic, Storj, and Backblaze B2 has created a secure and efficient environment for hosting my applications. The added security of LUKS encryption and the use of a Raspberry Pi for remote management further enhance my setup. Whether I’m streaming movies, managing documents, or coding remotely, my server setup has proven to be a reliable solution for my needs.

If you’re considering setting up your own home server, I hope my journey provides some inspiration and guidance. The world of self-hosting is vast, and with the right tools and hardware, you can create a powerful server environment tailored to your needs. I’m open to suggestions for further improvements and enhancements. Happy hosting!