- documentation/local-setup.md : guide complet (prérequis, install manuelle, démarrage, config, vérification) - scripts/setup-local.sh : script automatisé (check prérequis, création DB PostgreSQL, install CLIs et dépendances) Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
3.6 KiB
3.6 KiB
Lancer Datacat en local (sans Docker)
Prérequis
| Outil | Version | Lien |
|---|---|---|
| Node.js | 22 LTS | https://nodejs.org |
| pnpm | 10.33.0 | npm install -g pnpm@10.33.0 |
| PostgreSQL | 17 | https://www.postgresql.org/download/ |
| git | toute version récente | https://git-scm.com |
git est requis par le CLI AsyncAPI pour installer ses templates.
Installation rapide (script)
bash scripts/setup-local.sh
Le script :
- Vérifie les prérequis
- Crée la base PostgreSQL
datacat - Installe
@asyncapi/cliet@redocly/cliglobalement - Installe les dépendances npm des trois packages
Installation manuelle
1. Base de données PostgreSQL
# Linux
sudo -u postgres psql << 'SQL'
CREATE DATABASE datacat;
CREATE USER datacat WITH PASSWORD 'datacat';
GRANT ALL PRIVILEGES ON DATABASE datacat TO datacat;
ALTER DATABASE datacat OWNER TO datacat;
SQL
# macOS (Homebrew)
psql postgres << 'SQL'
CREATE DATABASE datacat;
CREATE USER datacat WITH PASSWORD 'datacat';
GRANT ALL PRIVILEGES ON DATABASE datacat TO datacat;
ALTER DATABASE datacat OWNER TO datacat;
SQL
# Windows (PowerShell — depuis le dossier bin de PostgreSQL)
psql -U postgres -c "CREATE DATABASE datacat;"
psql -U postgres -c "CREATE USER datacat WITH PASSWORD 'datacat';"
psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE datacat TO datacat;"
psql -U postgres -c "ALTER DATABASE datacat OWNER TO datacat;"
2. CLIs de génération de docs
npm install -g @asyncapi/cli@6.0.0
npm install -g @redocly/cli
3. Dépendances Node.js
cd shared && pnpm install
cd ../back && pnpm install
cd ../front-public && pnpm install
Démarrage
Ouvrir deux terminaux depuis la racine du projet :
Terminal 1 — Backend
cd back
pnpm run start:dev
# API disponible sur http://localhost:3000
# Health check : http://localhost:3000/health
Terminal 2 — Frontend
cd front-public
pnpm run start
# Application disponible sur http://localhost:4200
Configuration
Les variables d'environnement ont des valeurs par défaut. Aucun fichier .env n'est nécessaire si la base PostgreSQL est créée avec les identifiants par défaut (datacat/datacat).
Pour surcharger, créer back/.env :
DATABASE_HOST=localhost
DATABASE_PORT=5432
DATABASE_NAME=datacat
DATABASE_USER=datacat
DATABASE_PASSWORD=datacat
# Répertoire de sortie des docs générées
DOCS_OUTPUT_DIR=./docs-output
# Port du backend (défaut : 3000)
PORT=3000
Vérification
| URL | Attendu |
|---|---|
| http://localhost:3000/health | {"status":"ok"} |
| http://localhost:3000/api/apis | {"items":[], "total":0, ...} |
| http://localhost:4200 | Page d'accueil Datacat |
| http://localhost:4200/browse | Arborescence des dossiers |
| http://localhost:4200/upload | Formulaire d'import YAML |
Fichiers YAML de test
Des exemples sont disponibles dans documentation/ :
| Fichier | Type | Description |
|---|---|---|
files-samples-oas/petstore.yaml |
OpenAPI 3.0 | CRUD animaux |
files-samples-asyncapi/user-events.yaml |
AsyncAPI 3.0 | Événements utilisateurs |
Notes
- Schéma DB : TypeORM crée et synchronise automatiquement les tables au démarrage (mode
synchronize: truehors production). Aucune migration manuelle nécessaire. - Génération de docs : asynchrone — après l'upload, le statut passe de
PENDINGàGENERATEDune fois le CLI terminé. - Proxy Angular : le fichier
front-public/proxy.conf.jsonredirige/apivershttp://localhost:3000. Ne pas modifier.