Set allowedHosts to true since nginx handles Host header
validation. The previous `.${domain}` pattern used the
build-time DOMAIN value, which breaks when the same image
is deployed to a different domain.
Bunker Admin
55 lines
1.9 KiB
TypeScript
55 lines
1.9 KiB
TypeScript
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import path from 'path';
|
|
|
|
// Get domain from environment (fallback to cmlite.org)
|
|
const domain = process.env.DOMAIN || 'cmlite.org';
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, './src'),
|
|
},
|
|
},
|
|
server: {
|
|
port: 3000,
|
|
host: '0.0.0.0',
|
|
// Allow all hosts — nginx handles Host header validation in production.
|
|
// Vite's allowedHosts only sees the build-time DOMAIN value, which may
|
|
// differ from the runtime domain (e.g., image built for cmlite.org but
|
|
// deployed to wokemail.org).
|
|
allowedHosts: true,
|
|
proxy: {
|
|
'/api': {
|
|
// Use env var with fallback: Docker uses container name, local uses localhost
|
|
target: process.env.VITE_API_URL || 'http://localhost:4000',
|
|
changeOrigin: true,
|
|
ws: true, // WebSocket passthrough for docs collaboration
|
|
},
|
|
'/media/public': {
|
|
// Public media routes: rewrite to /api/public (matches Fastify prefix: '/api')
|
|
target: process.env.VITE_MEDIA_API_URL || 'http://localhost:4100',
|
|
changeOrigin: true,
|
|
rewrite: (p) => p.replace(/^\/media\/public/, '/api/public'),
|
|
},
|
|
'/media': {
|
|
// Media API proxy: other routes (/videos, /reactions) rewrite to /api
|
|
target: process.env.VITE_MEDIA_API_URL || 'http://localhost:4100',
|
|
changeOrigin: true,
|
|
rewrite: (p) => p.replace(/^\/media/, '/api'),
|
|
},
|
|
'/mkdocs-proxy': {
|
|
// Docker: uses VITE_MKDOCS_URL (container networking)
|
|
// Local dev: computes from MKDOCS_PORT in .env (dynamic)
|
|
// Fallback: defaults to 4003 if neither is set
|
|
target: process.env.VITE_MKDOCS_URL ||
|
|
`http://localhost:${process.env.MKDOCS_PORT || '4003'}`,
|
|
changeOrigin: true,
|
|
rewrite: (p) => p.replace(/^\/mkdocs-proxy/, ''),
|
|
ws: true,
|
|
},
|
|
},
|
|
},
|
|
});
|