j2c4-concrete.png

My Home Server

  1. Introduction
  2. Hardware
  3. Software

Introduction

This post will detail my home server including hardware/software used, uses I have for it, improvements to be made, etc.

Hardware

Around 2019 I was doing IT-work for a non-profit lawfirm. They wanted me to destroy the data on dozens of hard drives in workstations they were recycling. When the job was done, they gave me their old workstations to do with as I pleased. These were mostly circa-2014 Dell Optiplex desktops. I went and bought the Fractal Node804 case which can hold 10 3.5" hard drives and several more 2.5" drives. I completely filled it up for a sum of 21 terabytes of storage capacity. Next I bought a motherboard that could take the fastest processor from the recycled workstations. It also had ample SATA connections for the hard drives. I reused memory from the recycled workstations for a total of 16 gigabytes.

Software

When the server was still new I used Centos 8. I later switched to Gentoo Linux with systemd. Due to the randomness of the capacity and models of the hard drives, I looked for a way to have redundancy in case of drive failure. I settled on mergerfs+snapraid, which pools all the drives together into one and also defends against drive failure. This was the perfect solution for utilizing a bunch of random hard drives together. Since this server was primarily intended to be headless, I set up dns and ssh to remote into it on my main machine. I even setup terminus on my phone so that I could give commands to it directly. I set up many containers from my bed this way. Speaking of containers, I installed docker to containerize all the applications I would be using.

Container Apps

Portainer

I first setup portainer so that I could orchestrate my containers from the browser

Nextcloud

Next, I setup Nextcloud office suite with redis. I had been meaning to setup a nextcloud instance for years and it finally happened. I had some performance issues at first but after some configuration I got it working perfectly well on the server. This container serves as my consolidated browser file browser as well as my calendar and task manager to a lesser extent.

TinyTinyRSS

I chose TinyTinyRSS as my feed reader and set it up in docker. I am still a huge supporter of RSS and I use it to read virtually all of my news and updates. I also installed RSS Bridge to go along with it, which I used to create RSS feeds for sites that don't support it.

Gitea

Gitea is the git front end that I've been using the longest. Its just solid not much else to say.

Airsonic Advanced

Perhaps my most consistently used docker app of all time is airsonic-advanced. This is my music streaming platform that I play my music collection from. Its UI may appear dated but it has theming options and unrivaled customizability and options.

Jellyfin

Jellyfin is the Movie and TV streaming platform that I use. It boggles my mind that people out there use Plex when Jellyfin is free and virtually on par with all its features.

Mediawiki

I use it to host my notes and other text files