Skip to the content.

Architecture technique RaciFlow

Stack technique

Couche Technologie Version
Runtime Node.js 22 (Alpine)
Langage TypeScript 5.9
Frontend React 19
Bundler frontend Vite 7
Bundler backend esbuild 0.25
Serveur HTTP Express 4
API tRPC 11
ORM Drizzle ORM 0.44
Base de donnees PostgreSQL 16 (Alpine)
Cache Redis 7 (Alpine)
Reverse proxy Caddy 2 (Alpine)
Gestionnaire de paquets pnpm 10.4.1
Monitoring Sentry SDK 10
UI Radix UI, Tailwind CSS 4, shadcn/ui  
Validation Zod 4
Authentification JWT (jose) + bcryptjs  

Containers Docker

L’application est decomposee en 4 containers :

raci-flow-app

raci-flow-postgres

raci-flow-redis

caddy-proxy

Reseaux Docker

Reseau Type Role
proxy externe (partage) Communication entre Caddy et l’application
internal bridge (isole) Communication entre l’application, PostgreSQL et Redis

Le reseau proxy est declare comme external: true et partage entre le compose de Caddy et celui de l’application. Le reseau internal est isole et n’est pas accessible depuis l’exterieur.

Domaine et TLS

Schema d’architecture

Internet
    |
    v
[Caddy :443] ── reseau proxy ── [raci-flow-app :3000]
                                       |
                                 reseau internal
                                    /       \
                          [PostgreSQL :5432]  [Redis :6379]

Structure du code source

/opt/raci-flow/
├── client/          # Frontend React (Vite)
│   ├── src/         # Code source React
│   └── public/      # Assets statiques
├── server/          # Backend Express + tRPC
│   ├── _core/       # Entrypoint, config, middleware
│   ├── routers/     # Routes tRPC
│   └── lib/         # Utilitaires serveur
├── shared/          # Code partage client/serveur
├── drizzle/         # Schema DB + migrations
├── scripts/         # Scripts utilitaires
├── dist/            # Build de production
└── docs/            # Documentation