mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-02-23 17:17:41 +00:00
* feat: add HOST environment variable for configurable bind address Allow users to specify which host/IP address the servers should bind to via the HOST environment variable. Defaults to 0.0.0.0 (all interfaces) to maintain backward compatibility. This enables users to restrict the server to localhost only (127.0.0.1) for security purposes or bind to a specific network interface. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: use correct proxy host when HOST is set to specific interface When HOST is set to a specific interface (e.g., 192.168.1.100), the Vite proxy needs to connect to that same host, not localhost. This fix: - Adds proxyHost logic that uses localhost when HOST=0.0.0.0, otherwise uses the specific HOST value for proxy targets - Adds DISPLAY_HOST to show a user-friendly URL in console output (0.0.0.0 isn't a connectable address) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Michael Fork <mjfork@users.noreply.github.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Haileyesus <118998054+blackmammoth@users.noreply.github.com>
55 lines
1.6 KiB
JavaScript
Executable File
55 lines
1.6 KiB
JavaScript
Executable File
import { defineConfig, loadEnv } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
|
|
export default defineConfig(({ command, mode }) => {
|
|
// Load env file based on `mode` in the current working directory.
|
|
const env = loadEnv(mode, process.cwd(), '')
|
|
|
|
const host = env.HOST || '0.0.0.0'
|
|
// When binding to all interfaces (0.0.0.0), proxy should connect to localhost
|
|
// Otherwise, proxy to the specific host the backend is bound to
|
|
const proxyHost = host === '0.0.0.0' ? 'localhost' : host
|
|
const port = env.PORT || 3001
|
|
|
|
return {
|
|
plugins: [react()],
|
|
server: {
|
|
host,
|
|
port: parseInt(env.VITE_PORT) || 5173,
|
|
proxy: {
|
|
'/api': `http://${proxyHost}:${port}`,
|
|
'/ws': {
|
|
target: `ws://${proxyHost}:${port}`,
|
|
ws: true
|
|
},
|
|
'/shell': {
|
|
target: `ws://${proxyHost}:${port}`,
|
|
ws: true
|
|
}
|
|
}
|
|
},
|
|
build: {
|
|
outDir: 'dist',
|
|
chunkSizeWarningLimit: 1000,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
'vendor-react': ['react', 'react-dom', 'react-router-dom'],
|
|
'vendor-codemirror': [
|
|
'@uiw/react-codemirror',
|
|
'@codemirror/lang-css',
|
|
'@codemirror/lang-html',
|
|
'@codemirror/lang-javascript',
|
|
'@codemirror/lang-json',
|
|
'@codemirror/lang-markdown',
|
|
'@codemirror/lang-python',
|
|
'@codemirror/theme-one-dark'
|
|
],
|
|
'vendor-xterm': ['@xterm/xterm', '@xterm/addon-fit', '@xterm/addon-clipboard', '@xterm/addon-webgl']
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|