Ajout CLAUDE.md : conventions projet et ports dev
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
72
CLAUDE.md
Normal file
72
CLAUDE.md
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
# Librodrome
|
||||||
|
|
||||||
|
Site vitrine du projet Le Librodrome — livre + chansons sur l'économie du don.
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
- **Nuxt 4** (Vue 3, TypeScript, Nitro)
|
||||||
|
- **Modules** : Nuxt Content, Pinia, UnoCSS, VueUse, Nuxt Image
|
||||||
|
- **Icônes** : Lucide + Phosphor (via @iconify-json)
|
||||||
|
- **Package manager** : pnpm
|
||||||
|
- **Déploiement** : Docker + Traefik, CI via Woodpecker
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
app/
|
||||||
|
pages/ # Routes : index, lire/, ecouter/, autonomie, evenement, gratewizard, a-propos, admin/
|
||||||
|
components/ # admin, book, content, home, layout, player, song, ui
|
||||||
|
composables/ # useAudioPlayer, useBookData, useGrateWizard, usePlaylist, usePageContent, useSiteContent...
|
||||||
|
assets/css/ # main.css (UnoCSS)
|
||||||
|
data/
|
||||||
|
pages/ # Contenu YAML par page (home, lire, ecouter, autonomie, evenement...)
|
||||||
|
site.yml # Config globale du site
|
||||||
|
server/
|
||||||
|
api/ # Endpoints API (admin, health)
|
||||||
|
middleware/ # Auth middleware
|
||||||
|
docker/
|
||||||
|
Dockerfile # Build multi-stage (dev + prod)
|
||||||
|
docker-compose.yml # Production (Traefik)
|
||||||
|
docker-compose.dev.yml # Dev Docker
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ports dev (CRITIQUE)
|
||||||
|
|
||||||
|
Chaque projet a un port fixe pour éviter les conflits Nuxt auto-increment :
|
||||||
|
|
||||||
|
| Projet | Port | Config |
|
||||||
|
|--------|------|--------|
|
||||||
|
| **librodrome** | **3000** | `nuxt.config.ts` → `devServer.port: 3000` |
|
||||||
|
| **GrateWizard** | **3001** | `package.json` → `next dev --port 3001` |
|
||||||
|
| **SejeteralO frontend** | **3009** | `frontend/nuxt.config.ts` → `devServer.port: 3009` |
|
||||||
|
| **SejeteralO backend** | **8000** | Makefile → `uvicorn --port 8000` |
|
||||||
|
|
||||||
|
Script de gestion : `/home/yvv/Documents/PROD/DEV/dev-ports.sh` (status/kill/clean/start)
|
||||||
|
|
||||||
|
**Ne jamais changer ces ports.** Si un port est occupé, tuer le process parasite plutôt que laisser Nuxt auto-incrémenter.
|
||||||
|
|
||||||
|
## Intégration GrateWizard
|
||||||
|
|
||||||
|
- URL dev configurée dans `app/app.config.ts` → `localhost:3001`
|
||||||
|
- URL prod : `https://gratewizard.ml`
|
||||||
|
- Ouverture en popup via `composables/useGrateWizard.ts`
|
||||||
|
- GrateWizard est un projet Next.js séparé (`/home/yvv/Documents/PROD/DEV/GrateWizard`)
|
||||||
|
|
||||||
|
## Contenu
|
||||||
|
|
||||||
|
Le contenu des pages est dans `data/pages/*.yml` et chargé via `composables/usePageContent.ts`. Le contenu riche (articles) utilise Nuxt Content avec des fichiers Markdown.
|
||||||
|
|
||||||
|
## Commandes
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev # Dev server sur :3000
|
||||||
|
pnpm build # Build production
|
||||||
|
pnpm generate # Génération statique
|
||||||
|
```
|
||||||
|
|
||||||
|
## Conventions
|
||||||
|
|
||||||
|
- Langue du site : français
|
||||||
|
- Commits en français, style concis
|
||||||
|
- CSS via UnoCSS (utility-first), pas de framework CSS externe
|
||||||
|
- Composants Vue SFC avec `<script setup lang="ts">`
|
||||||
Reference in New Issue
Block a user