My Home Server Setup

4 min read
homelabserverdockermonitoring

Hey! This is my first blog post. I've been down the home server and self-hosted rabbit hole for 2 years now. I started this hobby in July 2022, with Orange Pi Zero 2 as my first server.

Orange Pi Zero 2

I bought Zero 2 as the alternative for Raspberry Pi 4, because it was too overpriced back then. Long story short, in October 2022, I decided to buy a new machine for my server, that's powerful enough to host a game private server. It's one of the TinyMiniMicro unit, an HP EliteDesk 800 35W G2 Mini I bought it used for ~189 USD on my local online store, you could probably buy it cheaper on eBay. Though it was probably overpriced, but I still think it's worth it for me.

My Home Server (Now) #

This is what my home server looks like now. I've been using the EliteDesk unit for almost 2 years, I also reuse my old gaming laptop as a server.

My Server (Now)

These are the specification of the machines I'm running:

  • STB HG680P

    • OS: Armbian
    • RAM: 2GiB
    • CPU: Quad core Cortex A53
    • Storage: Built-in 8GB eMMC
  • HP EliteDesk 800 G2 Mini

    • OS: Proxmox VE 8.2.4
    • RAM: 16GiB
    • CPU: Intel Core i5-6500T
    • Storage: 512GB NVME SSD, 128GB SATA SSD, and 1TB HDD connected with enclosure
  • Acer Nitro 5 AN515-52

    • OS: Arch Linux
    • RAM: 8GiB
    • CPU: Intel Core i5-8300H
    • Storage: 256GB NVME SSD, 80GB HDD

With that three not-so-powerful machines, you probably wonder what I'm running. And in this post, I would like to show you what I'm actually running on these machines.

What is Running Inside My Server #

Here is what my self-made home server dashboard looks like:

Home Server Dashboard

There are quite a few services, aren't there? I will explain what all of those services/applications do, starting from the top-left.

  • Media

    • Jellyfin: A media server. It provides me a nice web and applications to watch my anime. This way, I don't need to stream anime outside my network, and use locally provided media server and watch it from there, by using the web or android app that is provided. It also has jellyfin-ani-sync which I use to sync my watched episodes, to website like MyAnimeList.
    • Sonarr: A PVR for shows. It automates tracking and downloading newly released seasonal anime for me and notify me via Discord when it's already downloaded.
    • Prowlarr: Indexer Manager. It acts as a provider for Sonarr to download all of the 'Linux ISOs' legally.
    • AriaNG: download manager. It's a web UI for the aria2 download manager.
    • ShokoServer: An organizer for my anime collection. Basically sorts and renames file, and provide metadata for Jellyfin.
    • MeTube: Web UI for youtube-dl/yt-dlp. Provides an easy-to-use frontend to download a video on YouTube.
    • gdlwebui: Web UI for gallery-dl. Give it a link, and it will batch download all images from that given link.
    • miyo: Web UI for waifu2x-ncnn-vulkan and RealESRGAN-ncnn-vulkan. This will take care of upscaling an image.
    • AniDown: A web that I made to download anime from a certain sites, it provides the default setting and filters that I want.
  • Applications

    • Syncthing: Continuous file synchronization. It syncs all of my phone photos and screenshots to my HDD.
    • Memos: Note taking app. I often write project ideas here that I think of here.
    • Vikunja: To-do app to organize my college works.
    • VaultWarden: Unofficial BitWarden server, a password manager.
    • Duplicati: Backup client to backup my data to the cloud. This one has been unreliable at least in my use case, might change it to something else later.
    • Wakapi: Self-hosted WakaTime. It provides statistics of coding related things like how much time I spent on a project, what languages I write the most.
    • 2FAuth: You might know Google Authenticator, this is a kind of web version of that. There's always a time I need to make 2FA, and my phone is not by my side.
    • Schedula: Web to manage my college schedule. This is integrated with a WhatsApp Bot to send a notification 30 minutes before the class starts.
    • GPTNext/NextChat: An alternative web for ChatGPT. Since it's hosted locally, it's really fast to access.
  • Managements

    • Intel AMT: IntelĀ® Active Management Technology. My HP EliteDesk comes with vPro and this is the remote management website that it provides.
    • Nginx Proxy Manager: A web UI for the nginx. I use this to access of all my services with a domain, without putting its port.
    • Proxmox: Web UI that Proxmox provides to make virtual machines or containers.
    • Scrutiny: Monitor my hard drives and provides frontend with a nice graph for it. It can also be configured to notify if there is something wrong with your HDD or SSD.
    • Grafana: Provides a nice graph of my machines that are configured with node_exporter.
    • AdGuard Home: A DNS server that acts as a network-level ad-blocker.
    • Dockge: I use docker compose on almost all my self-hosted applications. This gives me a nice web to view the logs of the docker container.
    • Public Directory: Public HTTP server that my friends and I use to quickly share stuffs. It uses darkhttpd.
  • Game

Conclusion #

Setting up and maintaining a home server is really fun. At first, I only started because I want to host a game server. But, starting with Pi-Hole, I started looking for self-hosted applications that might be useful. There was also a time when I scrolled through the awesome-selfhosted just to find a useful app for me. I found myself searching for solutions to problems I didn't even have yet.

Having home server also drives my passion to make applications that I actually use. Since I have a machine that is always on (almost), I don't need to find a VPS to host all of my stuff.

If you've read this far, I hope this post has given you ideas about what you can do with a home server, or at least provided some insight into the world of self-hosting.

Thank you, have a nice day.