When we previously discussed the choice of software environment for home data centers, we mentioned LNMP (LAMP). Although we will mainly use Docker when deploying home data center applications later on, LNMP (LAMP) remains the choice for many production environments.
Manually building an LNMP (LAMP) environment is actually quite complex because it involves installing many related components and quite a few compilation operations, which is troublesome for beginners. However, there is now a simple solution, which is to build the environment through the App Store of a Linux panel. Taking the Baota Linux Panel as an example:

You can see that there are NGINX, Apache, MySQL (which can be switched to MariaDB after installation), and multiple PHP versions to choose from.

You can also install common tools like Redis and phpMyAdmin.
Therefore, with the help of the Linux panel, you can easily build an LNMP (LAMP) environment and install common tools (such as Redis) simply by clicking the install button on the right side of the page.
I have used two types of Linux panels: Baota Linux Panel and 1panel. The interface of 1panel is cleaner and tidier, and it doesn't feel as commercialized as Baota Panel (after all, it's a free version, which is normal). However, 1panel has an issue: the software installed from its App Store all use Docker. This feels a bit awkward because if I really wanted to install via Docker, I would have many choices (such as using Portainer). Why would I need to install a panel just to use Docker? Isn't the purpose of installing a Linux panel originally to make source code installation more convenient? So, I stopped using the 1panel panel later on.
Another advantage of Baota Linux Panel is the Bastion Cloud Control platform, which can manage multiple Baota Linux Panels simultaneously:

However, this method may require virtual networking technology because a fixed IP must be specified for each Baota Linux Panel as the management IP for the Bastion Cloud Control platform. If it is only accessed within the local area network, it is fine. But once you also need to manage panels on cloud servers, it becomes troublesome. For example, if the Baota Linux Panel is installed on a cloud server and the Bastion Cloud Control platform is installed in the home local network, the panel on the cloud server cannot specify a fixed public IP for the Bastion Cloud Control platform coming from the home broadband's public IP. In this case, a fixed IP from virtual networking is required.
Below is the interface of Baota Panel, where the red-boxed section on the left is the menu bar for its supported features:

If it is a source code deployment, building an LNMP (LAMP) environment on Baota Panel makes the menus on the left—such as Website, FTP, Database, and Files—very practical features. If you are setting up Docker, you can also perform simple management directly under the Docker menu on the left:

So Baota Panel is actually sufficient to meet the needs of the vast majority of users.
However, for me, I currently only use the reverse proxy feature in the website menu of Baota Panel. In fact, if it's just for reverse proxy functionality, you don't necessarily have to use Baota Panel; you could also use NPM (Nginx Proxy Manager). It's just that with Baota Panel, I can also run some scheduled scripts at will, which offers more features, so I didn't use NPM. You can choose the reverse proxy setup method that suits you best.
This chapter will briefly introduce the Baota Linux Panel. After all, the reverse proxy running on it serves as the main entry point for my home data center. As for other features, such as the source code setup of LNMP and other environments, you can try them on your own if you need them in the future, so I won't go into detail.