Skip to content

Deploy Venom (S60Venom)

Popis

Frontend-only aplikace (Vite + nginx:alpine). Sdileny build context /opt/bw/ s BadWolf — vyzaduje s60-auth-sdk jako sibling.

Prerekvizity

  • Secrets: /root/secrets/venom/.env.hub + .env.prod
  • VITE env vars (VITE_API_URL, VITE_AUTH_URL, VITE_CALLBACK_URL) se bakuji do buildu — pri zmene env vars se MUSI rebuildovat (ne --skip-build)
  • Zadna DB — ciste frontend, zadne migrace

Domeny

  • Staging: venom.s60hub.cz
  • Produkce: venom.studio60.cz

Postup

1. Deploy na hub (staging)

cd /root/projects/sentinel
./deploy/deploy.sh venom hub

Deploy.sh automaticky: - git pull - rsync do /opt/bw/venom na hub-alfa - extra rsync s60-auth-sdk do /opt/bw/s60-auth-sdk - scp .env.hub na server - docker compose up --build - health check na 127.0.0.1:5174/ - QA gate (tier auto-detect nebo --tier PATCH|RELEASE|MAJOR)

2. QA schvaleni

  • Deploy.sh automaticky posle QA_REQUEST qa agentovi
  • Cekat na QA_RESULT (max 10 min polling)
  • QA PASS — pokracovat na prod (krok 3)
  • QA FAIL — ESKALOVAT na wfh (fess agent), NEDEPLOYOVAT na prod
    # Eskalace pri QA FAIL:
    source /root/.env
    curl -s -X POST "http://100.72.164.58:3020/api/messages" \
      -H "Content-Type: application/json" \
      -H "X-Api-Key: $RELAY_API_KEY" \
      -d '{"to":"fess","type":"URGENT","subject":"QA FAIL — venom hub deploy","body":"QA neproslo pro venom hub. Ceka se na rozhodnuti.","from":"sentinel"}'
    
  • QA TIMEOUT — eskalovat na wfh, nedeployovat na prod

3. Deploy na prod

Pouze po QA PASS:

./deploy/deploy.sh venom prod

4. Overeni

  • Hub: curl -s -o /dev/null -w '%{http_code}' https://venom.s60hub.cz/
  • Prod: curl -s -o /dev/null -w '%{http_code}' https://venom.studio60.cz/
  • Ocekavany vysledek: HTTP 200 nebo 301/302

Specificka rizika

  • Build context /opt/bw/ — pri rsyncu s --delete se muze smazat auth-sdk. Deploy.sh resi extra_rsync, ale pri rucnim zasahu pozor.
  • VITE build args — zmena API URL vyzaduje plny rebuild, nestaci restart kontejneru.
  • s60-auth-sdk — musi byt aktualni pred buildem, jinak build selze.

Eskalace

  • QA FAIL nebo TIMEOUT → eskalovat na wfh (pres fess agent, typ URGENT)
  • Health check FAIL → rollback (docker compose down && docker compose up -d --build na cilovem serveru), eskalovat na wfh