7b045a9f20
Web a portal Automia v jednom containeru. Express obsluhuje API i zbuildovanou React aplikaci z dist/public. Obsah: - verejny web: homepage, sluzby, o nas, kontakt, 404 - prihlaseni pres JWT, demo ucty - portal: prehled s grafem, tickety, incidenty, automatizace, konektory - builder automatizaci: strom akci, vetveni podminkou - katalog 25 konektoru v 8 kategoriich - webhook s registrovanou adresou, token generuje server - zivy dashboard pres SSE vcetne simulace provozu - Swagger UI na /docs a OpenAPI na /openapi.json Soulad s AGENTS.md: - ROOT_PATH z prostredi, prefix proxy nikde nehardcodovan - mount na koren i na prefix, funguje s handle_path i bez nej - base tag a window.__BASE_PATH__ vkladane do index.html za behu - OpenAPI servers obsahuje prefix, Try it out vola spravnou adresu - povinne /health a /docs, port 3000, naslouchani na 0.0.0.0 - secrets jen z environment variables, nikdy v logu Dokumentace ve slozce documentation/.
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import tailwindcss from '@tailwindcss/vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import path from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { defineConfig } from 'vite';
|
|
|
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default defineConfig({
|
|
root: path.resolve(here, 'web'),
|
|
/**
|
|
* Relativni base. Aplikace bezi za reverse proxy na /apps/<app-id>, ktery
|
|
* neni znamy pri buildu. Server proto do index.html vklada <base href>
|
|
* podle ROOT_PATH a relativni odkazy se podle nej slozi spravne.
|
|
*/
|
|
base: './',
|
|
plugins: [react(), tailwindcss()],
|
|
resolve: {
|
|
// Musi zustat v souladu s "paths" ve web/tsconfig.json
|
|
alias: {
|
|
'@': path.resolve(here, 'web/src'),
|
|
},
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
proxy: {
|
|
// Lokalni vyvoj: web na 5173 vola API na 3000, bez reseni CORS.
|
|
'/api': { target: 'http://localhost:3000', changeOrigin: true },
|
|
'/webhook': { target: 'http://localhost:3000', changeOrigin: true },
|
|
},
|
|
},
|
|
build: {
|
|
// Server tuhle slozku obsluhuje jako statiku, viz src/index.ts.
|
|
outDir: path.resolve(here, 'dist/public'),
|
|
emptyOutDir: true,
|
|
sourcemap: true,
|
|
},
|
|
});
|