Standardní deploy proces
Každá služba se nasazuje stejným postupem. Specifika (porty, env vars, závislosti) jsou v deploy stránce dané služby.
Předpoklady
- Zdrojový kód naklonovaný na Sentinel serveru (
/root/projects/<projekt>) - Dockerfile + docker-compose.yml v repu
.env.examples dokumentovanými proměnnými- Health endpoint (
GET /health→ 200) - Testy projdou
Fáze 1: Příprava
# 1. Pull nejnovější kód
cd /root/projects/<projekt>
git pull origin main
# 2. Readiness check
[ -f Dockerfile ] || echo "FAIL: chybí Dockerfile"
[ -f docker-compose.yml ] || echo "FAIL: chybí docker-compose.yml"
[ -f .env.example ] || echo "FAIL: chybí .env.example"
Blokery
Pokud chybí Dockerfile nebo compose — STOP. Nahlásit PM agentovi jako bloker.
Fáze 2: Security check + Build
# 3. npm audit (dependency vulnerabilities)
cd /root/projects/<projekt>
npm audit --omit=dev 2>/dev/null || echo "WARN: vulnerabilities found"
npm audit
Pokud npm audit hlásí critical nebo high — STOP. Nahlásit vývojovému agentovi.
Medium a low neblokují deploy, ale zapsat do changelogu.
# 4. Build Docker image
docker compose build --no-cache
# 5. Ověřit že image existuje
docker images | grep <projekt>
Fáze 3: Deploy na Hub-alfa (staging)
# 5. Přenést compose + env na hub-alfa
scp docker-compose.yml root@100.68.138.14:/opt/<projekt>/
scp .env root@100.68.138.14:/opt/<projekt>/
# 6. Build a spustit na hub-alfa
ssh root@100.68.138.14 "cd /opt/<projekt> && docker compose up -d --build"
# 7. Health check
curl -sf http://100.68.138.14:<port>/health && echo "OK" || echo "FAIL"
Staging fail
Pokud health check selže → nespouštět deploy na prod. Diagnostikovat, opravit, opakovat.
Fáze 4: Deploy na Prod-alfa (produkce)
# 8. Přenést na prod-alfa
scp docker-compose.yml root@100.78.87.88:/opt/<projekt>/
scp .env root@100.78.87.88:/opt/<projekt>/
# 9. Build a spustit na prod-alfa
ssh root@100.78.87.88 "cd /opt/<projekt> && docker compose up -d --build"
# 10. Health check
curl -sf http://100.78.87.88:<port>/health && echo "OK" || echo "FAIL"
Prod fail
Pokud health check selže → okamžitý rollback (viz Rollback runbook). Nahlásit PM + Libor.
Fáze 5: Po nasazení
# 11. Ověřit logy
ssh root@<server> "docker compose -f /opt/<projekt>/docker-compose.yml logs --tail=50"
# 12. Zapsat do changelogu
- Aktualizovat Changelog
- Poslat status report PM agentovi přes Relay API
- Aktualizovat dashboard (index.md)
- Pokud služba používá S60Auth OAuth: zkontrolovat tabulku
systemsv auth DB — URL musí odpovídat prostředí (ne dev!). Viz S60Auth deploy — OAuth klienti.
Kontrolní seznam
- [ ] Kód pullnutý a aktuální
- [ ]
npm audit— žádné critical/high - [ ] Dockerfile buildí bez chyb
- [ ] Env proměnné nastaveny
- [ ] Migrace provedeny
- [ ] Staging deploy OK + health check OK
- [ ] Prod deploy OK + health check OK
- [ ] Logy čisté
- [ ] Changelog aktualizován
- [ ] PM informován