My first server took the form of a very old HP server. It was very square, had four disk bays, an AMD processor, a built-in and dedicated network card, e-SATA port, and screamed louder than me singing. Running Windows Server 2012, the 4Gb memory was clogged just standing there. I got this miracle from my father when he upgraded to some integrated solution to host the family images and plex. This was probably the coolest thing I owned. In my ownership it was mostly used to host minecraft. It worked fairly well ignoring ten-year-old me not knowing how dynamic IP addresses worked. Although I managed to set up the minecraft server and get it running on LAN, and with a little help from my father, port forwarding was set up and gaming was accomplished. The process became:
- Start the server
- Connect screen, keyboard, and mouse during the minute-long startup
- Start the minecraft server, a process I memorized
- Run to my room to test if it works on my machine
- Google "what's my IP" and send it to my friends over Skype
- GAME!
Was this better than using my slow laptop. No. Especially since I couldn't have the server on while I wasn't actively using it. But it was cooler. Looking at the main problems, it is fairly similar to those that would plague me for years to come:
- Convince my father to let me keep a server running constantly (without paying for electricity)
- noise
- That stupid dynamic IP address
All of which I have fairly good solutions for today. Continuing the story, the server was put under the bead for a while. Partly because of the aforementioned problems, in large part since I didn't play minecraft.
Ignoring temporary VPS I set up, that was quickly deleted due to the $5 price tag, the next server became a Raspberry Pi 4B I got for Christmas. It became a server at 2020. It ran Raspbian Lite, since I was too good for a GUI, had 4Gb RAM, and was cooler-less to no ones benefit. I ran everything in a single docker-compose, something I would recommend to most. It had a 2Tb external HDD connected, storing pictures, music and movies, which disappeared way to quickly when the storage gave up.
With this instalment came the first solution to all my problems: father wasn't
to mad due to the PI being very efficient, the only noise was from the HDD,
which wasn't to annoying when trying to sleep, although noticeable. As to the
DNS, I found duckDNS. A free DNS service, where
you gain a subdomain of duckdns.org with an A-record you can update in an
instance. Using a tool such as ddclient, the record is updated whenever your
ISP feels like changing you address.
All in all, I loved my little server. I could play sysadmin while showing my nerd friends my own password manager hosted with vaultwarden, or being able to watch movies with jellyfin the short time before the PI overheated. Even the overheating problem was solved with a scavenged laptop fan that was strategically balanced on top of the CPU.
But the day came in 2021 when the PI couldn't hold on any more. The external HDD was
beginning to give up, files was lost+found, and the processor too hot.
The PI was replaced by an unclothed laptop, which for now on was to lay on my desk.
I had opened her up, for some reason, the fan was broken so she made no noise,
and the heat sink was bent. I bought a 2Tb SATA SSD that servers me to this
day, and installed Ubuntu on it. The migration was very easy since everything
was a simple docker-compose with volumes rooted in the same home directory. The
laptop came with 4Gb RAM, that I quickly upgraded to 4+2Gb with a stick that
somehow had found its way too my tech box. The increase in memory meant I could
keep adding services and never remove any.
The laptop survived a few months until she suddenly died. Maybe because of the very hot VRM. My next victim was a new laptop. It stood with its butt up high for increased cooling and used the same RAM sticks as the previous laptop. The killer-feature was a CD reader that came to use twice. Unfortunately she too had a very hotspot at the charging part of the chassi and quickly began acting weird, with sudden crashes.
Luckily my father provided me with a new laptop just in time. It had a more powerful CPU and ran cooler. It stood running on my desk until 2023, and it acquired many months of uptime. But she became loud in my bedroom, took up too much space and was beginning to acting weird - probably because of software, and she was beginning to run hot at the charger. Partly as a preventative measure, mostly because I wanted a new toy, I bought myself an Intel NUC. She had a modern J4005 CPU, 8Gb upgraded to 12Gb RAM. She's finally very quiet, even under heavy load, has fair processing power, and truly feels fast. She was very much worth the about 1400 SEK I paid for her.
With the new hardware came a new operating system. I transferred all vital data to my desktop. Out went that grouse, mainstream Ubuntu Server; and in came NixOS that all cool sysadmins uses. Out came Btrfs, and in came the flashy F2FS, out came Docker-Compose, in came hardened systemd services and nix-containers (wrapper around systemd-nspawn) as well as a tiny amount of docker containers. I redesigned the entire backend, while keeping most of the user facing stuff the same. The same gitea, jellyfin, qbittorrent, immich, and more; but much less docker. I was very happy with nix. My recommendation for hobbyist sysadmin is definitely code based deployment with either Docker-compose or Nix; since it allows you to have a clear view of what's happening, allow you to migrate, reset and similar, and you do not need to be afraid to mess up. Docker-compose is definitely the simpler of the two, although I prefered the OS-centric and integrated way of Nix
I have now run NUC for over three years. It has served me well. But with my first real job with a fair salary I feel a need to splurge on my self. That why there is now a computer in my storage closet running a Ryzen 5 3600, 4*4Tb storage (in RAIDZ1), 32Gb RAM, and a 10Gb network card; everything in a 4u server chassi.
I look forward too chowing of my new home lab!