---
title: "Vite Preview Server"
status: "active"
folder: "000-configs/tools"
tags: [tool, vite, preview, dev-server]
created: "2026-07-29"
updated: "2026-07-29"
version: "1.0.0"
---

# Vite Preview Instructions for Open WebUI Coding AI

Use this when the user asks to make a Vite/React app live, visible, public, previewable, or available at the preview URL.

## Public Preview URL

The stable public preview URL is:

```text
https://preview.boogerclub.com
```

Caddy on the host already proxies this hostname to the `open-terminal` container on port `5173`:

```text
preview.boogerclub.com -> open-terminal:5173
```

Do not change the Open WebUI URL. Open WebUI stays at:

```text
https://openwebui.boogerclub.com
```

## Where Apps Live

Inside the Open WebUI terminal container:

```text
/home/user/projects
/home/user/repos
```

On the host these map to:

```text
/home/ubuntu/openwebui/projects
/home/ubuntu/repos
```

## Start Command

For a Vite app, run this from the app directory:

```bash
npm run dev -- --host 0.0.0.0 --port 5173
```

Only one app can use the public preview slot at a time. If port `5173` is already in use, stop the old Vite dev server before starting the new one.

## Required Vite Host Allowlist

If the preview URL shows this error:

```text
Blocked request. This host ("preview.boogerclub.com") is not allowed.
To allow this host, add "preview.boogerclub.com" to `server.allowedHosts` in vite.config.js.
```

Add this to `vite.config.ts` or `vite.config.js`:

```ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  server: {
    allowedHosts: ['preview.boogerclub.com'],
  },
})
```

If the config already has a `server` block, add only:

```ts
allowedHosts: ['preview.boogerclub.com']
```

Then restart Vite with:

```bash
npm run dev -- --host 0.0.0.0 --port 5173
```

## Verification

From inside the terminal container, verify Vite is running:

```bash
curl -I http://127.0.0.1:5173
```

Expected result:

```text
HTTP/1.1 200 OK
```

From the public internet, verify the live preview:

```bash
curl -I https://preview.boogerclub.com
```

Expected result:

```text
HTTP/2 200
via: 1.1 Caddy
```

Also confirm Open WebUI still works:

```bash
curl -I https://openwebui.boogerclub.com
```

Expected result:

```text
HTTP/2 200
```

## Common Fixes

- `502` from `https://preview.boogerclub.com`: Caddy is up, but no Vite server is listening on `open-terminal:5173`. Start the app with the standard command.
- `Blocked request... host is not allowed`: add `preview.boogerclub.com` to `server.allowedHosts` in the app's Vite config and restart Vite.
- App works at `127.0.0.1:5173` but not the public URL: check `allowedHosts`, then check DNS for `preview.boogerclub.com`.
- Open WebUI should not be moved to the preview URL. Keep it on `https://openwebui.boogerclub.com`.

## Current Known Working Example

The current working example app is:

```text
/home/user/projects/candlestick-dashboard
```

It is configured with:

```ts
server: {
  allowedHosts: ['preview.boogerclub.com'],
}
```

