The first step in building a conventional new data center is definitely choosing the deployment method: on the cloud or self-built? For us, there's no need to hesitate—it's self-built. The second step, strong/weak electricity and cabling, is also nothing to worry about. Since it's a home data center, everything is already built, so we just use what's available (I envy those wealthy folks who can buy new houses and plan everything from scratch; when my apartment was handed over in 2011, there weren't that many new technologies for me to play around with). The third step is hardware procurement. In this article, we will mainly discuss the selection of basic hardware.
Actually, as a home data center, in principle, I think utilizing existing equipment takes priority over purchasing new devices. For friends who do not build many applications and do not have high performance requirements, they can completely make reasonable use of existing hardware first, including but not limited to NAS, idle hosts gathering dust, etc., as long as they can meet the requirements in the following aspects:
An application deployment environment (via Docker) that meets performance requirements; if you want to run application load balancing, you will also need to deploy an additional set.
Shared storage that can be called by local network applications (both SMB and NFS are fine, SMB is recommended).
Broadband with a public IP address (ideally, which allows flexible choices for website hosting; if not, it's fine, but there won't be much choice for website hosting methods).
Under the premise of meeting point 3, it is best to have an egress router that supports dynamic domain name resolution (DDNS) for multiple DNS providers and can support multiple host records (multi-dialing support is best, see my other article:iKuai Soft Router Series - The Strongest Multi-Dialing Soft Router: iKuai, but it doesn't matter if it's not supported, as there are many ways to implement dynamic domain names, such as ddns-go.)
I will use my home environment as an example to illustrate.
The application deployment environment mentioned in the first point happens to be a base-model M1 Mac Mini (8G memory, 256G SSD) that has been gathering dust for a long time after purchase. It is perfect for installing Docker Desktop for Mac and then running Docker as the main environment. Isn't this performance much better than using a typical NAS to run Docker? Moreover, the power consumption of the Mac Mini is really low, and it is completely noiseless, making it the most ideal Docker carrier. Unfortunately, 8G of memory is still too small. It is best not to deploy some highly memory-consuming Docker containers on it (such as ElasticSearch, used with Nextcloud for full-text search, which takes up at least 2-3G of memory); instead, they are run in my other Docker backup environment. I also bought a new palm-sized mini host with the following hardware configuration: CPU i5 13400, 64G memory, Samsung 980 Pro 2T SSD. The purpose of buying this host is, first, to create a backup system for the main container environment, where all Docker containers in the main container environment have redundancy in the backup system (including the database, which can also perform scheduled data synchronization with the database in the main environment to ensure database data redundancy). This can be used as a cold backup for the main environment's Docker applications, or paired with load balancing equipment to achieve high availability of applications; second, to run applications not suitable for Docker deployment, such as the World of Warcraft server side, as well as some special-purpose virtual machines or LXCs: Win11 virtual machine, network attack tool demonstration machine (Debian LXC), etc.
The shared storage mentioned in the second point is a QNAP TS251+ 2-bay NAS that I use as a PT downloading and seeding machine, which is kept on 24 hours a day. Actually, the first and second points can be implemented on the same hardware device, such as a NAS. As long as the NAS's CPU performance is sufficient, it is also fine to use it as both shared storage and a Docker running environment. In my case, because the performance of the TS251+ is not good, and it often lags badly when PT downloading speeds are fast (gigabit downstream broadband, no SSD installed, 2 large-capacity HDDs installed, so hard drive read/write speed is the bottleneck), plus I happened to have an idle Mac Mini gathering dust, I chose to use them separately. You can choose according to your own actual situation at home.
The third and fourth points have a sequential order. Only when the third point is met with a public IPv4 address (IPv6 is also fine) will there be requirements for the egress router in the fourth point; otherwise, it is not needed.
After meeting requirements 1 and 2 (optionally including 3 and 4), you can officially start building your home data center.