Variables d'environnement
Ce que fait chaque paramètre des fichiers .env de l'API et du tableau de bord, ceux dont vous avez besoin, et les options de Docker Compose.
Pour le pack Front + Back
Où se trouvent les paramètres
| Fichier | Lu par | Contient des secrets |
|---|---|---|
back-end/.env | L'API, avec yarn dev et dans Docker Compose | Oui. Ne le versionnez jamais. |
front-end/.env | Le tableau de bord. Ses valeurs NEXT_PUBLIC_* sont compilées au moment du build | Seulement WEATHER_API_KEY, qui reste sur le serveur du tableau de bord |
.env à côté de docker-compose.yml | Docker Compose, pour les deux applications | Seulement WEATHER_API_KEY |
Créez le fichier de chaque application à partir du .env.example placé à côté, qui documente chaque variable : cp .env.example .env. Les exemples fonctionnent tels quels pour un lancement local. Aucun des fichiers n'est nécessaire pour Docker Compose.
Où se trouvent les paramètres
Un fichier facultatif, .env dans le dossier du tableau de bord. Sans fichier, le tableau de bord fonctionne sur sa fausse API intégrée. .env.example le relie à une API sur http://localhost:8000 : copiez-le avec cp .env.example .env quand vous en avez une.
Avec Docker, les valeurs NEXT_PUBLIC_* sont des arguments de build (docker build --build-arg NAME=value), et WEATHER_API_KEY est une option d'exécution (docker run -e WEATHER_API_KEY=...).
Paramètres essentiels de l'API
L'API vérifie JWT_SECRET et, en production, CORS_ORIGIN avant de démarrer. Si l'un manque ou est inutilisable, elle s'arrête avec une ligne qui dit quoi corriger. Les variables déjà définies dans le processus, par Docker ou un hébergeur, l'emportent sur le fichier.
| Variable | Par défaut | Rôle |
|---|---|---|
NODE_ENV | development | development crée et met à jour les tables au démarrage. production ne touche jamais aux tables, et refuse de démarrer avec le JWT_SECRET d'exemple ou sans CORS_ORIGIN. |
PORT | 8000 | Le port de l'API. Le tableau de bord le vise. |
DB_TYPE | sqlite | sqlite ou mysql. |
SQLITE_DATABASE | ./database.sqlite | Le fichier SQLite, relatif à back-end. |
JWT_SECRET | La valeur d'exemple | Signe chaque connexion. Obligatoire. La valeur de l'exemple n'est acceptée qu'en dehors de la production. |
JWT_EXPIRATION | 7d | La durée d'une connexion. |
CORS_ORIGIN | http://localhost:3030 | L'adresse du tableau de bord, séparées par des virgules s'il y en a plusieurs. Obligatoire en production. |
FRONTEND_URL | http://localhost:3030 | La seule adresse que les mises à jour des permissions en direct acceptent : celle du tableau de bord. |
RATE_LIMIT_LOGIN | 10 | Les connexions échouées qu'une adresse peut faire en 15 minutes avant que la connexion ne réponde 429. |
TRUST_PROXY | Vide | Le nombre de reverse proxies devant l'API, par exemple 1 derrière Nginx ou Caddy, pour que la limite de connexion compte les visiteurs et non le proxy. |
Générez votre propre JWT_SECRET avec :
node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"Avant la mise en ligne. Chaque seed (yarn seed, yarn seed:prod et le premier démarrage Docker) crée les admins d'exemple avec les mots de passe affichés dans les guides. Changez leurs mots de passe ou supprimez-les, et définissez votre propre JWT_SECRET, avant que le tableau de bord ne soit accessible à quelqu'un d'autre.
Utiliser MySQL au lieu de SQLite
Créez une base de données vide, puis définissez le pilote et la connexion dans back-end/.env :
DB_TYPE=mysql
DB_HOST=your-mysql-host
DB_PORT=3306
DB_USERNAME=your-mysql-username
DB_PASSWORD=your-mysql-password
DB_DATABASE=your-database-namePuis lancez yarn seed, qui crée les tables et les données d'exemple. L'API en cours d'exécution ne crée et ne met à jour les tables elle-même qu'avec NODE_ENV=development : avec NODE_ENV=production, lancez donc yarn seed:prod une fois après yarn build, avant le premier démarrage.
Le tableau de bord
Chaque valeur NEXT_PUBLIC_* est compilée dans le JavaScript que le navigateur charge, et toute personne qui ouvre la page peut la lire. N'y mettez jamais de secret, et redémarrez yarn dev ou reconstruisez après en avoir changé une.
| Variable | Par défaut | Rôle |
|---|---|---|
NEXT_PUBLIC_API_BASE_URL | Vide : la fausse API | L'adresse de l'API avec /api, par exemple http://localhost:8000/api. Vide, le tableau de bord fonctionne sur sa fausse API intégrée avec des données d'exemple. |
NEXT_PUBLIC_WEBSOCKET_BASE_URL | L'adresse de l'API sans /api | Le serveur de l'API, pour les mises à jour des permissions en direct. Inutilisé sur la fausse API. |
NEXT_PUBLIC_BASE_URL | http://localhost:3030 | L'adresse publique du tableau de bord lui-même, sans barre oblique finale. robots.txt, le sitemap et les adresses absolues des métadonnées en sont construits. |
WEATHER_API_KEY | Vide | Une clé WeatherAPI.com pour la météo du message d'accueil de la vue d'ensemble, lue uniquement sur le serveur du tableau de bord. Vide, la météo est omise. |
PORT | 3030 | Le port que yarn dev et yarn start utilisent. |
BUILD_STANDALONE | Non défini | true fait produire à yarn build un serveur autonome, ce que définit le Dockerfile. Sinon, laissez-le non défini. |
Il n'y a aucune clé de fournisseur d'IA dans le tableau de bord : elles vivent uniquement dans le .env de l'API.
Options de Docker Compose
Rien n'est à définir pour un lancement local. Pour changer quelque chose, mettez-le dans un fichier .env dans le dossier dashboard-2-full-stack, à côté de docker-compose.yml, et relancez docker compose up --build : le tableau de bord compile l'adresse de l'API.
| Variable | Par défaut | Rôle |
|---|---|---|
DASHBOARD_PORT | 3030 | Le port du tableau de bord sur votre ordinateur. |
API_PORT | 8000 | Le port de l'API sur votre ordinateur. |
DASHBOARD_URL | http://localhost: et DASHBOARD_PORT | L'endroit où le navigateur joint le tableau de bord. CORS_ORIGIN et FRONTEND_URL de l'API, ainsi que l'adresse du tableau de bord lui-même, en sont déduits. |
API_URL | http://localhost: et API_PORT | L'endroit où le navigateur joint l'API. Le tableau de bord est construit avec cette adresse, suivie de /api. |
WEATHER_API_KEY | Vide | La météo du message d'accueil de la vue d'ensemble. |
DASHBOARD_PORT=3040Changez un port quand un autre programme l'utilise déjà, comme plus haut. Définissez DASHBOARD_URL et API_URL ensemble quand vous servez l'ensemble sur vos propres domaines.
Le conteneur de l'API lit aussi back-end/.env quand il existe : les clés d'IA, R2 et la clé MCP se définissent donc au même endroit pour yarn dev et Docker. Le fichier compose l'emporte pour les valeurs qui diffèrent dans un conteneur : NODE_ENV=production, le port, le fichier SQLite dans le volume dashboard-2-data, les deux adresses ci-dessus, et le mode démo, qu'il garde désactivé. Sans JWT_SECRET à vous, l'API en génère un et le garde dans le volume.
Envois d'images
Les photos de profil et les images jointes de l'assistant sont stockées dans un bucket Cloudflare R2. Définissez les cinq variables ; sans elles, l'envoi répond qu'il n'est pas configuré, et tout le reste fonctionne.
R2_ACCESS_KEY_ID=your-r2-access-key-id
R2_SECRET_ACCESS_KEY=your-r2-secret-access-key
R2_ENDPOINT=https://your-account-id.r2.cloudflarestorage.com
R2_BUCKET_NAME=your-bucket-name
R2_PUBLIC_URL=https://your-public-url.r2.devR2_PUBLIC_URL est l'adresse publique du bucket, qui doit donc autoriser la lecture publique. Chaque envoi est une image d'au plus 10 Mo, enregistrée en JPEG d'au plus 1920 pixels de large, avec une copie plus petite à côté.
Clés de l'assistant IA
Inclus avec votre achat. Connectez-vous pour le lire, ou ouvrez-le dans votre téléchargement.
Quelles variables activent chaque fournisseur d'IA, et ce qui se passe quand l'une est laissée vide.
Le serveur MCP
Inclus avec votre achat. Connectez-vous pour le lire, ou ouvrez-le dans votre téléchargement.
Permettre aux agents de code et aux autres clients MCP d'utiliser les outils de l'assistant : la clé et l'endpoint.
Mode démo
Inclus avec votre achat. Connectez-vous pour le lire, ou ouvrez-le dans votre téléchargement.
Lancer une démo publique : les interrupteurs de démo, les messages d'assistant gratuits par visiteur, et ce que les visiteurs peuvent modifier.