Skip to content

Guide d'installation locale ​

Ce guide explique comment configurer NENE2 localement, depuis un clone vierge jusqu'à une API fonctionnelle.

Prérequis ​

Aucune installation de PHP, Node.js ou MySQL sur l'hôte n'est requise. Toutes les dépendances d'exécution fonctionnent dans Docker.

1. Cloner et configurer ​

bash
git clone https://github.com/hideyukiMORI/NENE2.git
cd NENE2
cp .env.example .env

Ouvrez .env et ajustez les valeurs si nécessaire. Les valeurs par défaut fonctionnent pour le développement local sans modifications.

Variables d'environnement principales :

VariableDéfautUtilité
APP_ENVlocalEnvironnement d'exécution
NENE2_MACHINE_API_KEY(vide)Laisser vide pour désactiver l'auth machine-client en développement local
DB_ADAPTERmysqlsqlite ou mysql
DB_HOSTmysqlCorrespond au nom du service Docker Compose

2. Construire et installer ​

bash
docker compose build
docker compose run --rm app composer install

3. Lancer les vérifications backend ​

bash
docker compose run --rm app composer check

Cette commande exécute PHPUnit, PHPStan, PHP-CS-Fixer, la validation OpenAPI et la validation du catalogue MCP en séquence. Tout doit passer sur un clone propre.

4. Démarrer le serveur web ​

bash
docker compose up -d app

Vérifier qu'il fonctionne :

bash
curl -i http://localhost:8200/health

Réponse attendue :

json
{"status":"ok","service":"NENE2"}

Autres endpoints locaux utiles :

URLDescription
http://localhost:8200/Informations sur le framework
http://localhost:8200/healthVérification de santé
http://localhost:8200/examples/pingExemple ping
http://localhost:8200/examples/notes/{id}Note par ID (nécessite une DB)
http://localhost:8200/openapi.phpJSON OpenAPI brut
http://localhost:8200/docs/Interface Swagger

5. Arrêter le serveur ​

bash
docker compose down

Optionnel : Configuration de la base de données MySQL ​

La suite de tests par défaut utilise SQLite en mémoire. Pour vérifier l'adaptateur MySQL ou exécuter des tests de fumée sur les opérations d'écriture :

bash
docker compose up -d mysql
docker compose run --rm app composer migrations:migrate
docker compose run --rm app composer test:database:mysql

Optionnel : Authentification machine-client ​

L'endpoint /machine/health nécessite une clé API. Pour le tester localement :

  1. Définir NENE2_MACHINE_API_KEY=local-dev-key dans .env.
  2. Redémarrer le service app : docker compose up -d app
  3. Appeler l'endpoint protégé :
bash
curl -i -H 'X-NENE2-API-Key: local-dev-key' http://localhost:8200/machine/health

Optionnel : Configuration du frontend ​

bash
npm install --prefix frontend
npm run dev --prefix frontend

Optionnel : Serveur MCP local ​

bash
docker compose run --rm -e NENE2_LOCAL_API_BASE_URL=http://app app php tools/local-mcp-server.php

Optionnel : Vérifier le Request ID dans les logs ​

Chaque requête génère un X-Request-Id retourné dans l'en-tête de réponse et attaché à chaque enregistrement Monolog.

  1. Démarrer l'app : docker compose up -d app
  2. Envoyer une requête :
    bash
    curl -i http://localhost:8200/health
    # Chercher X-Request-Id dans les en-têtes de réponse
  3. Observer la sortie de log structurée :
    bash
    docker compose logs app
    # Chaque ligne JSON inclut "extra":{"request_id":"<id>"}

Vous pouvez aussi fournir votre propre ID :

bash
curl -i -H 'X-Request-Id: my-trace-id' http://localhost:8200/health

Dépannage ​

composer check échoue sur un clone propre Exécutez d'abord docker compose run --rm app composer install. Le répertoire vendor/ n'est pas versionné.

Le port 8200 est déjà utilisé Arrêtez ce qui l'utilise, ou changez la correspondance de port dans compose.yaml :

yaml
ports:
  - "8201:80"   # utiliser 8201 à la place

Connexion MySQL refusée pendant les migrations Le conteneur mysql prend quelques secondes pour être prêt. Attendez un moment et réessayez.

Publié sous licence MIT.