generated from vincent/template-projet
docs: sync CLAUDE.md and plan.md with post-phase-1 reality
- docker-compose.yml = config prod (images registry + Traefik), pas dev - next.config.ts → next.config.mjs (corrigé partout) - Phase 1 : branche pas encore mergée dans dev - Ajout pièges Docker : public/, package-lock.json, @radix-ui/react-badge inexistant - Commande alembic corrigée dans plan.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
14
CLAUDE.md
14
CLAUDE.md
@@ -40,8 +40,8 @@ backend/
|
||||
alembic/ # Migrations (env.py configuré)
|
||||
main.py # App FastAPI : CORS, rate limiting, routers
|
||||
docker/
|
||||
docker-compose.yml # Dev : postgres, redis, backend, frontend
|
||||
docker-compose.prod.yml # Prod : images registry + labels Traefik
|
||||
docker-compose.yml # Prod : images registry + labels Traefik (utilisé par Gitea Actions)
|
||||
docker-compose.prod.yml # Alias prod (identique, gardé pour référence)
|
||||
```
|
||||
|
||||
## Commandes
|
||||
@@ -129,14 +129,16 @@ Voir @docker/docker-compose.yml et @.gitea/workflows/deploy.yml
|
||||
- Le client API (`lib/api.ts`) passe toujours le token en paramètre explicite — pas de contexte global
|
||||
- Les nouvelles pages du dashboard vont dans `app/(dashboard)/[section]/page.tsx`
|
||||
- Les nouveaux composants UI shadcn vont dans `components/ui/`, les composants métier dans `components/`
|
||||
- Les rewrites `next.config.ts` proxifient `/api/*` vers le backend — en dev, définir `NEXT_PUBLIC_API_URL=http://localhost:8000`
|
||||
- Les rewrites `next.config.mjs` proxifient `/api/*` vers le backend — en dev, définir `NEXT_PUBLIC_API_URL=http://localhost:8000`
|
||||
- JWT stocké dans localStorage (simple pour MVP, à migrer vers HttpOnly cookie plus tard)
|
||||
|
||||
**Infrastructure :**
|
||||
- Le service `backend` dans docker-compose dépend de `postgres` avec `condition: service_healthy`
|
||||
- Le build frontend Next.js utilise `output: "standalone"` → le Dockerfile copie `.next/standalone`
|
||||
- Les variables d'env préfixées `NEXT_PUBLIC_` sont embarquées au build (pas au runtime)
|
||||
- `docker-compose.prod.yml` attend des images pré-buildées depuis `${REGISTRY}` — pas de build local
|
||||
- `docker-compose.yml` attend des images pré-buildées depuis `${REGISTRY}` — pas de build local (config prod)
|
||||
- Le `frontend/public/` doit exister (même vide avec `.gitkeep`) — le Dockerfile le copie dans le stage runner
|
||||
- `npm ci` exige un `package-lock.json` commité — toujours commiter le lockfile après `npm install`
|
||||
|
||||
### Pièges à éviter
|
||||
- Ne pas lancer `uvicorn main:app` depuis `backend/` — toujours depuis la racine avec le module complet
|
||||
@@ -144,4 +146,6 @@ Voir @docker/docker-compose.yml et @.gitea/workflows/deploy.yml
|
||||
- Ne pas utiliser `.dict()` Pydantic v1 — c'est `.model_dump()` en v2
|
||||
- Ne pas faire de scans sans vérifier `cible.validee == True` côté backend
|
||||
- Ne pas commiter `.env` — seulement `.env.example`
|
||||
- Alembic `env.py` importe les modèles depuis `backend.models` — ajouter tout nouveau modèle dans `backend/models/__init__.py`
|
||||
- Alembic `env.py` importe les modèles depuis `backend.models` — ajouter tout nouveau modèle dans `backend/models/__init__.py`
|
||||
- Ne pas utiliser `next.config.ts` — Next.js 14 ne supporte pas ce format, utiliser `next.config.mjs`
|
||||
- Ne pas utiliser `@radix-ui/react-badge` — ce package n'existe pas sur npm (Badge shadcn = div CVA)
|
||||
Reference in New Issue
Block a user