MySQL Setup
MySQL is a core component when you want panel data + per-server managed databases. This guide uses Docker MySQL on port 5757.
1. Auto setup (recommended)
Run the auto script; it will create the container and ask for credentials (root, panel user, host user).
cd /home/mihai/Desktop/cpanel
chmod +x auto-db.sh
./auto-db.sh
The script prints the exact .env values to use and the Database Host credentials for Admin > Databases.
2. Configure panel to use MySQL (5757)
cd /home/mihai/Desktop/cpanel/panel
cp .env.mysql-docker.example .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=5757
DB_DATABASE=panel
DB_USERNAME=cpanel
DB_PASSWORD=change_me_panel_password
npm run upgrade-db
npm run create-user
npm run dev
3. Add DB host in panel admin
- Go to
/admin/databases - Add a host with type
mysql, host/IP, port5757, usernamecpanelhost, and password - Use the ping/validation action before creating server databases
Manual setup (optional)
Use this only if you want to run MySQL without the script.
Start MySQL in Docker
cd /home/mihai/Desktop/cpanel/panel
docker compose -f docker-compose.mysql.yml up -d
docker compose -f docker-compose.mysql.yml ps
Login to MySQL shell
Use root credentials from docker-compose.mysql.yml (or your overridden env values).
docker exec -it cpanel-mysql mysql --protocol=tcp -h 127.0.0.1 -P 5757 -u root -p
Manually create databases/users
CREATE USER 'cpanel'@'%' IDENTIFIED BY 'change_me_panel_password';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'cpanel'@'%';
FLUSH PRIVILEGES;
CREATE USER 'cpanelhost'@'%' IDENTIFIED BY 'change_me_host_password';
GRANT ALL PRIVILEGES ON *.* TO 'cpanelhost'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
