Mettre en ligne
Publiez le tableau de bord et son API sur un serveur avec Docker, ou le tableau de bord sur Vercel ou tout hébergeur Node.js.
Pour le pack Front + Back
Avant de déployer
Avant la mise en ligne. Chaque seed (yarn seed, yarn seed:prod et le premier démarrage Docker) crée des admins d'exemple dont les mots de passe sont 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.
- Lancez l'API avec
NODE_ENV=production, votre propreJWT_SECRET, etCORS_ORIGINetFRONTEND_URLréglés sur l'adresse publique du tableau de bord. Une API de production refuse de démarrer sans les deux premiers. - Derrière un reverse proxy (Nginx, Caddy, un load balancer), définissez
TRUST_PROXY=1, pour que la limite de connexion compte les visiteurs et non le proxy. - Laissez
DEMO_MODEetNEXT_PUBLIC_DEMO_MODEdésactivés, sauf si le déploiement est une démo publique.
Avant de déployer
Construit sans adresse d'API, le tableau de bord fonctionne sur sa fausse API : les comptes d'exemple sont dans le code de l'application et vérifiés dans le navigateur, donc n'importe qui peut les lire et se connecter, et chaque modification reste dans le navigateur du visiteur. Reliez-le à votre API avant que de vrais utilisateurs ou de vraies données n'y arrivent.
La fausse API intégréeLaissez NEXT_PUBLIC_DEMO_MODE désactivé, sauf si le déploiement est une démo publique.
Les deux applications sur un seul serveur avec Docker
Le docker-compose.yml qui lance le template en local le lance aussi sur un serveur. Donnez à chaque application son propre domaine derrière un serveur web qui ajoute le HTTPS, comme Caddy ou Nginx, en transmettant le domaine du tableau de bord au port 3030 et celui de l'API au port 8000.
Nommer les deux adresses
Créez
.envdans le dossierdashboard-2-full-stack, à côté dedocker-compose.yml. Le tableau de bord compile l'adresse de l'API dans son JavaScript, et l'API autorise l'adresse du tableau de bord dansCORS_ORIGINetFRONTEND_URL, les deux à partir de ces deux lignes.dashboard-2-full-stack/.envDASHBOARD_URL=https://admin.your-domain.com API_URL=https://api.your-domain.comAjouter vos clés
L'API lit aussi
back-end/.envquand il existe, pour les clés des fournisseurs d'IA, R2 et la clé MCP. Créez-le à partir de.env.exampleet ajoutezTRUST_PROXY=1derrière votre serveur web. Le fichier compose définit lui-même la base de données, le port etNODE_ENV=production, et l'API génère unJWT_SECRETdans le volume de données si vous n'en donnez pas.Terminaldansdashboard-2-full-stackcp back-end/.env.example back-end/.envLe démarrer en arrière-plan
Terminaldansdashboard-2-full-stackdocker compose up --build -dRésultat attendu:
https://api.your-domain.com/api/healthrépond"status":"ok", et le domaine du tableau de bord ouvre la page de connexion.
Les services redémarrent avec le serveur. La base de données vit dans le volume dashboard-2-data. Après avoir changé DASHBOARD_URL, API_URL ou un port, relancez docker compose up --build -d : le tableau de bord doit être construit avec la nouvelle adresse.
L'API seule
back-end a son propre Dockerfile, donc tout hébergeur qui construit depuis un Dockerfile peut faire tourner l'API seule. Le conteneur garde sa base SQLite dans /data : montez-y un volume, sinon les données sont perdues avec le conteneur. Sur un nouveau volume, il crée la base avec les données d'exemple une seule fois.
back-enddocker build -t dashboard-api .
docker run -d --restart unless-stopped -p 8000:8000 -v dashboard-data:/data -e CORS_ORIGIN=https://admin.your-domain.com -e FRONTEND_URL=https://admin.your-domain.com dashboard-apiL'image tourne déjà avec NODE_ENV=production et son fichier SQLite dans /data. Ne passez que les valeurs dont vous avez besoin, chacune avec -e, comme -e GOOGLE_API_KEY=.... La façon habituelle de lancer l'API reste docker compose up --build à la racine du pack, qui la démarre avec le tableau de bord.
Sur un hébergeur Node.js sans Docker, la commande de build est yarn build, la commande de démarrage yarn start:prod, et yarn seed:prod se lance une fois pour créer les tables. Un fichier SQLite demande un disque persistant ; sur un hébergeur qui n'en a pas, utilisez MySQL.
Le tableau de bord sur Vercel
Mettre le tableau de bord dans un dépôt Git privé
Poussez le dossier du tableau de bord (
front-enddans le Full Stack,dashboard-2-front-enddans le pack Admin Dashboard) vers un dépôt privé sur GitHub, GitLab ou Bitbucket. Votre licence ne permet pas de partager publiquement le code source.Importez-le dans Vercel
Ajoutez un nouveau projet depuis ce dépôt. Vercel détecte Next.js ; gardez les paramètres de build par défaut. Dans le dépôt Full Stack, réglez le répertoire racine du projet sur
front-end.Ajoutez les variables d'environnement
Ajoutez
ENABLE_EXPERIMENTAL_COREPACKavec la valeur1, pour que Vercel installe avec la version de Yarn fixée parpackage.json. PuisNEXT_PUBLIC_API_BASE_URL(votre API avec/api),NEXT_PUBLIC_WEBSOCKET_BASE_URL(la même adresse sans/api) etNEXT_PUBLIC_BASE_URL(l'adresse du tableau de bord lui-même).WEATHER_API_KEYest facultative.Déployez
Lancez le déploiement, puis ajoutez votre domaine dans les paramètres Domains du projet, et ajoutez cette adresse à
CORS_ORIGINetFRONTEND_URLde l'API.Résultat attendu: Votre domaine ouvre la page de connexion.
Après avoir changé une variable NEXT_PUBLIC_*, déployez de nouveau : l'application en cours garde les valeurs avec lesquelles elle a été construite.
Le tableau de bord sur un serveur Node.js
Avec vos paramètres dans le .env du tableau de bord, installez, construisez et démarrez :
corepack enable
yarn install
yarn build
yarn startIl répond sur le port 3030, ou sur PORT quand l'hébergeur en définit un. Placez un serveur web devant pour votre domaine et le HTTPS, et gardez yarn start actif avec un gestionnaire de processus ou un service système.
Le tableau de bord comme image Docker
Le Dockerfile du tableau de bord construit un serveur autonome sur le port 3030, exécuté par un utilisateur sans droits d'administration. L'adresse de l'API est un argument de build :
docker build -t dashboard-2 --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-domain.com/api --build-arg NEXT_PUBLIC_WEBSOCKET_BASE_URL=https://api.your-domain.com --build-arg NEXT_PUBLIC_BASE_URL=https://admin.your-domain.com .
docker run -d --restart unless-stopped -p 3030:3030 dashboard-2WEATHER_API_KEY est lue quand le conteneur tourne : ajoutez -e WEATHER_API_KEY=... à docker run.
Une fois en ligne
- Connectez-vous à l'adresse de votre tableau de bord, avec
/enet/ar, et vérifiez les deux langues. - Chaque page demande aux moteurs de recherche de ne pas l'indexer, grâce à un en-tête
X-Robots-Tag: noindex, nofollowdéfini dansnext.config.js, car un tableau de bord connecté n'a pas sa place dans les résultats de recherche.