Developpement
Prerequis
- Node.js 22+
- pnpm 9.15+
Installation
bash
git clone <url-du-repo>
cd cadmin
pnpm installStructure du monorepo
cadmin/
├── api/ # API Hono + SQLite
│ ├── src/
│ │ ├── db/ # Schema Drizzle, migrations, seed
│ │ ├── lib/ # Auth, Caddy API, generation Caddyfile
│ │ ├── middleware/ # Middleware d'authentification
│ │ ├── routes/ # Routes API (auth, vhosts, logs, agents, changelog)
│ │ └── index.ts # Point d'entree
│ └── Dockerfile
├── admin/ # React SPA
│ ├── src/
│ │ ├── components/ # Composants (vhost-form, diff-view, ui/)
│ │ ├── lib/ # Client API, auth client
│ │ └── routes/ # Pages (TanStack Router, file-based)
│ └── Dockerfile
├── agent/ # Service leger par serveur
│ ├── src/
│ │ ├── lib/ # Client Caddy API
│ │ ├── middleware/ # Auth Bearer token
│ │ ├── routes/ # Routes (caddy, logs, health)
│ │ └── index.ts # Point d'entree
│ └── Dockerfile
├── docs/ # Documentation VitePress
├── package.json # Scripts racine
└── pnpm-workspace.yamlLancer en dev
bash
# Backend + Frontend
pnpm dev
# Individuellement
pnpm dev:api # http://localhost:3001
pnpm dev:admin # http://localhost:5173
pnpm dev:agent # http://localhost:3002TIP
Le serveur Vite proxifie automatiquement les requetes /api vers l'api.
Base de donnees
bash
# Generer les migrations (apres modification du schema)
pnpm db:generate
# Appliquer les migrations
pnpm db:migrate
# Creer le compte admin
pnpm --filter api db:seedConventions de code
- TypeScript strict
typeplutot queinterface- Arrow functions
- Export apres la declaration
