- A1: scripts/backup-postgres.sh — pg_dump quotidien compressé → Backblaze B2 (rclone), rétention 30j - A2: StatusController retourne HTTP 503 + healthy/alertReason si dernière observation > 6h - A4: Dockerfile installe tippecanoe, GenerateTilesCommand génère 5 tilesets (obs + h6/12/24/48), Caddyfile sert /tiles/* sans fallback SPA, SargassesMap.jsx passe en sources vector tiles statiques - chore: backend/public/assets/ ajouté au .gitignore (build artifacts) - chore: setup vitest frontend + ImpactScoreServiceTest (session précédente) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
842 B
JavaScript
35 lines
842 B
JavaScript
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import { rmSync } from 'fs';
|
|
import path from 'path';
|
|
|
|
// Plugin qui nettoie uniquement public/assets/ avant chaque build
|
|
const cleanAssetsPlugin = () => ({
|
|
name: 'clean-assets',
|
|
buildStart() {
|
|
const dir = path.resolve(__dirname, '../backend/public/assets');
|
|
try { rmSync(dir, { recursive: true, force: true }); } catch {}
|
|
},
|
|
});
|
|
|
|
export default defineConfig({
|
|
plugins: [react(), cleanAssetsPlugin()],
|
|
test: {
|
|
environment: 'jsdom',
|
|
globals: true,
|
|
setupFiles: './src/test/setup.js',
|
|
},
|
|
server: {
|
|
proxy: {
|
|
'/api': {
|
|
target: 'http://localhost:8000',
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
build: {
|
|
outDir: '../backend/public',
|
|
emptyOutDir: false, // ne pas supprimer index.php
|
|
},
|
|
});
|