69 lines
2.1 KiB
TypeScript
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,
|
|
},
|
|
}));
|