The first step in building a new data center is undoubtedly choosing the construction method: cloud-based or self-built? For us, this is a no-brainer; we'll just build it ourselves. The second step, electrical wiring and cabling, is also straightforward; it's a home data center, everything's already built, so we just use what's available (I envy those wealthy people who can afford to buy new houses and plan from scratch; I took possession of my house in 2011, and there weren't many new technologies for me to experiment with back then). The third step is hardware procurement. This article mainly discusses the selection of basic hardware.
In principle, for a home data center, I believe reusing existing equipment should be prioritized over purchasing new equipment. If you don't have many applications and your performance requirements aren't high, you can certainly make good use of existing hardware, including but not limited to NAS devices and unused servers, as long as they meet the following requirements:
1. An application deployment environment (Docker method) that meets performance requirements. If application load balancing is to be run, an additional set needs to be deployed.
2. Shared storage that can be accessed by intranet applications (SMB or NFS are both acceptable, SMB is recommended)
3. Broadband with a public IP address (preferably, as this allows for flexible website hosting options; if not, it's okay, but you'll have less choice in how to host the website).
4. Assuming point 3 is met, it's best to have an outgoing router that supports dynamic DNS resolution from multiple DNS providers and can handle multiple host records (multi-WAN support is preferred; see my other article for more information).iKuai Soft Router Series The most powerful multi-dial soft router: iKuaiHowever, it doesn't matter if it's not supported, there are many ways to implement dynamic domain names, such as ddns-go.
I'll use my home environment as an example to illustrate this.
Regarding the application deployment environment mentioned in the first point, I happened to have a basic M1 version of the Mac Mini (8GB RAM, 256GB SSD). I bought it but it sat unused for a long time. I used it to install Docker Desktop for Mac, which became my primary environment for running Docker. The performance was much better than using a regular NAS for Docker. Moreover, the Mac Mini has incredibly low power consumption and is completely silent, making it the ideal Docker platform. Unfortunately, 8GB of RAM is still too small. Some memory-intensive Docker applications shouldn't be deployed on it (such as Elasticsearch, which uses at least 2-3GB of RAM for full-text search with NextCloud). Instead, it runs in my other backup Docker environment. I also bought a new palm-sized mini-host with the following hardware configuration: i5 13400 CPU, 64GB RAM, and a Samsung 980 Pro 2TB SSD. The purpose of this host is twofold: firstly, to create a backup system for the primary container environment. All Docker containers in the primary environment have redundancy in the backup system (including the database, which can be periodically synchronized with the database in the primary environment to ensure data redundancy). This can be used as a cold backup for Docker applications in the main environment, or it can be used in conjunction with load balancing equipment to achieve high availability of applications; secondly, it can be used to run applications that are not suitable for Docker deployment, such as the World of Warcraft server, as well as some special-purpose virtual machines or LXC: Win11 virtual machines, network attack tool demo machines (debin lxc), etc.
The shared storage mentioned in the second point refers to a QNAP TS251+ dual-bay NAS that I use as a seeder for PT downloads. This NAS is powered on 24/7. Actually, the first and second points can be achieved on the same hardware device, such as a NAS. As long as the NAS's CPU performance is sufficient, it can function as both shared storage and a Docker runtime environment. I separated them because the TS251+'s performance is poor; downloading PTs at high speeds often results in severe lag (gigabit broadband download speed, no SSD installed, only two large-capacity HDDs, so hard drive read/write speed is the bottleneck). Plus, I also have a Mac Mini that's been gathering dust. You can choose based on your own home's specific situation.
Points three and four are sequential. Point three, which requires a public IPv4 address (IPv6 is also acceptable), must be met before point four, which requires an outgoing router, can be applied. Otherwise, it is not necessary.
After meeting requirements 1 and 2 (optionally including 3 and 4), you can officially begin building your home data center.