Using OpenPanel Only for Remote MySQL: Securing the Server and Reducing Resource Usage

Using OpenPanel Only for Remote MySQL: Securing the Server and Reducing Resource Usage

OpenPanel is the first truly modular control panel, meaning that you can edit or disable every component of it that you do not need, and everything else keeps working as usual.

This is not possible with traditional hosting panels, as they share the same services and therefore have many single points of failure.

In this example, we will be using the OpenPanel server only for hosting the MySQL database, and accessing it from another server.

After setting up the server, we only really need the MySQL service, user terminal access, and phpMyAdmin. Everything else can be disabled to avoid using system resources.

Create a new user, setup the database and test remote access. After that follow these steps to completely disable unnecessary services on OpenPanel:

Step 1: Disable All Unused Services

service admin stop && systemctl disable admin
service watcher stop && systemctl disable watcher
service nginx stop && systemctl disable nginx
service named stop && systemctl disable named

Step 2: Disable OpenPanel (optional)

If users will not be accessing the OpenPanel interface but only via terminal, phpMyAdmin, or remote MySQL, then we can safely disable the user panel as well:

cd /root && docker compose down

Step 3: Disable Services Monitoring

Since we disabled system services that we no longer need, we should also disable email alerts for them.

Edit the file /etc/openpanel/openadmin/config/notifications.ini and remove the services that we disabled in step 1: mysql, named, nginx, admin, panel.

OpenAdmin service monitoring configuration file
OpenAdmin service monitoring configuration file

 

 


Step 4: Disable OpenPanel Cron Jobs

We should also disable auto-updates and other scripts relevant only to the OpenPanel and OpenAdmin interfaces.

Edit the file /etc/cron.d/openpanel and comment all lines by adding # at the start of each line.

disable OpenAdmin cronjobs
disable OpenAdmin cronjobs

If you set backup jobs, I recommend leaving the backups section as is; otherwise, backups will not work.


Step 5: Reboot and Test Everything

The final step is to reboot the server and test if everything is set up as expected on system startup.

Confirm that both OpenAdmin and OpenPanel interfaces are disabled, and that cron jobs were not executed.

Check if OpenAdmin is running:

opencli admin

Check if OpenPanel MySQL database is running:

docker ps -a | grep openpanel_mysql

Check if cronjobs are still being executed:

tail /var/log/openpanel/admin/cron.log

 

Also, connect to user services via remote MySQL port or phpMyAdmin to ensure users have no problems.

 

whoami
Stefan Pejcic
Join the discussion

I enjoy constructive responses and professional comments to my posts, and invite anyone to comment or link to my site.