Loading...

Bluehost Self-Managed VPS: Reimage Your Server for Easypanel Installation

Easypanel is a simple and easy to use server management platform which lets you deploy and manage applications on your VPS without the headache of complex server configurations. It provides an intuitive dashboard to manage websites, databases, domains, SSL certificates and Docker applications in one place. EasyPanel is a great choice for developers, business and owners of websites that want to have an easier way to manage their hosting environment.

Reimage Your Server for Easypanel Installation

  1. Log in to your Bluehost Portal.
  2. In the left-hand menu, click Hosting.

    Self Managed VPS
     

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

    BH AM - Select Server - Manage
     

  2. Click the Reimage button.

    BH AM - Manage Server - Overview - Reimage button
     

  3. Select the Applications tab.

    BH AM - Manage Server - Overview - Install Application
     

  4. From the list, locate Easypanel and click Select.

    BH AM - Manage Server - Select Easypanel From The List Of Application
     

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

    BH AM - Manage Server - Overview - Proceed with Reimaging
     

  6. Wait a few minutes while the installation completes.

    BH AM - Install - Easypanel
     

  7. Once completed, you will see Easypanel listed in the Server Image section.

    BH AM - Easypanel
     

The First-Boot Automation

If you spin up this server, an automated first-boot script executes the following:

  1. Starts Docker and Swarm: It boots up the systemd Docker service and initializes Docker Swarm (which EasyPanel uses to manage containers).
  2. Launches EasyPanel and Traefik: It fires up the EasyPanel management app container (listening on port 3000) and the Traefik reverse proxy (listening on ports 80 and 443).
  3. Generates your Domain: It grabs your server's public IP address (e.g., 1.2.3.4) and creates a special domain using sslip.io (example: dashboard.1.2.3.4.sslip.io).
  4. Secures it with SSL: Traefik uses that domain to instantly request a free, valid SSL certificate from Let's Encrypt over port 80.

Verify

Since you are currently logged into the terminal as root, you can run a quick health check before opening your browser. Paste these commands into your terminal:

  • Check running containers:

    You should see easypanel and traefik listed with replicas showing 1/1.

     docker service ls 
    Example Output:
    Last login: Tue Jun 23 22:19:24 2026 from 123.456.7.89
    root@server-123456:~# docker service ls
    ID             NAME                MODE         REPLICAS   IMAGE                        PORTS
    uhhadq8vxc3e   easypanel           replicated   1/1        easypanel/easypanel:latest
    wz76prp8as38   easypanel-traefik   replicated   1/1        traefik:3.6.7
    root@server-123456:~#
  • Check open ports:

    You should see lines showing that something is actively listening on ports 80, 443, and 3000.

    ss -tulnp | grep -E '80|443|3000'
    Example Output:
    
    root@server-123456:~# ss -tulnp | grep -E '80|443|3000'
    tcp   LISTEN 0      4096             0.0.0.0:443       0.0.0.0:*    users:(("docker-proxy",pid=1387,fd=8))              
    tcp   LISTEN 0      4096             0.0.0.0:80        0.0.0.0:*    users:(("docker-proxy",pid=1370,fd=8))              
    tcp   LISTEN 0      4096             0.0.0.0:3000      0.0.0.0:*    users:(("docker-proxy",pid=1627,fd=8))              
    tcp   LISTEN 0      4096                [::]:443          [::]:*    users:(("docker-proxy",pid=1392,fd=8))              
    tcp   LISTEN 0      4096                [::]:80           [::]:*    users:(("docker-proxy",pid=1374,fd=8))              
    tcp   LISTEN 0      4096                [::]:3000         [::]:*    users:(("docker-proxy",pid=1631,fd=8))              
    
    
  • Get your exact login URL: Run:
    
    cat /etc/easypanel/dashboard-url
    

Access your EasyPanel Dashboard

After the configuration completes:

  1. Log In via Your Browser:
    https://dashboard.server-ip.sslip.io
    

    Fallback Option: If the secure link ever encounters a temporary DNS delay, you can access the dashboard directly via HTTP at:

    http://server-ip:3000

  2. Bypass the Browser Security Warning

    BH AM - aaPanel log in  click advanced
     

  3. Create Your Admin Account

    Because this image does not ship with standard, insecure default passwords, your first visit will require you to secure the panel.

    1. On the first screen, enter your Email Address.
    2. Create a strong, secure Password.
    3. Fill in the "How did you find EasyPanel?" section
    4. Click Setup to finalize.

    BH AM - EasyPanel Set Up
     

    Once done, you will be routed to the Easypanel Dashboard:

    BH AM - EasyPanel Dashboard
     

    You are now the master administrator of the cluster. From here, you can completely abandon the command line and deploy databases, applications, and manage custom domains entirely using EasyPanel's visual UI.

Additional Information and Example Documentation Output

You can run cat /root/README.md to see more information and useful commands:

Example Output:

root@server-123456:~# cat /root/README.md
# Easypanel

## Description

EasyPanel is a modern server management panel that lets you deploy and manage applications, databases, and services from a visual interface.

It supports Docker-based deployments, one-click app installs, custom domain management, and SSL automation, providing a streamlined way to run and monitor your server workloads without complex command-line setup.


## Services

| Service      | Description                                                        | Managed By |
| ------------ | ------------------------------------------------------------------ | ---------- |
| easypanel    | Web interface for managing applications (port 3000)                | docker     |
| traefik      | Reverse proxy and SSL termination for all traffic (ports 80, 443)  | docker     |
| docker       | Container runtime                                                  | systemd    |
| docker-swarm | Container orchestration                                            | docker     |
| ufw          | Firewall (allows 22, 80, 443, 3000)                                | systemd    |

## Stack

| Component         | Details                                    |
| ----------------- | ------------------------------------------ |
| Container runtime | Docker Engine                              |
| Orchestration     | Docker Swarm                               |
| Reverse proxy     | Traefik (ports 80, 443)                    |
| Firewall          | UFW (SSH 22, HTTP 80, HTTPS 443, direct 3000) |
| Panel             | EasyPanel (port 3000)                      |

## First Boot

On first boot the image automatically:

1. Ensures Docker service is running
2. Confirms Docker Swarm is initialized
3. Verifies Easypanel service is active
4. Waits until Easypanel becomes available on port 3000
5. Detects the public IP and writes a Traefik dynamic config to `/etc/easypanel/traefik/config/custom.yaml`, routing `dashboard..sslip.io` -> `localhost:3000`
6. Traefik picks up the route immediately and obtains a Let's Encrypt certificate automatically via HTTP-01 on port 80

No default admin credentials are created during this process.

## Accessing EasyPanel

After first boot, access the dashboard at:

```
https://dashboard..sslip.io
```

For example, if your server IP is `1.2.3.4`:

```
https://dashboard.1.2.3.4.sslip.io
```

The Let's Encrypt certificate is obtained automatically by Traefik - no manual SSL setup required.

For direct fallback access (no SSL):

```
http://:3000
```

On first access:

- Enter your email address
- Set a password
- Complete the setup

This creates your admin account.

## Manage

From the panel you can:

- Deploy applications and databases
- Configure custom domains
- Monitor running services
- Manage SSL certificates (auto-provisioned via Traefik)

## Notes

- Traefik owns ports 80 and 443 for both the EasyPanel dashboard and all user-deployed applications
- The dashboard is served at `https://dashboard..sslip.io` - [sslip.io](https://sslip.io) is a wildcard DNS service that resolves `anything..sslip.io` to ``, enabling Let's Encrypt certificates without a registered domain
- Port 3000 provides direct HTTP access to EasyPanel (no SSL) - useful for private networks or debugging
- On private/local IPs, the sslip.io route is skipped and only direct port 3000 access is available

## Useful Commands

```
docker service ls
docker service logs easypanel --tail 50
systemctl status docker
ss -tulnp | grep -E '80|443|3000'
journalctl -t easypanel-firstboot -n 100 --no-pager
cat /etc/easypanel/dashboard-url
cat /etc/easypanel/traefik/config/custom.yaml
```

## Ports

| Port | Service                              |
| ---- | ------------------------------------ |
| 22   | SSH                                  |
| 80   | HTTP (Traefik - ACME challenge + redirect) |
| 443  | HTTPS (Traefik - dashboard + user apps)    |
| 3000 | EasyPanel UI (direct, no SSL)        |

## Links

- Documentation: [https://easypanel.io/docs](https://easypanel.io/docs)
- Docker documentation: [https://docs.docker.com](https://docs.docker.com)
- Traefik documentation: [https://doc.traefik.io/traefik/](https://doc.traefik.io/traefik/)
- sslip.io: [https://sslip.io](https://sslip.io)

Summary

Easypanel simplifies VPS management by giving you an easy-to-use control panel for deploying and managing applications. Instead of spending time configuring servers manually, you can focus on building and running your projects through a streamlined interface. Whether you're launching a website, hosting business applications, or managing multiple services, Easypanel provides a convenient and efficient way to manage your VPS environment.

Loading...