Deploy Pulse na prod — runbook
Schvaleny postup pro deploy S60 Pulse na produkci (prod-alfa).
Schvalil: Libor, 2026-03-20
PRAVIDLO: Hub VZDY pred prod
Na prod se NIKDY nesmi nasadit verze, ktera nebyla nejdriv nasazena na hub a overena QA. Postup je VZDY: hub deploy -> QA overeni na hub -> prod deploy.
Pokud je na prod novejsi verze nez na hub, je to chyba procesu.
Pre-check 0: Je deploy vubec potreba?
Pred vsim ostatnim zjisti, jaka verze bezi na cilovych serverech:
# Aktualni nasazene verze
HUB_VER=$(ssh root@100.68.138.14 "cd /opt/pulse && git log --oneline -1")
PROD_VER=$(ssh root@100.78.87.88 "cd /opt/pulse && git log --oneline -1")
LOCAL_VER=$(cd /root/projects/pulse && git log --oneline -1)
- Pokud hub i prod uz bezi na cilove (nebo novejsi) verzi -> deploy neni potreba, nic se nedeje, ukonci task.
- Pokud ne -> vypis Liborovi prehled (co je nasazeno vs. co ma byt) a pokracuj dal.
Pre-checks (pred deploy.sh)
- Hub MUSI byt nasazen PRVNI — stejna nebo novejsi verze nez co jde na prod
- Hub healthy —
curl -sf https://pulse.s60hub.cz/health - QA result — QA agent potvrdil na hub verzi (Relay API / task)
- Hub verze >= prod verze — na hub MUSI bezet stejna nebo novejsi verze nez aktualni prod
- Commit overen —
cd /root/projects/pulse && git log -1(musi byt ten co prosel QA na hub) - Secrets existuji —
/root/secrets/pulse/.env.prod
Blokery
- Hub NENI healthy -> STOP
- QA neproslo na hub -> STOP
- Na hub bezi starsi verze nez co chces dat na prod -> STOP, nejdriv deploy hub
- NIKDY nespoustet deploy na prod bez splneni VSECH podminek
Deploy
Script automaticky provede:
- Git pull
- Readiness check (Dockerfile, env file, required vars)
- npm audit
- Rsync na prod-alfa (100.78.87.88)
- Kopie .env.prod
- Docker compose up --build
- Health check s retry (8x po 10s)
Post-deploy verifikace
-
Health check (interni):
-
Smoke test (verejny):
-
Logy:
-
OAuth callback URL — overit v auth DB ze
redirect_urlodpovidapulselab.cz(ne hub)
Prod fail
Pokud health check selze -> okamzity rollback (viz Rollback runbook). Nahlasit PM + Libor.
Reporting (automaticke)
Deploy.sh automaticky zapisuje:
- Changelog (
docs/docs/deploy/changelog.md) - Memory pipeline (Redis -> Neo4j)
- Deploy log do Relay API (kaizen)
Manualne: status report PM pres Relay API po uspesnem deployi.
Reference
- Obecny proces: Standardni deploy
- Pulse specifika: S60 Pulse
- Deploy script:
/root/projects/sentinel/deploy/deploy.sh - Manifest:
/root/projects/pulse/deploy.yml - Secrets:
/root/secrets/pulse/.env.prod - DB:
s60_pulse_prod/s60_pulse_prod_user - Domena:
pulselab.cz