Deploy Script — Specifikace
Umístění
- Script:
/root/projects/sentinel/deploy/deploy.sh - Spec:
/root/projects/sentinel/deploy/spec.md - Manifesty:
deploy.ymlv 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ů)
- Git pull — stáhne poslední verzi z main branch
- Readiness check — ověří Dockerfile, .env soubor, required env vars (z deploy.yml)
- npm audit — security scan závislostí
- Rsync — sync souborů na cílový server + extra rsync (auth-sdk atd.)
- Docker compose —
down+up --build(nebo jenup -ds--skip-build) - Health check — HTTP GET na health endpoint, čeká na 200
- 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)