Skip to the content.

Procedure de deploiement RaciFlow

Fichiers et repertoires cles

Chemin Description
/opt/raci-flow/ Code source de l’application (repository Git)
/root/home-it/apps/raci-flow/docker-compose.yml Compose de l’application (app + postgres + redis)
/root/home-it/apps/raci-flow/Dockerfile Dockerfile multi-stage
/root/home-it/apps/raci-flow/.env Variables d’environnement de production
/root/home-it/vps/proxy/docker-compose.yml Compose du reverse proxy Caddy
/root/home-it/vps/proxy/Caddyfile Configuration Caddy (domaines, reverse proxy)

Deploiement standard

1. Mettre a jour le code source

cd /opt/raci-flow
git pull origin main

2. Reconstruire l’image Docker

cd /root/home-it/apps/raci-flow
docker compose build

Cette commande execute le Dockerfile multi-stage qui :

3. Redemarrer les services

cd /root/home-it/apps/raci-flow
docker compose up -d

Les containers redemarrent dans l’ordre defini par les dependances :

  1. postgres (healthcheck: pg_isready)
  2. redis (healthcheck: redis-cli ping)
  3. app (demarre apres que postgres soit healthy)

Commande combinee (deploiement rapide)

cd /opt/raci-flow && git pull origin main && \
cd /root/home-it/apps/raci-flow && \
docker compose build && docker compose up -d

Dockerfile multi-stage

Le Dockerfile utilise 3 etapes pour optimiser la taille de l’image finale :

deps (Node 22 Alpine)
  └── Installation pnpm + dependances (frozen lockfile)
       └── builder (Node 22 Alpine)
            └── Build Vite (frontend) + esbuild (backend)
                 └── runner (Node 22 Alpine)
                      └── Image finale : node_modules + dist/ + drizzle/

Variables de build injectees via ARG :

Point d’entree de l’image finale :

CMD ["node", "--import", "./dist/instrument.js", "dist/index.js"]

Le fichier instrument.js initialise Sentry avant le demarrage du serveur Express.

Migrations de base de donnees

Les migrations Drizzle sont incluses dans l’image Docker (drizzle/ + drizzle.config.ts).

Pour appliquer les migrations manuellement :

docker exec -it raci-flow-app sh
npx drizzle-kit generate && npx drizzle-kit migrate

Ou depuis l’exterieur :

docker exec raci-flow-app npx drizzle-kit generate
docker exec raci-flow-app npx drizzle-kit migrate

Gestion du reverse proxy Caddy

Caddy est gere separement dans son propre compose :

cd /root/home-it/vps/proxy
docker compose up -d

En cas de modification du Caddyfile :

cd /root/home-it/vps/proxy
docker compose restart caddy

Caddy gere automatiquement les certificats TLS pour app.raciflow.com.

Verification post-deploiement

# Verifier que tous les containers sont sains
docker ps --format "table \t"

# Verifier les logs de l'application
docker logs raci-flow-app --tail 50

# Tester l'acces HTTP
curl -s -o /dev/null -w "%{http_code}" https://app.raciflow.com