Loading...

Purchase a Self-Managed VPS with ISPConfig 3 Installation

ISPConfig 3 is a powerful control panel that puts comprehensive server management right at your fingertips. With its easy-to-use web interface, you can seamlessly handle everything from websites and emails to databases and DNS settings. Built for both flexibility and scale, it's the perfect tool for developers, businesses, and agencies looking to streamline their Self-Managed VPS experience—whether you're running a single server or managing an entire cluster.

Why Use ISPConfig 3?

Managing multiple hosting services manually can quickly become complex as your projects grow. ISPConfig 3 simplifies server administration by providing centralized management for websites, email, databases, DNS, FTP, SSL certificates, and user accounts. It also supports managing multiple servers from a single control panel, making it an excellent choice for users handling larger hosting environments. With ISPConfig 3 installed on a Bluehost Self-Managed VPS, you can efficiently manage your infrastructure while maintaining the flexibility and performance of your VPS.

Uses of ISPConfig 3

ISPConfig 3 supports a wide variety of hosting and server management tasks, including:

  • Manage Multiple Websites: Host and administer numerous websites from one centralized dashboard.
  • Multi-Server Management: Control multiple VPS or dedicated servers through a single web interface.
  • Email Hosting: Create and manage email accounts, aliases, mailing lists, and spam filtering.
  • Database Administration: Easily manage MySQL and MariaDB databases for your websites and applications.
  • DNS and Domain Management: Easily set up and manage your domains, subdomains, and DNS records all in one intuitive place.
  • FTP User Management: Create FTP accounts for secure website file access and management.
  • SSL Certificate Management: Protect websites with Let's Encrypt SSL certificates and automatic renewals.
  • Reseller and Client Management: Create separate client and reseller accounts with customizable permissions and resource limits.

How to Purchase a Self-Managed VPS with ISPConfig 3 Installation

To set up and operate ISPConfig 3 effectively, start by getting a Self-Managed VPS Hosting plan from Bluehost, then proceed with the following steps:

Pre-configured Setup

Self-Managed VPS - Pre-configured Setup New to VPS or not sure where to start? No worries! At the top of the Self-Managed VPS purchase page, you’ll see the Pre-configured Setup section. This handy feature is perfect if you’re feeling a bit unsure—just pick the type of project you want, like WordPress Site, AI Agent/Claude Code, Dev/Staging, or eCommerce Store. We’ll take care of the rest by automatically filling in the best plan, operating system, and template for you.
  • Super simple for beginners or anyone who just wants a quick setup
  • Instantly get the recommended settings for your project
  • Skip the guesswork and save time
  • You can still customize things later if you want
Give the Pre-configured Setup a try and get your Bluehost Self-Managed VPS up and running in no time!
  1. In your browser, go to https://www.bluehost.com/vps-hosting.
  2. Click the Choose Plan button under your preferred VPS hosting plan.

    VPS Hosting-Choose Plan
     

  3. Select your preferred Data Center location.

    Select Location
     

  4. On the Cart page, you can configure your server to fit your needs in the following section:
    1. Hardware:
      1. Pre-selected:

        You can select a different Self-Managed VPS plan in this section.

        Pre-selected
         

      2. Configure:

        Click Configure to customize your package.

        Configure your server
         

    2. Software:
      1. Click the Application tab.
      2. Select ISPConfig 3.

        Self-Managed VPS - Application tab - ISPConfig 3
         

      3. In the pop-up, click Confirm.

        Self-Managed VPS - Application tab - ISPConfig 3 pop-up
         

  5. Add-Ons: You can add Premium Support here, which gives you priority access to expert assistance and faster response times.

    Self-Managed VPS - Add-Ons
     

  6. In the Advanced options:
    • Extra IP's: You can add extra IP addresses for an additional fee.
      Pricing changes based on how many IPs you add.
    • Hostname: Assign a custom hostname to easily identify your server. This is optional.

      Advanced Options
       

  7. Next, select your preferred billing term and review your Order Summary, then click Continue to Checkout.

    Self-Managed VPS - Continue to Checkout
     

  8. Do the following on the Checkout page:

    If you're new with Bluehost:

    1. Create your Bluehost account by using your email address or by connecting with your Google, Apple, or GitHub account — whichever you prefer!

      Checkout page - Create an account
       

    2. Select your preferred payment method: credit card, Google Pay, or PayPal. Enter your billing information.

      Checkout page - Billing Information
       

    If you have an account with us, you will see your Bluehost login details when you are logged into your Bluehost Portal. If you are not logged in, please click the Log In link.

    log-in to account in bh
     

  9. In the Shopping Cart section, you can still adjust your billing term if needed.

    Self-Managed VPS - service terms
     

  10. Review the items in your cart, add a Promo Code if you have one, and then click Submit Payment to complete the purchase.

    Self-Managed VPS - service terms
     

After checkout, your Self-Managed VPS will begin setting up. Once it’s ready, you can find it under the Hosting tab in your Bluehost Portal.

How to Set Up and Secure Your ISPConfig Server

ISPConfig is a powerful and flexible hosting control panel, but it requires a few essential configuration steps before it is ready for production. This guide outlines the complete initial setup process. Follow the phases below to securely retrieve your credentials, access the web interface, configure your hosting environment, apply a trusted SSL certificate, and follow security best practices for hosting websites and email domains.

Phase 1: Reset Your Root Password

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

    Self Managed VPS
     

  3. Look for the server you want to manage then click the View Details to see more options.

    Self Managed VPS
     

  4. Click the Reset Password.

    Self Managed VPS
     

  5. In the pop-up window, type your new root password, then click Reset Password again to confirm and save the changes.

    Self Managed VPS
     

Phase 2: Connect To Your Server Through SSH

  1. Connect to your VPS via SSH.
    Open your computer's terminal (or an SSH client like PuTTY) and run the following command to log into your server as the administrator, using your server's public IP address:
    ssh root@your_server_ip
    Follow the prompts and enter the new root password you created in the step above.
  2. If you ever need to quickly review the system's deployment notes directly inside your server terminal, you can print out the original README file by running:
    cat /root/README.md

Phase 3: Retrieve Your Login Credentials

After logging in through SSH, the automated background setup should be complete. This process typically takes 2–3 minutes to finish.

  1. Retrieve your password: Run the following command in your terminal to display the automatically generated administrator credentials.
    cat /root/.app_passwords
  2. Save your password: Locate the line that begins with ISPCONFIG_ADMIN_PASSWORD= and copy the password that follows. You will use this password to sign in to the ISPConfig web interface in the next step.

    Example Output:

    root@hal-server-123456:~# cat /root/.app_passwords
    ISPCONFIG_ADMIN_PASSWORD=t3st158b039dd4101e8e0d1b828dc9010df863adeexample

Phase 4: Access the Web Panel

Now, you will leave the terminal for a moment and move to your web browser.

  1. Open the ISPConfig web panel: In your web browser, go to https://<your-server-ip>:8080/, replacing <your-server-ip> with your server's actual public IP address.
    Example: https://12.3.456.789:8080/
  2. Bypass the security warning: Your browser may display a warning that the connection is not private. This is expected during the initial setup because ISPConfig uses a temporary self-signed SSL certificate by default. Click Advanced, then Proceed (or the equivalent option in your browser) to continue to the login page.
  3. Log in: Use the following credentials:
    • Username: admin
    • Password: The password you copied in Phase 3.

      Self-Managed VPS - ISPConfig Dashboard
       

  4. You are now logged in to your Dashboard.

    Self-Managed VPS - ISPConfig Admin Dashboard
     

Phase 5: Configuring Your Hosting Environment

Once you are logged in to the ISPConfig web interface, you can begin configuring your hosting environment by adding the domains and services that your server will manage.

  1. Set the hostname: Navigate to System → Server Config, then update the server's hostname to match your fully qualified domain name (FQDN), such as server.yourdomain.com.

    Self-Managed VPS - ISPConfig System Server
     

  2. Add a website: Navigate to Sites → Add New Website, then enter the domain name you want to host (for example, yourdomain.com). Configure the required settings, such as the client, IP address, and web server options, then save your changes. ISPConfig will create the website and configure the web server based on the settings you selected.

    Self-Managed VPS - ISPConfig Add Website
     

  3. Set up email (Optional): If you want to host email for your domain, navigate to Email → Domain and add your domain. Then, go to Email → Mailbox to create email accounts, such as [email protected].

    Self-Managed VPS - ISPConfig Email
     

Phase 6: Securing the Server (SSL)

At this point, your server is operational, but it is still using a temporary self-signed SSL certificate. As a result, browsers will display a "Not Secure" or similar warning. To establish a trusted, encrypted connection, replace the temporary certificate with a trusted SSL certificate.

  1. Secure your hosted websites: From your SSH session, run the following command to request and install a free SSL certificate from Let's Encrypt for your hosted websites:

    certbot --nginx

    Follow the prompts to complete the certificate installation. Before running this command, make sure your domain's DNS records are pointing to your server's public IP address.

  2. Secure the ISPConfig web panel: Run the following command to replace the panel's temporary self-signed certificate with a trusted Let's Encrypt certificate:

    sudo /opt/ispconfig/setup-ssl.sh panel.yourdomain.com [email protected]

    Replace panel.yourdomain.com with the fully qualified domain name (FQDN) you use to access the ISPConfig panel, and replace [email protected] with your email address. Once the script completes, the browser security warning displayed when accessing the ISPConfig web interface should no longer appear.

How to Monitor Things Moving Forward

After completing the initial setup, you can use the following tips to monitor your server and troubleshoot common issues:

  • Check service status: Use the following command to verify that a service is running:
    systemctl status service_name
    Replace with the service you want to check, such as nginx or mariadb.
  • If the ISPConfig panel is unavailable: Verify that you are accessing the panel using https:// (not http://) and confirm that port 8080 is open and not being blocked by your firewall or network configuration.

Additional Information and Example Documentation Output

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

Example Output:

root@hal-server-123456:~# cat /root/README.md
# ISPConfig 3

## Description

ISPConfig 3 is a widely-used, open-source hosting control panel for Linux that allows you to manage multiple servers, websites, email accounts, DNS records, and databases through a clean, web-based interface.

With ISPConfig, you can manage web hosting, configure email mailboxes, set up FTP users, create databases, and enforce security policies without needing deep command-line expertise.

This image comes with a complete ISPConfig 3 stack pre-installed and configured on Ubuntu 24.04 LTS (Nginx, MariaDB, PHP 8.3-FPM, Postfix, Dovecot, and Fail2ban).
On first boot, a secure, randomized administrator password is automatically generated for you.

---

## Quick Start

Follow these three steps to get up and running.

### Step 1 - Wait for first boot to complete

After launching your instance, wait 2-3 minutes for the first-boot setup to finish.

The setup runs automatically in the background. It generates your randomized admin password, updates the database credentials, sets up system hostnames, and starts the panel services.

You do not need to do anything during this time.

### Step 2 - Get your login credentials

SSH into your server as the `root` user and run:

```bash
cat /root/.app_passwords
```

You will see output like this:

```
ISPCONFIG_ADMIN_PASSWORD=your_secure_randomized_password
```

Save this password - you will need it to log in.

### Step 3 - Open the panel in your browser

After first boot, open:

```
https://localhost:8080
```

On a real server, replace `localhost` with your server's IP address:

```
https://{server_ip}:8080
```

> **Browser warning:** ISPConfig uses a self-signed SSL certificate by default.
> When your browser shows a security warning, click **Advanced** then **Proceed** to continue.
> This is expected and safe for initial setup.

Log in with the following credentials:
- **Username:** `admin`
- **Password:** The password retrieved in Step 2.

---

## Next Steps

Once you are logged into the ISPConfig Control Panel, here is what to do next.

### 1. Configure Server Hostname

Go to **System** -> **Server Config** and select your server. Update the hostname and network configuration to match your domain and server setup.

### 2. Add your first website

Go to **Sites** -> **Add new website**.

Enter your domain name (e.g., `example.com`), configure any redirection or SSL preferences, and click **Save**.

ISPConfig will automatically create the web directories and configure Nginx backend virtual hosts.

### 3. Create Mail Domains and Mailboxes

Go to **Email** -> **Domain** -> **Add new domain** to register your mail domain.
Once registered:
- Go to **Email Mailbox** -> **Add new mailbox** to create individual email accounts.
- Use ports `25`, `465`, or `587` for sending mail (SMTP) and `110`, `995`, `143`, or `993` for receiving (IMAP/POP3).

### 4. Set up a real SSL certificate

Certbot is pre-installed on this image. After pointing your domain name's DNS records to your server's public IP, you can secure your website by running:

```bash
certbot --nginx
```

Follow the prompts to obtain a free, trusted Let's Encrypt SSL certificate, which replaces the self-signed certificate and removes browser warnings.

### 5. Set up a real SSL certificate for the Control Panel itself

On first boot, the ISPConfig panel uses a temporary self-signed SSL certificate. Once you have pointed a custom domain (e.g., `panel.example.com`) to your server's public IP, you can secure the control panel and remove browser warnings completely by running:

```bash
sudo /opt/ispconfig/setup-ssl.sh panel.example.com [email protected]
```

This helper script automatically shuts down Nginx, requests the Let's Encrypt certificate, updates the ISPConfig system configuration, restarts services, and installs a secure auto-renewal deploy-hook.

---

## Access

| URL | Purpose |
|-----|---------|
| `https://:8080/` | ISPConfig 3 Control Panel (HTTPS) |
| `http:///` | Default HTTP website landing page |
| `https:///` | Default HTTPS website landing page |

---

## Credentials

All credentials generated during deployment are stored in:

```bash
cat /root/.app_passwords
```

| Field | Description |
|-------|-------------|
| `ISPCONFIG_ADMIN_PASSWORD` | Randomized admin password generated securely on first boot |

To view the first boot setup logs:

```bash
cat /var/log/cloud-init-output.log
```

---

## Managing the Server

### Services

```bash
# Check service statuses
systemctl status nginx
systemctl status mariadb
systemctl status php8.3-fpm
systemctl status postfix
systemctl status dovecot
systemctl status fail2ban

# Restart a service (e.g. Nginx)
systemctl restart nginx
```

### Running Health Checks

To run the built-in system validation and health check suite, execute:

```bash
prove /root/app_test/main.t
```

### Firewall

```bash
# View open ports and firewall status
ufw status verbose
```

### Logs

```bash
# View ISPConfig panel and cron logs
tail -f /var/log/ispconfig/ispconfig.log

# View Nginx web server error logs
tail -f /var/log/nginx/error.log

# View mail server logs (Postfix & Dovecot)
journalctl -u postfix -u dovecot -f
```

---

## Troubleshooting

### Panel URL not opening in browser

1. Verify that Nginx is running: `systemctl status nginx`
2. Check that the ISPConfig port 8080 is listening: `ss -tlnp | grep 8080`
3. Verify that the UFW firewall allows traffic on port 8080: `ufw status | grep 8080`
4. Make sure you are explicitly typing `https://` in the browser (e.g., `https://:8080/`), as `http://` will fail.

### First boot did not run

If `/root/.app_passwords` does not exist or the password is not set, you can trigger the initialization script manually:

```bash
sed -i 's/\r//' /var/lib/cloud/scripts/per-instance/001_onboot
bash /var/lib/cloud/scripts/per-instance/001_onboot
```

Then read your credentials again:

```bash
cat /root/.app_passwords
```

---

## Security

| Feature | Detail |
|---------|--------|
| Firewall | UFW enabled - only minimal essential ports open by default |
| SSH Security | Rate limited on port 22 to block brute force attempts |
| Dynamic Passwords | Never baked into the image - uniquely randomized at first boot |
| File Credentials | `/root/.app_passwords` is owned by `root:root` with secure permissions (`0600`) |
| Intrusion Prevention | Fail2ban monitors log files and automatically bans abusive IPs |
| HTTPS Panel | SSL encryption active by default on the control panel (port 8080) |

---

## Services

| Service | Port | Purpose |
|---------|------|---------|
| ISPConfig (Nginx) | 8080 | Web administration interface |
| OpenSSH | 22 | Secure remote server access |
| Nginx | 80 / 443 | Web server (HTTP / HTTPS) |
| Postfix | 25 / 465 / 587 | Mail server (SMTP / SMTPS) |
| Dovecot | 110 / 995 / 143 / 993 | Mail server (POP3 / POP3S / IMAP / IMAPS) |
| MariaDB | 3306 | Local SQL Database |

---

## Links

- Manage: [https://:8080/](https://:8080/)
- ISPConfig Documentation: [https://www.ispconfig.org/documentation/](https://www.ispconfig.org/documentation/)
- Ubuntu 24.04 LTS Release Notes: [https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes](https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes)

Summary

ISPConfig 3 is an all-in-one control panel that makes managing your websites, emails, domains, and databases easy. Together with your Bluehost Self-Managed VPS, it gives you a scalable, flexible web interface that makes centralized administration easy. Whether you are a solo developer, managing a single server, or a growing agency managing multiple servers, ISPConfig 3 makes your daily workflow easier and keeps you in complete control of your hosting environment.

Loading...