So, what is homelabbing? While I really don’t like the verbing of nouns and the nouning of verbs that seem to be the current norm among advertisers and English speakers, homelabbing is the construction of a homelab. And, what is a homelab? It’s a cost-ineffective way to increase your home’s monthly electric bill by building your own data center at home. And why would I do this? To get my stuff off the cloud.
What is The Cloud?
In short, The Cloud is someone else’s server. Period. While advertisers would like you to think it’s a magical place where angels and/or the fae store your data for free (up to the first gigabyte), the cloud is a collection of large data centers and/or server farms owned by someone else, likely an organization who today is training their AI systems.
Like angels, Donald Trump’s mental deficiencies, and the side effects of advertised pharmaceuticals, The Cloud takes many forms. Some are consumer-focused, like Apple’s iCloud. I would put Dropbox in that category as well. Some are not, like Amazon Web Services (AWS) and Microsoft’s Azure. The primary benefits of storing data in the cloud is the ability to share it among either your devices or among other people who need (or want) access to that data, be they photos, videos, documents, etc. For us folks who have multiple devices, it’s very useful to be able to access and/or modify that data using whatever device is within reach. In my office, I have my Mac Studio. At home or the café, I have my iPad.
For some of my data, especially code files, I use a source code control system. This use of The Cloud is more about off-site storage and the management of that storage than it is about sharing. While very useful for my needs, it is still off-site and, for some services, isn’t free.
Aside: one of the reasons why I went through the trouble of writing my own Git/LFS server is to avoid paying rental fees to the source code control site for the storage of large files.
In the past month, the constructors and peddlers of AI have been scouring The Cloud for data. Several open source code repositories saw their servers get bombarded by off-site data requests, mostly in the form of AI models looking to improve their training. For me, enough is enough! My code is my own. My designs are my own. My data is my own.
Old Dog, New Tricks, Redux
I won’t go through last year’s DreamHost saga again. It’s too soon, even for me. That said, I did have to dive back into the DevOps pool like I did when I was Chief Engineer and Employee #1 of a small software company back in the early 90s. Back then, I wrote the code, tested the code, deployed the code, installed new hardware, updated drivers, wrote drivers, even salvaged Ethernet cables out of the walls and ceilings of an adjacent office (approved by the building landlord, of course). Great fun when you’re in your 20s.
Once I migrated everything into DreamHost’s cloud-based system, I knew that it was going to be time to get back into building my own systems and managing them. There are two primary reasons: cost and pride.
Pride: I’m a software engineer and have been writing code that has been deployed across hundreds of thousands, if not millions, of machines worldwide. I’ve written code that has run on everything from keyboards, graphics cards, motherboards, mainframes, minicomputers, PCs, Macs, Unix and Linux systems, laser printers. I’ve written keyboard controller firmware, SCSI videodisc player drivers, optical storage and tape silo controllers, image database management systems, image processing software, (computer) language processing systems . I’ve written code for CP/M-86, DOS, Windows, Mac System 7, macOS, Unix and BSD and Solaris and Linux versions too numerous to count, VAX/VMS, MVS/CICS. I’ve written code in multiple assembly languages: Intel x86, Motorola 68K, PowerPC, ARM, VAX, National Semiconductor NS32000 (VAX-on-a-chip). I could go on. Now, let me be clear. I didn’t invent everything nor was I the only person who worked on the projects I worked on. But I was, in all cases, productive and a quick learner and rose through the ranks in most places I worked.
Cost: why should I spend what amounts to a monthly rental fee to host my web sites and services on a virtual machine composed of a single-threaded virtual CPU, 2GB of RAM and 100GB of disk? Yes, the monthly fee is only $10/mo, but that adds up to $120/year. I just bought a small system for ~$400 with capabilities that dwarfs those specs. While this is not an apples-to-apples comparison, I can assure you that the rental for a similarly spec’d out virtual machine would probably run $400/mo.
If I have the skills to build systems and the knowledge to manage them, mostly, and I still have the fire to learn and update my out-of-date IT skills, why not?
Project #1: A Slice of Orange Pi
Over the past few months, I’ve been watching numerous homelab-oriented YouTube videos from a variety of people. Some go big, some go small. Some are obviously building systems that a medium-sized business would envy. Others, like me, want to keep things small, manageable and low-power.
The Orange Pi 5 Plus is a SBC (single-board computer) with a 2.4GHz Rockchip 3588 ARM CPU with on-board quad-core Cortex A76 and quad-core Cortex A55 dies, 32GB of RAM, 2x 2.5G network ports, dual HDMI outputs, one HDMI input, USB ports etc. In addition to the board itself, I ordered a 256GB eMMC module to be the system’s boot drive, a 2TB M.2 NVMe SSD and an M.2 WiFi / Bluetooth module. And an aluminum case, b/c why not? While this machine has the power to be a small desktop system, capable of 8K monitor output, I’m going to use it as a server… at first.
As this is a pure hardware purchase, there is no installed OS, I believe. I need to install one myself. I’m going to run Armbian on it.
Armbian is a Linux distribution with a focus on supporting SBCs. It has a Debian / Ubuntu base, which I am familiar with. As my DreamHost server is also running Ubuntu, it should be easy (heh…) to build a parallel server system.
Current Status: It’s Never Easy
It’s been awhile since I’ve gone down this type of rabbit hole. First hurdle: I didn’t have a microSD card.
2.25TB of storage purchased and the system needs to boot off of a microSD card… at least at first… maybe. I’ve been reading posts regarding difficulties with the Orange Pi 5 Plus boot process and that some on-board flash may need to be wiped before Armbian can boot properly. Regardless, I didn’t have a microSD card.
So I went to Staples in Nashua, NH to get one. The stock was thin. If someone told me they were closing the store, I wouldn’t be surprised. I was looking for a 64GB one but had to get a 128GB one. Not a problem; we’re not talking big money here.
So I get home with my new microSD card. Now, how do I get the OS on it?
My primary system is a Mac. Apple for years now has decided that it only needs two types of port on their systems. microSD ports aren’t one of them. I had an adapter squirreled away somewhere; I can’t find it.
Claire has a Mac Mini with a ports hub that had all kinds of ports on it. It has SD and microSD. Perfect. I go through the motions and download the Armbian OS package. It’s in .xz format. Apple doesn’t natively support that. No matter, there’s an OS installer tool called USBImager that Armbian recommends. It’s cross-platform. Great. I download the macOS one. Clunk… or more specifically… the compressed download file is damaged.
I give up and decide to see if my Linux laptop has the right port. Lo and behold, it has a microSD slot. Great! I download the Armbian image to the laptop, install USBImager and install the image to the microSD card. It worked!
Hmmm… I think I’ll write a blog post about this. I go to the blog site to do so. Updates are waiting. I try to update WordPress. Clunk. File permissions issues. That’s right… When I migrated everything to the new DreamHost system, I had to futz around with the file permissions. Not all files were set correctly, but correctly enough that previous updates worked just fine. Thankfully, there was a list of files which wouldn’t update. I fixed the file permissions and… voila! The blog is fixed again.
What Are We Doing Again?
Oh yeah. Project Orange. I’m tempted to name the system “Trump” b/c it’s “Orange”, but I’m building a server and Trump only serves himself. I don’t like the implications, though I find the irony delicious. My Mac is named Québec and my Linux laptop is named acadie; I want to keep to the theme. Maybe Arenda.
Tomorrow, I will put all the pieces together: NVMe SSD, eMMC drive, WiFi/BT device, install the microSD card and give it a go. That said, I need to find a USB keyboard, USB mouse and monitor. All of my monitors are USB-C and I think the board supports that, but it might not on initial boot. My keyboards and mice are all BT or wireless now. I’ll need to check my basement tech bins. I also may try a smoke test without the microSD card to see if there is flash on there and what the system might do on its own.
Anyway, change is in the air. Stay tuned.