I recently bought a refurbished mini computer to use as a home server, and I’m thinking of documenting the learning process through blog posts, primarily as a way to solidify the things I’ve learned, however, I’m not sure where to best do this. X, the service formerly known as Twitter, is completely out, and I’m basically using as “private account read only with retweets for things I want to save for later”. I have a bunch of social media accounts I don’t really use, but I’m thinking of going a simple self-hosted blog... For now I’m going to use Tumblr, but I may migrate these else where...
step 1 - buying the hardware
This was both kind of easy and not, because you need to think about use case and cost.
Initially was thinking of going with Raspberry Pi or Odroid, but I eventually ruled them out because the cost:power ratio is just too expensive. I eventually settled on “let’s get a mini computer” and spent the last uhhh two ish years dithering back and forth waiting for a good price.
Recently, my need to Actually Learn Some Networking has gotten more urgent, so when I found a decent price, I went ahead with it.
I ended up getting a Dell Optiplex Micro 7060 i5 8500t with 8GB RAM and a 256 GB SSD for about $250 AUD. I’m a bit miffed because I purchased this off eBay about a week ago, and yesterday, I saw the almost exact same model (i5 8500 with 16GB RAM) for $235 AUD.
I think ultimately the 8500T is the better choice for me, as it uses less energy than the 8500, but that extra RAM would’ve sure come in handy.
The hardware purchase process was a bit of a pain, because even though I’ve learned the meanings of various acronyms again and again and again over the years, I keep forgetting what they actually mean.
Things I learned (or relearned):
CPU generations matter when considering “what’s better”. An i5 from ten years ago is worse than an i3 from last year.
I still don’t remember what SODIMM stands for
step 2 - set up the thing (which OS?)
After the computer arived, I spent a good number of hours on the internet reading around to try and figure out how I wanted to do this. This project was originally inspired by wanting to set up Home Assistant, however, given my need to learn/mess around with/figure out some networking things without falling asleep watching a Youtube video for upteenth time, I’d chosen to go with something that had a little bit more computing “oomph” than the bare minimum requirements.
So. I definitely didn’t want to install the Home Assistant OS on the bare metal of the computer. But what other methods were there? Virtual Machines, Docker containers, installing it purely on Linux... A whole bunch of options basically.
After some research, and thinking on it overnight because I had an awful headache, I ended up going with Proxmox, which is an operating system that’s based off a Linux distribution (I think it was Debian) that lets you create a bunch of virtual machines. People had also talked about how it was good with RAID and UNRAID and VFS, but my head was already spinning with all the acronyms. From what I remember from research last year, RAID and UNRAID refer to data duplication and backup. VFS I read a brief explanation on and decided to put it in the box called “too complicated”, but I think it also has to do with being able to restore your stuff in case of catastrophic failure.
Both of these things required hardware that I don’t have (SSD or HDDs) and were a use case that I don’t need - I don’t care if everything on the drive is lost as I’m not planning on putting anything important on there.
But before I went ahead and installed Proxmox, I needed to figure out how it worked. Thankfully, there’s an odd dozen or more explainers for basically everything. Proxmox needs to be installed on bare metal. Cool. But that means it’s going to overwrite the default Windows installation that my refurbished lil machine comes with.
So my next question was: will I be able to install and activate Windows again if I install Proxmox over it? Cue another hour or so of Googling around and trying things, but in my specific case, the Windows activation key is... Stored? in the “BIOS” (but actually it’s the UEFI). But if you mess up the BIOS or UEFI, it might disappear, so I copied it down into my password manager.
The next step... Installation! Used Balena Etcher to write the OS installer onto a USB stick, confirmed that I had the right UEFI settings, and installed.
For the most part, the process was very simple due to this informative guide someone had written up. I suspect I possibly shouldn’t have been using Proxmox given that I didn’t have the first clue as to what some of the things were referring to, but oh well.
I had a tiny bit of an embarrassing faff when I realised that the powerline cable wasn’t working to give my mini computer internet. I realised that all these years, I had assumed that the powerline adapter somehow just magically pulled the internet connection from the wall plug. In actual fact, the powerline wasn’t connected to the router.
Anyways... Installation finally done!
step 3 - home assistant, SSH access
After that, it was pretty simple. Login to the Proxmox localhost website it’d set up on my network, then use the handy scripts located in that guide to install Home Assistant. I had to terminate the Home Assistant virtual machine because for some reason, the password I’d set up for the admin account was.... Not it, and so I was locked out, but since this was literally the first time setting it up, it was fine.
One of the first things I need was set up SSH access through a user with sudo access, because I was getting sick of all the cables... With SSH access, I could detach the computer from all of the freaking cables I had use to set things up. It was... Let’s see, DP, wired mouse, wired keyboard, power cable. Geez, in retrospect, that’s very few things, but the desk I was working on looked like a definition of “cable management nightmare”
I was actually at a meetup recently where the person had SSH’d in directly as root and did everything as root... Ouch. I gave her a very mild lecture and then an explanation to the others that didn’t know what was going on that it’s considered umm.... not good/best practise to login directly as root...
I’ve currently got SSH access setup with a password, but I’ll want to change it to an SSH key soon.
Added the few “smart” devices I had to home assistant.... And since it was 2am, it was power off for the night.
I’ve been dealing with a somewhat wretched headache for the past one a half days, so I haven’t had much motivation to do anything with these.
I’ve got a Sonoff Zigbee adapter coming in the mail eventually, so once it’s arrived, I’ll be able to connect the Ikea air purifier that I brought and maybe set up some automations with that.
Also on the list (but which may have to wait for the Zigbee adapter) is the house’s solar panels. Right now it requires cloud polling (a la API requests) which I’m not happy about. I have a Raspberry Pi that I might be able to install solar-assistant on, but the license is I think 80 dollars? There’s also Grott. Either way, I’d love to have local only monitoring, and it seems like Grott might be able to do it in a sort of “man in the middle” way.
Some of the apps we use at work use both NGINX and Tomcat, so I want to get better familiarity with it.
I’m extremely leery of setting up a connection to this server to the wider internet, so reading up and implementing Linux security best practices is a must. My friend loves Tailscale so that’s possibly on the list, but given that my initial thoughts around security were “let’s buy a cheap second hand router and put everything on a LAN that has no access to the internet”...
At some point I want to go through the process of setting up AO3′s source code, however, I think this might be done better with rented server space rather than a refurbished home devices.
Very far down the track, a Plex/Jellyfin server might be an option, but I’m not sure the current hardware I have is adequate for that. I do want to move away from SaaS subscriptions, but they’re also just very convenient. Right now my mindset is “fuck around and mess up, don’t put anything important on there”.
So anyways, that’s a wrap.