Loading...

Bluehost Self-Managed VPS: Reimage Your Server for Open WebUI Installation

Get your Open WebUI application up and running quickly on a Bluehost Self-Managed VPS. This guide walks you through installing the Open WebUI template using the Bluehost Portal and accessing your server after installation.

Install Open WebUI Using Bluehost Portal

To install Open WebUI:

  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 you wish to manage.

    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, find Open WebUI and click Select.

    BH AM - Manage Server - Overview - Install Application
     

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

    BH AM - Manage Server - Overview - Install Application
     

  6. Wait a few moments while the installation completes.

    BH AM - Install - Open WebUI
     

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

    BH AM - Manage Server - Overview - Install Application
     

How to Access Your Dashboard

Phase 1: Set Up and Secure Your VPS

  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
     

  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 2: Access and Configure Open WebUI

  1. Find your server's public IP address (your server provider will show it).
  2. Open your web browser and go to https://<your-server-ip>.
    (Example: http://12.3.456.789)
  3. Click Get Started on the landing page. 

    Note: The very first person to create an account on this website gets full admin control over the system.

    Open WebUI Landing Page
     

  4. You will be prompted to create an account. Enter the required information to complete the sign-up process.

    Open WebUI - Sign-up Page
     

  5. After creating your account, you will be redirected to your dashboard.

    Open WebUI Dashboard
     

Choose Your AI Brains

By default, you can chat with the built-in llama3.2:1 b model. However, if you want to use incredibly powerful models like Claude (Anthropic), ChatGPT (OpenAI), or OpenRouter, follow the instructions in Step 3 of the README:

  1. On the website, click the profile in the lower-left corner, then click Admin Panel.

    Open WebUI - Admin Panel
     

  2. Next, click SettingsConnectionsOpenAI API.

    Open WebUI Settings-Connection
     

  3. Enter your API Base URL and your personal secret API Key from your provider.
  4. Save it, and those models will now appear in your drop-down chat menu.

Useful Commands (If things go wrong)

The README lists several commands you can run directly in your server terminal (root@server-12345:~# ) to see what's happening under the hood:

  • Check if the chat app is actively running:
    systemctl status open-webui
  • If the website freezes or you change a backend setting and want to force a refresh:
    systemctl restart open-webui
  • If you see an error on the screen and want to read the last 100 lines of system logs to troubleshoot:
    journalctl -u open-webui -n 100

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
# Open WebUI

## Description

Open WebUI is a self-hosted, feature-rich web interface for interacting with large language models.

It supports OpenAI-compatible APIs, Ollama, and a wide range of LLM providers, giving you full control over your AI chat experience without sending data to third-party services.

This image ships Open WebUI on Ubuntu 24.04, served via Nginx with HTTPS support. On first boot, a secret key is generated and all services start automatically.


## Services

| Service   | Port    | Purpose                                        |
|-----------|---------|------------------------------------------------|
| Open WebUI| 8080    | Open WebUI application (internal only)         |
| Ollama    | 11434   | LLM inference backend (internal only)          |
| Nginx     | 80, 443 | TLS termination and reverse proxy to port 8080 |
| OpenSSH   | 22      | Remote access                                  |

Ports are protected using UFW. Port 8080 is not exposed externally.


## How-to-use

### 1. Access Open WebUI

Once the server has booted, open your browser and navigate to:

```
https://
```

### 2. Create your admin account

The first user to sign up automatically becomes the admin. Fill in your
name, email, and password on the sign-up page to create your account.

### 3. Connect an LLM backend

Open WebUI supports any OpenAI-compatible API. Go to:

```
Admin Area -> Settings -> Connections -> OpenAI API
```

Enter your API key and base URL for your chosen provider:

```
# OpenRouter
API Base URL : https://openrouter.ai/api/v1
API Key      : sk-or-...

# Together AI
API Base URL : https://api.together.xyz/v1
API Key      : ...

# Anthropic (via compatible proxy)
API Base URL : https://api.anthropic.com/v1
API Key      : sk-ant-...
```

### 4. Useful commands

```bash
systemctl status open-webui            # Open WebUI service status
systemctl status nginx                 # Nginx status
journalctl -u open-webui -n 100        # Recent Open WebUI logs
tail -f /var/log/open-webui/webui.log  # Live log stream
systemctl restart open-webui           # Restart Open WebUI
```

### 4. SSL / HTTPS certificate behavior

On first boot, a TLS certificate is automatically provisioned:

- A Let's Encrypt certificate is requested for the server's public IP.
- If Let's Encrypt is unavailable, a self-signed certificate is generated
  as a fallback.

Nginx terminates TLS on port 443 and proxies traffic to Open WebUI on
port 8080. The X-Forwarded-Proto: https header signals HTTPS to Open WebUI.

To manually request a Let's Encrypt certificate after deployment:

```bash
/opt/certbot/bin/certbot certonly --webroot --webroot-path /var/www/html   -m [email protected] --agree-tos --non-interactive --ip-address 

nginx -t && systemctl reload nginx
```


## Minimum Resources

| Resource | Minimum     | Recommended |
|----------|-------------|-------------|
| CPU      | 2 vCPUs     | 4 vCPUs     |
| RAM      | 2 GB        | 4 GB        |
| Disk     | 20 GB       | 40 GB       |

> The bundled **llama3.2:1b** model (~1.3 GB) can run on 2 GB RAM.
> To run larger models (7B+) add more RAM and disk accordingly.


## Image contents

This image installs and configures:

- Open WebUI (latest) installed at /opt/open-webui
- Ollama installed with **llama3.2:1b** model pre-pulled (~1.3 GB)
- Python 3 virtual environment at /opt/open-webui
- Nginx as a reverse proxy with HTTP and HTTPS support
- UFW firewall with ports 22, 80, and 443 open
- Log rotation at /etc/logrotate.d/openwebui
- This README at /root/README.md


## Security hardening

| Hardening       | Detail                                             |
|-----------------|----------------------------------------------------|
| UFW firewall    | Only ports 22, 80, 443 open. Default deny incoming |
| SSH             | Password authentication disabled                   |
| Open WebUI      | Bound to 127.0.0.1 only, not exposed externally    |
| Secret key      | Generated at first boot via openssl rand           |
| Credentials     | Stored in /root/.app_passwords (mode 0600)         |


## Configuration files reference

| File                                           | Purpose                          |
|------------------------------------------------|----------------------------------|
| /etc/systemd/system/open-webui.service         | Open WebUI systemd service       |
| /etc/default/open-webui                        | Open WebUI environment config    |
| /etc/nginx/sites-available/openwebui           | Nginx site config                |
| /root/.app_passwords                           | Generated credentials            |
| /var/log/open-webui/webui.log                  | Open WebUI application log       |
| /etc/logrotate.d/openwebui                     | Log rotation config              |


## Links

- Manage: [https://{server_ip}](https://{server_ip})
- Documentation: [https://docs.openwebui.com](https://docs.openwebui.com)
- Open WebUI GitHub: [https://github.com/open-webui/open-webui](https://github.com/open-webui/open-webui)

Summary

Bluehost makes it simple to deploy an Open WebUI environment on a Self-Managed VPS. By using the Bluehost Portal, you can reimage your server, select the Open WebUI application template, and complete the installation in just a few steps. Once deployed, you can access your instance via SSH and open the web dashboard through your VPS IP address, allowing you to quickly start using and managing your AI-powered web interface.

Loading...