Skip to content

Deploy Script — Specifikace

Umístění

  • Script: /root/projects/sentinel/deploy/deploy.sh
  • Spec: /root/projects/sentinel/deploy/spec.md
  • Manifesty: deploy.yml v root každého repozitáře

Použití

./deploy.sh <projekt> <env> [--skip-build]

# Příklady
./deploy.sh pulse hub
./deploy.sh pulse prod
./deploy.sh billit hub --skip-build

Fáze deploye (7 kroků)

  1. Git pull — stáhne poslední verzi z main branch
  2. Readiness check — ověří Dockerfile, .env soubor, required env vars (z deploy.yml)
  3. npm audit — security scan závislostí
  4. Rsync — sync souborů na cílový server + extra rsync (auth-sdk atd.)
  5. Docker composedown + up --build (nebo jen up -d s --skip-build)
  6. Health check — HTTP GET na health endpoint, čeká na 200
  7. Souhrn — výstup výsledku, report

deploy.yml formát

Každý repozitář obsahuje deploy.yml v root adresáři:

service: string          # unikátní název služby
version: string          # semver

build:
  context: string        # build context (default ".")
  dockerfile: string     # cesta k Dockerfile

containers:
  - name: string         # název Docker kontejneru
    port: int            # port na kterém služba poslouchá
    health: string       # health check path (GET → 200)

domains:
  staging: string        # doména na hub-alfa
  production: string     # doména na prod-alfa

env_vars:
  required: [string]     # povinné env proměnné

Kompletní spec s volitelnými poli: /root/projects/sentinel/deploy/spec.md

Pravidla

  • VŽDY použít deploy.sh místo ručního rsync/scp/docker compose
  • Pokud deploy.yml chybí nebo je neaktuální → opravit ho, NE obejít ručním deployem
  • Pokud deploy.sh selže → diagnostikovat a opravit script, ne přepnout na ruční postup
  • Po deployi VŽDY zkontrolovat: EXPOSE port, HEALTHCHECK port, port mapping
  • Po deployi VŽDY ověřit: HTTP 200 na health endpoint + docker ps → healthy

Projekty s deploy.yml

  • auth (S60Auth)
  • pulse (S60Pulse)
  • s60-mail
  • badwolf (BadWolf)
  • venom
  • billit (BillIt)