Vendored
-1510
File diff suppressed because one or more lines are too long
Vendored
-13
@@ -1,13 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Omnex — Plateforme de gestion de commandes & livraison</title>
|
||||
<meta name="description" content="Déployez en un clic une démo complète de la plateforme de gestion de commandes et de livraison." />
|
||||
<script type="module" crossorigin src="/assets/index-DyH0C5cq.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
||||
+1
-21
@@ -4,31 +4,11 @@ server {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
# Résolveur DNS interne de Docker : résolution du backend à l'exécution,
|
||||
# pour que nginx démarre même si le service "api" arrive un peu après.
|
||||
resolver 127.0.0.11 valid=30s ipv6=off;
|
||||
|
||||
# En-têtes de sécurité (défense en profondeur, en plus du backend/WAF).
|
||||
# En-têtes de sécurité (défense en profondeur, en plus du WAF devant).
|
||||
add_header X-Content-Type-Options nosniff always;
|
||||
add_header X-Frame-Options DENY always;
|
||||
add_header Referrer-Policy no-referrer always;
|
||||
|
||||
# API proxifiée vers le backend Go (même origine → pas de CORS).
|
||||
# proxy_pass sans URI (variable) => l'URI d'origine est transmise telle quelle.
|
||||
location /api/ {
|
||||
set $api_upstream api:8080;
|
||||
proxy_pass http://$api_upstream;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location = /healthz {
|
||||
set $api_upstream api:8080;
|
||||
proxy_pass http://$api_upstream;
|
||||
}
|
||||
|
||||
# SPA : fallback vers index.html pour le routage côté client.
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
|
||||
@@ -9,10 +9,20 @@ export const PODSTATUS_COMPONENTS: { key: keyof DemoDetails['state']; label: str
|
||||
{ key: 'dbm', label: 'Redis' },
|
||||
]
|
||||
|
||||
// PodStatusPanel : vue d'ensemble des 4 composants d'une démo (statut + CPU/mémoire live).
|
||||
// lbtelegram n'est installé que pour certaines démos (voir
|
||||
// ProvisionConfig.LBTelegramEnabled) : sa phase reste "" quand le chart
|
||||
// n'est pas déployé, auquel cas on ne l'affiche pas et on ne le compte pas
|
||||
// dans le calcul de santé ci-dessous.
|
||||
export const PODSTATUS_OPTIONAL_COMPONENTS: { key: keyof DemoDetails['state']; label: string }[] = [
|
||||
{ key: 'lb', label: 'Load-balancer Telegram' },
|
||||
]
|
||||
|
||||
// PodStatusPanel : vue d'ensemble des composants d'une démo (statut + CPU/mémoire live).
|
||||
export function PodStatusPanel({ state }: { state: DemoDetails['state'] }) {
|
||||
const allRunning = PODSTATUS_COMPONENTS.every((c) => state[c.key].phase === 'Running')
|
||||
const downCount = PODSTATUS_COMPONENTS.filter((c) => state[c.key].phase !== 'Running').length
|
||||
const optionalPresent = PODSTATUS_OPTIONAL_COMPONENTS.filter((c) => state[c.key].phase !== '')
|
||||
const allComponents = [...PODSTATUS_COMPONENTS, ...optionalPresent]
|
||||
const allRunning = allComponents.every((c) => state[c.key].phase === 'Running')
|
||||
const downCount = allComponents.filter((c) => state[c.key].phase !== 'Running').length
|
||||
|
||||
return (
|
||||
<Stack spacing={3}>
|
||||
@@ -35,7 +45,7 @@ export function PodStatusPanel({ state }: { state: DemoDetails['state'] }) {
|
||||
horizontal — surtout dans le contexte carte mobile, déjà à l'étroit
|
||||
avec son propre padding. */}
|
||||
<SimpleGrid columns={{ base: 1, lg: 4 }} spacing={3}>
|
||||
{PODSTATUS_COMPONENTS.map((c) => (
|
||||
{allComponents.map((c) => (
|
||||
<ComponentCard key={c.key} title={c.label} cs={state[c.key]} />
|
||||
))}
|
||||
</SimpleGrid>
|
||||
|
||||
@@ -119,6 +119,9 @@ export interface DemoState {
|
||||
web: ComponentState
|
||||
db: ComponentState
|
||||
dbm: ComponentState
|
||||
// lb (load-balancer Telegram) est optionnel : phase reste "" si le chart
|
||||
// lbtelegram n'est pas installé pour cette démo.
|
||||
lb: ComponentState
|
||||
}
|
||||
|
||||
export interface DemoDetails {
|
||||
|
||||
Reference in New Issue
Block a user