Lancer l'agence en local
Installez et démarrez chaque application avec Node.js et Yarn, un terminal par application.
Pour le pack Full Stack
Avant de commencer : installez Node.js 22 ou plus récent et lancez corepack enable une fois (sous Node.js 25 et plus récent, qui n'inclut plus Corepack, lancez d'abord npm install -g corepack). Aucun serveur de base de données n'est nécessaire.
Ouvrez chaque terminal là où les commandes ci-dessous l'attendent : dans velra-real-estate-full-stack pour la pile complète, ou à côté du dossier de l'application pour un pack à application unique.
| Application | Dossier | Adresse |
|---|---|---|
| API | back-end | localhost:8000Local |
| Site public | storefront | localhost:3030Local |
| Tableau de bord de l'agence | admin-dashboard | localhost:3031Local |
Démarrez l'API en premier : les deux frontends lisent toutes leurs données à partir de l'API.
Démarrez l'API
Installez et configurez
.env.examplefonctionne tel quel pour le développement local : SQLite sur le port8000.Terminalcorepack enable cd back-end yarn install cp .env.example .envUn problème ?Créez la base de données
yarn seedvérifie que chaque photo du seed est présente, puis créedatabase.sqlite, ses tables et l'agence de démonstration : 31 permissions, les rôles Super Admin et Agent, les deux comptes, 11 paramètres d'agence, 6 quartiers, 17 biens (15 publiés, 2 brouillons) avec 38 photos de galerie, 2 aperçus de mise en scène approuvés, 5 demandes et 8 demandes de visite. Le relancer n'ajoute que ce qui manque et ne réinitialise jamais un mot de passe.Terminaldansback-endyarn seedDémarrez le serveur
Terminaldansback-endyarn devRésultat attendu: localhost:8000/
Un problème ?api/ healthLocal répond avec "status":"ok"et"database":"up".
Démarrez l'API
Installez et configurez
.env.examplefonctionne tel quel pour le développement local : SQLite sur le port8000.Terminalcorepack enable cd velra-backend yarn install cp .env.example .envUn problème ?Créez la base de données
yarn seedvérifie que chaque photo du seed est présente, puis créedatabase.sqlite, ses tables et l'agence de démonstration : 31 permissions, les rôles Super Admin et Agent, les deux comptes, 11 paramètres d'agence, 6 quartiers, 17 biens (15 publiés, 2 brouillons) avec 38 photos de galerie, 2 aperçus de mise en scène approuvés, 5 demandes et 8 demandes de visite. Le relancer n'ajoute que ce qui manque et ne réinitialise jamais un mot de passe.Terminaldansvelra-backendyarn seedDémarrez le serveur
Terminaldansvelra-backendyarn devRésultat attendu: localhost:8000/
Un problème ?api/ healthLocal répond avec "status":"ok"et"database":"up".
Démarrez le site public
Dans un deuxième terminal :
Installez et configurez
Le
.envcopié fait pointer le site vers l'API sur le port8000.Terminalcd storefront yarn install cp .env.example .envDémarrez l'application
Terminaldansstorefrontyarn devRésultat attendu: localhost:3030Local ouvre le site en anglais avec les annonces de démonstration ; l'arabe est sur
Un problème ?/ar.
Démarrez le site public
L'API ne fait pas partie de ce pack. Démarrez-la en premier ; le .env copié l'attend sur http://localhost:8000/api.
Installez et configurez
Si votre API tourne ailleurs, définissez
NEXT_PUBLIC_API_BASE_URLdans.envavec son adresse,/apicompris.Terminalcorepack enable cd velra-website yarn install cp .env.example .envUn problème ?Démarrez l'application
Terminaldansvelra-websiteyarn devRésultat attendu: localhost:3030Local ouvre le site avec les annonces de votre API ; l'arabe est sur
Un problème ?/ar.
Démarrez le tableau de bord de l'agence
Dans un troisième terminal :
Installez et configurez
Le
.envcopié fait pointer le tableau de bord vers l'API et ses notifications en direct sur le port8000.Terminalcd admin-dashboard yarn install cp .env.example .envDémarrez-le et connectez-vous
yarn devcopie d'abord le worker de la bibliothèque de cartes danspublic/maplibre/, puis démarre le tableau de bord.Terminaldansadmin-dashboardyarn devRésultat attendu: localhost:3031Local ouvre le formulaire de connexion. Connectez-vous avec
Un problème ?admin@velra.exampleet le mot de passeAdmin@123.
Démarrez le tableau de bord de l'agence
L'API ne fait pas partie de ce pack. Démarrez-la en premier ; le .env copié l'attend sur http://localhost:8000/api.
Installez et configurez
Si votre API tourne ailleurs, définissez dans
.envNEXT_PUBLIC_API_BASE_URL(avec/api) etNEXT_PUBLIC_WEBSOCKET_BASE_URL(sans) avec son adresse.Terminalcorepack enable cd velra-agency-dashboard yarn install cp .env.example .envUn problème ?Démarrez-le et connectez-vous
Terminaldansvelra-agency-dashboardyarn devRésultat attendu: localhost:3031Local ouvre le formulaire de connexion. Connectez-vous avec
Un problème ?admin@velra.exampleet le mot de passeAdmin@123, qu'une API avec seed accepte.
Autres ports
Sans Docker, les ports sont fixés dans les fichiers. Les scripts dev et start du site, dans package.json, passent -p 3030, et ceux du tableau de bord -p 3031 : changez le nombre à cet endroit pour en déplacer un, puis ajoutez la nouvelle adresse à CORS_ORIGIN dans le .env de l'API, et pour le tableau de bord définissez-y aussi FRONTEND_URL avec cette adresse. Pour déplacer l'API, définissez PORT et PUBLIC_MEDIA_URL dans son .env avec le même nombre, ainsi que NEXT_PUBLIC_API_BASE_URL dans les deux frontends (et NEXT_PUBLIC_WEBSOCKET_BASE_URL du tableau de bord).
Build de production
Les mêmes dossiers, construits une fois puis démarrés. Commencez par régler le .env de l'API pour la production : avec NODE_ENV=production, l'API ne modifie jamais les tables au démarrage, et elle refuse de démarrer tant que JWT_SECRET est vide ou encore à la valeur de l'exemple, ou tant que CORS_ORIGIN est vide.
NODE_ENV=production
JWT_SECRET=paste-the-generated-secret-here
CORS_ORIGIN=http://localhost:3030,http://localhost:3031
FRONTEND_URL=http://localhost:3031
PUBLIC_MEDIA_URL=http://localhost:8000/mediaGénérez le secret avec node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". Ensuite, dans le dossier de l'API, construisez-la, créez ses tables une fois et démarrez-la. yarn seed:prod ajoute l'agence de démonstration et ses comptes ; yarn db:sync:prod à sa place crée des tables vides sans compte.
yarn build
yarn seed:prod
yarn start:prodBuild de production des frontends
Dans le dossier de chaque frontend, lancez le build une fois puis démarrez. Le site répond sur 3030 et le tableau de bord sur 3031.
yarn build
yarn startLes frontends compilent leur .env au moment du build : relancez donc yarn build après l'avoir modifié. Avant de déployer quoi que ce soit de public, lisez le guide de déploiement.
Repartir de données de démonstration neuves
Arrêtez l'API, puis, dans le dossier de l'API, supprimez le fichier de la base de données et recréez-la avec les données de démonstration. Cela supprime tout ce que vous avez créé.
rm -f database.sqlite* && yarn seedDans PowerShell :
Remove-Item database.sqlite*; yarn seed