lilith-platform.live/codebase/@features/admin/frontend-public/vite.config.ts
2026-06-08 03:36:21 -07:00

69 lines
2.1 KiB
TypeScript

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'path';
import { versionPlugin } from '@lilith/vite-version-plugin';
export default defineConfig(() => ({
plugins: [
react(),
versionPlugin({ appName: 'Quinn Admin', versionFile: path.resolve(__dirname, '../../../../VERSION.txt') }),
],
server: {
port: 5121,
host: '0.0.0.0',
strictPort: true,
allowedHosts: ['.lan'],
hmr: {
host: process.env['VITE_HMR_HOST'] ?? 'admin.quinn.apricot.lan',
clientPort: parseInt(process.env['VITE_HMR_CLIENT_PORT'] ?? '443', 10),
protocol: process.env['VITE_HMR_PROTOCOL'] ?? 'wss',
},
proxy: {
'/api/v2': {
target: 'http://localhost:3030',
changeOrigin: true,
rewrite: (p: string) => p.replace(/^\/api\/v2/, ''),
},
// Admin CMS + ops surfaces were consolidated onto quinn.api (:3030) at /admin/*.
// The frontend calls /api/admin/* — route those to 3030, stripping the /api prefix.
// Legacy non-/admin endpoints (e.g. /api/gallery/:id/protect) stay on the admin backend-api below.
'/api/admin': {
target: 'http://localhost:3030',
changeOrigin: true,
rewrite: (p: string) => p.replace(/^\/api/, ''),
},
'/api': {
target: 'http://localhost:3023',
changeOrigin: true,
},
'/auth': {
target: 'http://localhost:3023',
changeOrigin: true,
},
'/photos': {
target: 'http://localhost:3030',
changeOrigin: true,
rewrite: (p: string) => p.replace(/^\/photos/, '/admin/photos/files'),
},
'/newsletter-api': {
target: 'http://localhost:3026',
changeOrigin: true,
rewrite: (p: string) => p.replace(/^\/newsletter-api/, ''),
},
'/sso-api': {
target: 'http://localhost:3025',
changeOrigin: true,
rewrite: (p: string) => p.replace(/^\/sso-api/, ''),
},
},
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
build: {
outDir: 'dist',
sourcemap: true,
},
}));