- node
- npm
- serveur Postgres (sur macOS, possible d'utiliser postgresapp)
- service de stockage S3
- serveur mail (par exemple mailDev)
Créer une base de données vide pour l'application (par exemple maestro
) et une autre pour les tests (par exemple test_maestro
).
La création des tables et autres structures SQL se fera automatiquement lors du lancement de l'application via les migrations KnexJS contenues dans le répertoire /database/migrations
Pour le stockage des fichiers, l'application utilise un service S3. En local et pour les tests, il est possible d'utiliser https://github.com/adobe/S3Mock
git clone https://github.com/betagouv/maestro.git
cd maestro
npm ci
cd frontend
npm ci
L'application utilise les variables d'environnement suivantes :
APPLICATION_HOST
NODE_ENV
API_PORT
AUTH_SECRET
AUTH_EXPIRES_IN
DATABASE_ENV
DATABASE_URL
MAILER_PROVIDER
MAILER_HOST
MAILER_PORT
MAILER_USER
MAILER_PASSWORD
MAILER_API_KEY
MAILER_EVENT_API_KEY
MAILER_SECURE
MAX_RATE
S3_ENDPOINT
S3_REGION
S3_ACCESS_KEY_ID
S3_SECRET_ACCESS_KEY
S3_BUCKET
S3_FILE_PATH
M2M_BASIC_TOKEN
REACT_APP_PUBLIC_URL
REACT_APP_API_URL
En local, elles peuvent être définies dans des fichiers .env
:
- un fichier dans le dossier
frontend
pour les variables d'environnementREACT_APP...
nécessaires au frontend (voirfrontend/.env.example
pour un exemple) - un fichier à la racine du projet pour les autres variables d'environnement (voir
.env.example
pour un exemple)
Le chargement se fait via Knex et les fichiers de chargement de données dans le répertoire /database/seeds
en fonction de l'environnement visé via DATABASE_ENV
.
npm run seed
npm run start-local
L'application est accessible à l'adresse sur http://localhost:3000
Frontend
npm run frontend:test
Backend
npm run test
La version de démo de l'application est accessible à l'adresse https://maestro.incubateur.net