Skip to content

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.example s 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 systems v 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