Annuaire des stages de Telecom Physique Strasbourg.
Monorepo pnpm avec deux apps Next.js et des packages partages :
apps/
client/ - App publique (Next.js 16, RSC, React Compiler)
admin/ - Dashboard admin (Version instable supabase)
packages/
db/ - Schema Drizzle ORM, queries, seed
env/ - Variables d'environnement validees avec Zod
ui/ - Composants partages (Base UI + Tailwind)
Creer un fichier .env a la racine :
DB_NAME=chronos
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5432| Variable | Requis | Default | Description |
|---|---|---|---|
DB_NAME |
oui | Nom de la base de donnees | |
DB_USER |
oui | Utilisateur PostgreSQL | |
DB_PASSWORD |
oui | Mot de passe PostgreSQL | |
DB_HOST |
non | localhost |
Hote de la base de donnees |
DB_PORT |
non | 5432 |
Port de la base de donnees |
DB_SSL |
non | false |
Activer SSL pour la connexion |
# Installer les dependances
pnpm install
# Lancer PostgreSQL
docker compose up postgres -d
# Pousser le schema en base
pnpm --filter @chronos/db db:push
# (Optionnel) Remplir la base avec des donnees de test
pnpm --filter @chronos/db db:seed
# Lancer les apps en dev
pnpm devL'app client est accessible sur http://localhost:3000.
pnpm build # Build tous les packages
pnpm lint # Lint + format (Biome)
pnpm lint:fix # Auto-fix
pnpm --filter @chronos/db db:studio # Ouvrir Drizzle StudioTout le stack se lance avec Docker Compose :
docker compose up --buildCela demarre 4 services :
| Service | Description | Port |
|---|---|---|
postgres |
Base de donnees PostgreSQL | 5432 |
db-migrate |
Pousse le schema puis s'arrete | - |
client |
App Next.js (standalone) | 3000 |
studio |
Drizzle Studio (visualisation DB) | 4983 |
L'ordre de demarrage est gere automatiquement :
postgresdemarre et attend d'etre healthydb-migratepousse le schema puis s'arreteclientdemarre une fois le schema appliquestudiodemarre des que postgres est healthy
docker compose run --rm db-migrate pnpm --filter @chronos/db db:seeddocker compose up --builddocker compose down -v
docker compose up --buildMIT - Voir LICENSE