Jekyll2023-12-08T21:04:12+01:00http://localhost:4000/feed.xmlDerisis13’s temporary blogJust some nerd ramblingServer Setup Part 0 - Status Quo2023-12-08T00:00:00+01:002023-12-08T00:00:00+01:00http://localhost:4000/2023/12/08/statusquo<p>Since August I’ve been upgrading my home server setup. It’s not yet 100% complete, but most of the architectural decisions are already behind me. I wish to document this process so that others can learn from it and as a reminder for myself if I ever forget how I did something. This is part zero of my writeup, which’ll be about the hardware and software used prior to the upgrade. This should serve as a comparison baseline.</p> <h2 id="nas">NAS</h2> <p>I had a 2-bay Synology NAS for some years now. It has been passed down to me from a family member along with drives to populate it. It’s configured in RAID-1 with 2x 3TB HDDs. This capacity was almost filled up, which meant it was time to migrate from it.</p> <p>This NAS ran an SMB server, an ISCSI target, a VPN server, a DDNS updater, streamed music and had a BitTorrent client. The processor and RAM limitations crippled the responsiveness of these services, and the configuration was very limited as well. It was a good computer, but it no longer satisfied my needs - at least not for the price I wanted to pay.</p> <h2 id="linux-server">Linux server</h2> <p>To expand into additional services that my NAS couldn’t provide, I got a cheap laptop with a broken hinge (from a family member as well) and installed the XFCE spin of Fedora workstation on it. I like this device for how simple it is: 5W idle power draw, 4-core Intel CPU (passively cooled by a piece of metal), the entire board being just one card, except the socketed RAM and the WLAN card (which I found has no black/whitelist). Its IO is limited to 2 USB, 2 SATA (one for ODD) and 100MB internet. The keyboard and screen were nice to have when I started out, and the battery came in useful during power outages.</p> <p>This would have been a terrible fileserver but it ran PiHole and HomeAssistant in docker with great stability until recently the network interface started having issues. Fun fact: this was also the machine I used for building Fedora packages for ani-cli.</p> <h2 id="what-wont-change-now">What won’t change now</h2> <p>I’ll go over a few devices I use at home but won’t change now. They are still relevant as services will interact with them.</p> <p>I picked up a decent-size UPS from the trash a few years ago - it turned out to only need a new battery. Now it has backup power for my NAS and router.</p> <p>My networking is done by an ISP-provided all-in-one, which I hate but don’t want to change just now. There’s also an unmanaged network switch to provide extra wired connections.</p> <p>For media, I have a Chromecast (TV is not smart), a Pi 3 with Kodi and a Pi 1 with Volumio. With the exception of the Chromecast they get their files trough mounted SMB shares.</p> <p>There are a few IoT devices with open firmware I use for home automation and some that aren’t connected to the internet because their firmware is proprietary, outdated and they would be a security risk to my network.</p> <h2 id="comming-up">Comming up</h2> <ol> <li>Host System - the metal that’ll run my services</li> <li>Filesystem layout - from disks to directories</li> <li>Networking - connecting to the web</li> <li>Docker and nextcloud - how not to get in your own way</li> <li>Torrent and media management - My Lord, is that legal?</li> <li>Media serving - the forgotten world of DLNA and UPNP/AV</li> <li>Home automation - my home is smart</li> <li>Backup strategy - because RAID is not a backup</li> <li>Migration - moving it all in</li> </ol>Since August I’ve been upgrading my home server setup. It’s not yet 100% complete, but most of the architectural decisions are already behind me. I wish to document this process so that others can learn from it and as a reminder for myself if I ever forget how I did something. This is part zero of my writeup, which’ll be about the hardware and software used prior to the upgrade. This should serve as a comparison baseline.