The Absolute Nightmare of Building My Own Server
Man, building my own server was an absolute nightmare! I slowly gathered all the components, brought everything to the office, and tried to fit a new motherboard into an old computer case. The case was horizontal, low-profile, and incredibly compact! It was practically begging to be the centerpiece of a #ServerBuild (it was literally a server sold to me by former Microsoft employees).
Initially, I planned to do a headless OS installation, but unfortunately, the server wouldn’t boot. I spent a long time trying to figure out what was wrong and concluded that I couldn’t handle a headless setup. I needed to buy a GPU and somehow install the system with a monitor.
So, I bought a GPU, connected a monitor… THE SERVER DOESN’T BOOT. The cooler is buzzing, but there’s no display! I spent ages trying to understand what the hell was wrong.
Turns out, I made a classic mistake. Classic #HardwareFails: when buying the hardware, I completely forgot that AM3 and AM3+ are slightly different sockets. My AM3 motherboard simply cannot work with FX processors… Fortunately, this was easily resolved: a Phenom II came as a free gift with the motherboard, and that’s what finally got it running.
PRAISE THE GODS, IT WORKS.
But no, then something terrible happened. The 1TB Chinese SSD died. BRAND NEW. BUT NO WARRANTY BECAUSE IT’S FROM CHINA. It was incredibly frustrating, so I had to dig into my old laptop and pull out a battle-scarred 180GB HDD from 2009… Yeah, a server powered by an elderly HDD sounds like a brilliant idea.
I assembled the server, connected the keyboard and monitor, and installed Debian 13. #Linux Nothing seemed out of the ordinary. I tried to ssh from my home computer, and it worked! I was thrilled. I turned off the server, disconnected the monitor and keyboard, and booted it up. The server never worked via ssh again and didn’t even initialize in the router.
After hours of scouring manuals and reading forums from the 2000s–2010s, I discovered a highly unpleasant fact:
The motherboard absolutely refuses to boot without a keyboard. WHY? FOR WHAT PURPOSE? WHO DECIDED THIS WAS A GOOD IDEA? So, no monitor is fine, but no keyboard is a dealbreaker!
Fine, whatever. I left the keyboard plugged in, turned on the server, it worked, ssh connected, everything was great!
Then, 40 minutes later, the server went down. It was still physically running, but it disconnected from the network. According to the logs, the server gracefully shut down, stopping one #Docker container after another, but it never fully powered off at the end. A reboot helped, and these shutdowns repeated 7 more times, lasting anywhere from an hour and a half down to 10 minutes (yes, 10 minutes and the server gave up).
I started to panic. LITERALLY EVERYTHING was under suspicion:
- Thermal throttling or CPU load protection?
- Memory errors?
- HDD head parking?
- Some obscure software limitation?
I suffered for days, and the culprit turned out to be the most unexpected candidate: the nouveau driver. Disabling it stopped the server from crashing.
How? Why? Are you asking me? In my desperation, I was just disabling things left and right! I have no idea why a GPU driver was taking down the server!
With the server finally configured, I started deploying my services, and guess what? Not everything was smooth sailing! Sharkey, Peertube, and Pixelfed couldn’t be hosted on my server because my CPU lacks the necessary instruction sets to run them!
Lemmy had the same issue, but I fixed it by simply forking the source code and rewriting a couple of libraries. That’s the #OpenSource way! It didn’t affect the functionality, but now Lemmy runs perfectly on the server.
Then came the Mailcow issues, but alas, there’s nothing to be done there: my ISP blocks all the ports required for email services.
Thankfully, everything is running stably now. I’ll just have to fork and rewrite the missing services to fit my needs. Turns out, being a sysadmin is much harder than I thought.
#SelfHosted #SysAdminLife #Lemmy #Fediverse #DIYTech
