Nasazení (Docker)¶
Viz Provoz a nasazení pro kompletní dokumentaci Docker Compose a produkčního nasazení.
Produkční nasazení PWA (meva.xtrace.cz)¶
Od v1.0.43 běží první produkční instance Eva.Mobile.Pwa. Zdroj: doc/publikace_pwa.md.
| Co | Server | Port |
|---|---|---|
| Reverzní proxy (nginx) | 192.168.4.67 |
80/443 |
Aplikační server (Docker, eva-pwa) |
192.168.4.25 |
8083 |
Eva Manager (web) |
192.168.4.25 |
8080 |
Eva API (restapi) |
192.168.4.25 |
8082 |
Tok požadavku:
Prohlížeč → meva.xtrace.cz → nginx 4.67:443 → 192.168.4.25:8083 (eva-pwa) → /api/* proxied na 192.168.4.25:8082 (eva-api)
Build image:
.docker/Dockerfile_PWA má dvě fáze: dotnet publish Eva.Mobile.Pwa -c Release → statické soubory zkopírované do nginx:alpine image spolu s .docker/nginx-pwa-prod.conf (produkční nginx konfig kontejneru — bez SSL, Blazor-Environment: Production, /api/ proxy na interní eva-api:8080). SSL terminuje až reverzní proxy na 192.168.4.67.
Kontejner pwa se přidává do ~/compose-EVA-xtdocker-deploy.yaml na serveru 4.25 (depends_on: [restapi], port 8083:80).
SSL certifikát eva_bundle.pem na 4.67 pokrýval původně jen eva.xtrace.cz — pro produkční PWA byl rozšířen (nový CSR ze stávajícího privátního klíče) o SAN meva.xtrace.cz, se zachováním eva.inventura-majetku.cz a demo.inventura-majetku.cz.
Individuální build skript
EvaPwa_DockerBuildAndPushNewVersion.ps1 (v kořeni repozitáře) umožňuje vydat pouze PWA image bez přestavby WEB/API/DB/Print. EvaAll_DockerBuildAndPush.ps1 nyní obsahuje i bartech-pwa-eva jako součást all-in-one publikace.
Přehled kontejnerů¶
┌─────────────────────────────────────────────────────┐
│ Docker Compose │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐│
│ │ api │ │ web │ │ db ││
│ │ :8080 │ │ :8080 │ │ PostgreSQL 17 ││
│ │ :8081 │ │ │ │ :5432 ││
│ └──────────┘ └──────────┘ └──────────────────┘│
│ │
│ (volitelně) ┌──────────┐ │
│ │ print │ │
│ └──────────┘ │
└─────────────────────────────────────────────────────┘
Všechny kontejnery běží pod neprivilegovaným uživatelem (nonrootuser, UID 1000).
Prostředí¶
Hodnota ASPNETCORE_ENVIRONMENT |
Popis |
|---|---|
Development |
Lokální vývoj — Swagger, detailní logy |
Docker |
Docker Compose — env var substituce v appsettings |
Production |
Produkce — minimální logy, bez Swagger |
Diagnostický endpoint /ai/status¶
Eva.Manager (kontejner web) exponuje anonymní diagnostický endpoint pro ověření stavu AI konfigurace:
Příklad odpovědi:
{
"configured": true,
"keyPrefix": "sk-proj-",
"provider": "OpenAI",
"model": "gpt-4o-mini",
"clientType": "OpenAIChatClient",
"timestamp": "2026-05-25T10:30:00Z"
}
Pokud API klíč chybí, configured bude false a clientType bude DisabledChatClient. Endpoint je dostupný bez autentizace a slouží výhradně pro provozní diagnostiku.
Viz také Konfigurace AI Chat pro popis env proměnných a priority konfigurace.