home server
One reason I tinkered with local servers was because cloud servers are too expensive. A typical setup only gets you a single CPU, 1GB of RAM, and around 10GB of storage.
This configuration struggles even to run a WordPress blog. I need to configure virtual memory just to keep WordPress from becoming unresponsive.
However, this virtual memory also reduces disk space. Downloading a single dependency or Docker image fills up the disk, leaving insufficient storage for backing up WordPress or starting other applications.
After Vultr inexplicably and irrecoverably destroyed five years’ worth of my system data on a cloud server, I completely lost trust in cloud servers (although I didn’t perform proper local backups or paid backups, this doesn’t negate Vultr’s terrible behavior).
My current WordPress blog is mostly deployed on my Orange Pi 3B, with a few on a mini-host. This is because the old blog system was x86, while the new one is ARMv8/ARM64.
My device
Currently, I’m using:
An R2S as a proxy router, running OpenWRT
An Orange Pi 3B with 2GB RAM and a 128GB SSD, running Armbian and PVE (with Home Assistant installed on the PVE)
An Orange Pi 3B with 8GB RAM and a 512GB SSD, running Armbian and Docker, and some open-source applications like ShowDoc, WordPress, and NextCloud (which I’ll organize later). In short, this development board is used as a document server.
A mini PC with Ubuntu Server and Docker installed, running WordPress (Docker x86), multimedia resources, and game services.
I recently added a Raspberry Pi Compute Module 0 with 512MB RAM and 8GB eMMC storage. It has Raspberry Pi Lite Server OS, Docker, and frp configured. I haven’t set up any applications yet; it’s just powered on because its performance is too limited.
A Raspberry Pi Zero that I bought almost 7 years ago. I haven’t decided what to use it for yet; it’s been powered off and sitting there. I need to re-flash TensorFlow and install Raspberry Pi Lite Server OS.
By the way, I also have an idle R2S, which has been gathering dust for two years now.
So, what I’m currently stably using consists of:
An R2S running OpenWRT to handle network issues
An Orange Pi 3B with 2GB RAM and 128GB storage (PVE), specifically for Home Assistant smart home systems (combined with ESPHome and my dozens of ESP32 microcontrollers and sensors), with temperature, humidity, and air quality sensors working stably
An Orange Pi 3B with 8GB RAM and 512GB storage This is specifically responsible for newly created WordPress blogs, such as the HomeLab blog mentioned here, as well as Showdoc (because it supports multi-level directories and Markdown syntax) for writing blog posts, and Nextcloud calendars, mind maps, passwords, etc., which I rarely use.
I have a mini-host on x86, mainly for the main domain blog. I was too lazy to back up and migrate it to ARM. I deployed audiobooks there; I used to listen to them every day, but now there aren’t good resources, so I don’t listen to them much. I used to have NES games deployed, but because I didn’t have a graphics card, I would play them occasionally. Now that I have a P106-100 6GB graphics card, I can test mainstream games, but I rarely play NES games anymore. I also deployed movies and TV shows, but I don’t have time to download resources, so I watch anime online, mainly on YouTube, which is more convenient.
Other arrangements
The Raspberry Pi Compute Module 0 is a relatively new product, only a few months old. While its performance is low, its power consumption is excellent. I’ve already selected several open-source projects that use only about 10MB of memory, intending to use it as a message and network hub, such as NTFY notifications, to work with my smart home Home Assistant for message alerts, configuring my Uptime website SSL and online monitoring, and offline alerts. It doesn’t store data; it only forwards and sends notifications.
The Raspberry Pi Zero W uses the same chip as the Raspberry Pi Compute Module 0, with 512MB of memory. However, it can accommodate a 120GB TF card, so disk storage is not an issue. It can be used for lightweight information hubs like MQTT, FRP, and SQLite. Essentially, there’s no difference. (My Zero W’s Wi-Fi is broken, so I can only use a USB-to-wired adapter. Compared to the Raspberry Pi Compute Module’s 2.4GHz Wi-Fi, it’s more suitable for FRP network proxying. Other devices’ SHH, HTTP, etc., can also be placed on this development board.)
Now, I’ve temporarily decided that, due to the USB-to-wired adapter requirement, I’ll use the Raspberry Pi Zero W as an FRP proxy gateway and WireGuard. The gateway, a Raspberry Pi compute module 0, is used for NTFS and the MQTT message center.
The other idle R2S, which I also don’t plan to use for anything else, is still an OpenWRT network router, but one I’ll carry around with me when I go out, such as in a hotel or on a train, so I can work remotely anytime, anywhere. Combined with a normal-sized mini router, network connectivity is crucial when traveling.
tips
This is the first post about homelab’s home server.
In my next blog post, I plan to outline my Raspberry Pi 3B document server with 8GB of memory and summarize the useful services deployed on it.