Bluehost Self-Managed VPS: Reimage Your Server for CloudPanel Installation
CloudPanel is a lightweight, incredibly user-friendly platform that lets you manage your websites, apps, databases, and server resources on your VPS—without any of the technical headaches. Everything you need is packed into a clean, intuitive dashboard where you can handle domains, set up SSL security, and run your sites from a single screen. Whether you are a website owner, developer, agency, or business owner, CloudPanel is the perfect, stress-free tool to streamline your hosting and help you get things done faster.
Reimage Your Server for CloudPanel Installation
- You can install only one application using the one-click installer.
- To change or delete your application, follow the guide: Bluehost Self-Managed VPS: How to Change and Delete an Application. Create a backup of your existing applications or templates.
- If you want to keep your current template, install the new application manually using SSH. The system will automatically apply the recommended OS for CloudPanel.
- Log in to your Bluehost Portal.
- In the left-hand menu, click Hosting.

- Click the Manage button on the Self-Managed VPS package.

- Click the Reimage button.

- Select the Applications tab.

- From the list, locate CloudPanel and click Select.

- To confirm, type "reimage" and then click Proceed to start the process.

- Wait a few minutes while the installation completes.

- Once completed, you will see CloudPanel listed in the Server Image section.

How to Deploy and Configure your CloudPanel
Here is a step-by-step walkthrough to get your CloudPanel server up, running, and secured.
Check Server Requirements
- CPU: 2 vCPUs
- RAM: 2 GB
- Storage: 20 GB
After installation completes:
Connect to your VPS via SSH.Use your VPS IP and credentials with an SSH client, follow the prompts, and enter your Root Password when asked:

ssh root@your_server_ip
Example Output:
########################################################
### Welcome to CloudPanel ###
########################################################
* Website: https://www.cloudpanel.io
* Documentation: https://www.cloudpanel.io/docs/v2/
* Best Practices: https://www.cloudpanel.io/docs/v2/best-practices/
* CloudPanel: https://12.1.1.123:8443
* CloudPanel CLI: clpctl
********************************************************************************
CloudPanel v2
Firewall (UFW) is active.
Open ports: 22 (SSH) 80 (HTTP) 443 (HTTPS) 8443 (CloudPanel UI)
Access CloudPanel:
https://12.1.1.123:8443
Note: Accept the self-signed certificate warning on first access.
Admin account:
An admin user has been pre-created. Credentials are in /root/.app_passwords.
Important locations:
Credentials : /root/.app_passwords
Nginx logs : /var/log/nginx/
MySQL logs : /var/log/mysql/
README : /root/README.md
Useful commands:
systemctl status clp-nginx Check CloudPanel Nginx
systemctl status clp-php-fpm Check PHP-FPM
systemctl status mysql Check MySQL
Step 1: Retrieve Your Admin Password
CloudPanel generates a secure random password upon installation, you need to log into your server via SSH to grab it.
- Run the following command to reveal your login credentials:
cat /root/.app_passwordsExample Output:
Last login: Mon Jun 22 13:40:03 2026 from 180.190.20.45 root@123456:~# cat /root/.app_passwords CLOUDPANEL_ADMIN_PASSWORD=AbC123xyZqWErTyu CLOUDPANEL_ADMIN_USER=admin CLOUDPANEL_URL=https://12.1.1.123:8443 CERT_TYPE=self-signed - Copy the password displayed on the screen.
Take note of the
CERT_TYPElisted there as well (it will tell you if it's using a self-signed cert or Let's Encrypt).CERT_TYPE=self-signed
Step 2: Log In to the CloudPanel Web UI
To ensure a smooth login, please follow the steps below:
- Open your web browser and navigate to:
https://your-server-ip:8443 - Bypass the Browser Security Warning.
Cloudpanel uses a temporary self-signed SSL certificate, your browser will flag it. Click Advanced and then Proceed/Continue to bypass it safely.

- Log in using the following credentials:
- Username: admin
- Password: (The password you copied in Step 1)

Step 3: Configure a Custom Domain and SSL
Running your control panel over an IP address with a security warning isn't ideal. Let's point a real domain to it.
- Update your DNS: Go to your domain registrar and create a DNS A Record:
- Type: A
- Name/Host: panel (or whatever subdomain you want, like cp)
- Value/Points to:your-server-ip
- Install the Let's Encrypt SSL Certificate. Go back to your SSH terminal and run the following command to give your panel a secure, valid HTTPS certificate.
Replace
yourdomain.comwith your actual domain.Note: Ensure port 80 is open and your DNS has fully propagated, otherwise Let's Encrypt will fail.clpctl lets-encrypt:install --domainName=panel.yourdomain.com --subDomainName=Example Output:
Starting Let's Encrypt SSL certificate installation for domain "panel.yourdomain.com"... [INFO] Validating domain ownership via HTTP-01 challenge... [INFO] Requesting certificate from Let's Encrypt CA... [INFO] Certificate received successfully! [INFO] Saving certificate files to /etc/nginx/ssl/panel.yourdomain.com/ [INFO] Updating Nginx configuration... [INFO] Testing Nginx configuration... [INFO] Reloading Nginx service... Success: The Let's Encrypt SSL certificate has been successfully installed for "panel.yourdomain.com". - Set the Custom Domain in the UI.
Inside the CloudPanel web interface, navigate to Settings and update the CloudPanel URL to your new domain (https://panel.yourdomain.com:8443).
Step 4: Add Your First Website
Now that your panel is secure, you can start hosting applications.
- In the CloudPanel dashboard, click on the Sites menu.

- Click Add Site.

- Choose your website application type.

- Enter the following:
- Domain Name
- Site Title
- Site User
- Site User Password
- Admin E-Mail
- Multisite.

Useful Maintenance Cheat Sheet
If you ever need to check if things are running smoothly from the command line, use these commands:
- Check if CloudPanel's Web Server is running:
systemctl status clp-nginx - Check if PHP is running:
systemctl status clp-php-fpm - Check if the Database is running:
systemctl status mysql: - Check if the Database is running:
clpctl db:list
Additional Information and Example Documentation Output
You can run cat /root/README.md to see more information and useful commands:
Last login: Fri Jun 19 18:25:04 2026 from 162.214.41.61
root@123456:~# cat /root/README.md
# CloudPanel
## Description
CloudPanel is a free web hosting control panel that lets you manage PHP applications, databases, email, and server settings from a modern dashboard. It is optimized for cloud environments and includes one-click deployment for popular applications, automated SSL management, and a lightweight design that minimizes server resource usage.
## Services
| Service | Port | Purpose |
|--------------|-------|------------------------------------------------|
| CloudPanel | 8443 | CloudPanel web UI (HTTPS, self-signed cert) |
| Nginx | 80 | HTTP - serves hosted sites |
| Nginx | 443 | HTTPS - serves hosted sites with SSL |
| MySQL 8.4 | 3306 | Database backend (localhost only) |
| OpenSSH | 22 | Remote SSH access |
All ports are managed by UFW. MySQL port 3306 is blocked externally.
## How-to-use
After the instance boots, open your browser and navigate to:
```
https://server-ip:8443
```
Accept the self-signed certificate warning and you will be directed to the
CloudPanel admin login page.
1. Log in with username admin and the password found in /root/.app_passwords.
2. Set a custom domain for CloudPanel under Settings if required.
3. Add your first site via the Sites menu.
### Useful commands
```bash
systemctl status clp-nginx # CloudPanel Nginx status
systemctl status clp-php-fpm # PHP-FPM status
systemctl status mysql # MySQL status
clpctl self:version # CloudPanel version
clpctl db:list # List databases
```
### Retrieve admin credentials
```bash
cat /root/.app_passwords
```
### SSL / HTTPS certificate behaviour
On first boot, the server automatically handles certificate generation:
- **If a valid domain name is set** (e.g. `panel.yourdomain.com`) - Let's Encrypt certificate is requested automatically via `clpctl lets-encrypt:install`
- **If no domain / IP only** - a self-signed certificate valid for 10 years is generated for the server IP
- **Fallback** - self-signed certificate is always generated if Let's Encrypt fails
The certificate type used is recorded in `/root/.app_passwords` as `CERT_TYPE=letsencrypt` or `CERT_TYPE=self-signed`.
To manually request a Let's Encrypt certificate after deployment:
```bash
clpctl lets-encrypt:install --domainName=yourdomain.com --subDomainName=
```
Note: Let's Encrypt requires port 80 to be publicly reachable and a valid DNS A record pointing to the server IP.
## Minimum Resources
| Resource | Minimum |
|----------|---------|
| CPU | 2 vCPUs |
| RAM | 2 GB |
| Disk | 20 GB |
## Image contents
This image installs and configures:
- CloudPanel v2 installed via official installer
- MySQL 8.4 as the database engine
- Nginx (system) for reverse proxy and site serving
- PHP-FPM managed by CloudPanel
- UFW firewall with ports 22, 80, 443, and 8443 open initially (can be configured with CloudPanel once it is set up)
- Log rotation at /etc/logrotate.d/cloudpanel
- This README at /root/README.md
## Links
- Manage: [https://{server_ip}:8443](https://{server_ip}:8443)
- CloudPanel documentation: [https://www.cloudpanel.io/docs/v2/](https://www.cloudpanel.io/docs/v2/)
Summary
Taking control of your VPS doesn't have to be overwhelming. CloudPanel simplifies the entire process by giving you a sleek, modern dashboard to effortlessly manage your websites, apps, databases, domains, and server resources. Instead of wasting valuable time on complex server setups, you get a streamlined control panel that does the heavy lifting for you. Whether you're launching a personal blog, hosting important client projects, or running business applications, CloudPanel ensures you get the peak performance of a Self-Managed VPS—minus the stress.