Skip to content

Deploy — S60 Pulse

Specifika nasazení S60 Pulse. Obecný postup viz Standardní deploy proces.

Kontejnery

Kontejner Port Popis
s60-pulse 3100 NestJS + admin + client + Chromium

Deploy příkaz

# Staging (hub)
./deploy/deploy.sh pulse hub

# Produkce
./deploy/deploy.sh pulse prod

Deploy.sh provede automaticky: git pull → readiness check → npm audit → rsync → scp secrets → docker compose up --build → health check → QA gate.

NIKDY ruční rsync/scp/docker compose

Vždy použít deploy.sh. Viz deploy guard hook.

Postup: Pulse Staging (hub)

  1. Je deploy potreba? — Zjisti aktualni verzi na hub:

    ssh root@100.68.138.14 "cd /opt/pulse && git log --oneline -1"
    
    Pokud uz bezi cilova (nebo novejsi) verze → deploy neni potreba, ukonci task. Pokud ne → vypis Liborovi co je nasazeno vs. co ma byt a pokracuj.

  2. Git pull na sentinelu — cd /root/projects/pulse && git pull

  3. Ověřit secrets/root/secrets/pulse/.env.hub (required: DATABASE_URL, REDIS_URL, S60_AUTH_*)
  4. Deploy./deploy/deploy.sh pulse hub
  5. Health check — deploy.sh ověří automaticky, ale potvrdit: ssh root@100.68.138.14 "curl -s http://127.0.0.1:3100/health"
  6. Smoke test — pulse.s60hub.cz v prohlížeči (login, dashboard)
  7. Changelog — zapsat do changelog.md

Postup: Pulse Produkce

Viz pulse-prod.md — schválený postup s QA gate.

Env proměnné

Secrets v /root/secrets/pulse/:

Proměnná Popis
APP_URL URL aplikace
S60_AUTH_URL, S60_AUTH_CLIENT_ID, S60_AUTH_CLIENT_SECRET, S60_AUTH_SYSTEM_ID S60Auth OAuth2
DATABASE_URL PostgreSQL connection string
REDIS_URL Redis
ANTHROPIC_API_KEY Claude AI API klíč
OUTPUT_PUBLIC_DIR, OUTPUT_PUBLIC_URL Adresář a URL pro generované výstupy

Databáze

Prostředí DB User
Hub (staging) s60_pulse_hub s60_pulse_hub_user
Prod s60_pulse_prod s60_pulse_prod_user

Závislosti

Před deploy na cílovém serveru musí existovat:

  • [x] Docker network s60-network
  • [x] Redis kontejner s60-redis na s60-network
  • [x] Nginx reverse proxy s SSL (certbot)
  • [x] S60Auth nasazený (OAuth2 provider)

Známé problémy

  • npm audit: 3 high vulnerabilities (ne critical) — sledovat
  • deploy.yml vs kód: deploy.yml říká AUTH_*, kód používá S60_AUTH_* — obojí funguje
  • QA gate: regression testy mohou failnout kvůli QA agent timeout — neblokuje staging deploy

Nginx config

server {
    server_name <domain>;

    location / { proxy_pass http://127.0.0.1:3100; }
}