Lancer Northstack en local
Lancez votre pack sur votre ordinateur, avec Docker.
Pour le pack Full Stack
Avant de commencer : installez et ouvrez Docker Desktop, ou Docker Engine avec Compose.
Voir la configuration requiseTéléchargez votre template
Ouvrez Mes templates et téléchargez le ZIP correspondant à votre pack.
Résultat attendu: Un fichier nommé comme
northstack-full-stack-….zipse trouve dans vos téléchargements.Décompressez et ouvrez le dossier
Ouvrez un terminal là où se trouve le ZIP, extrayez-le et placez-vous dans le dossier
northstack-full-stack. Sous Windows, vous pouvez plutôt l'extraire dans l'Explorateur de fichiers, puis ouvrir un terminal dans le dossier.Terminalunzip -q northstack-full-stack-*.zip cd northstack-full-stack lsRésultat attendu: Le dossier contient
Un problème ?back-end,dashboard,websiteetdocker-compose.yml, à côté deREADME.md,QUICKSTART.mdetLICENSE.md.Démarrez les applications
Construisez et démarrez l'API, le site public et le tableau de bord de l'espace de travail. Rien n'a besoin d'être configuré avant. Le premier démarrage construit trois images et remplit la base avec les espaces de travail d'exemple, ce qui prend quelques minutes ; les démarrages suivants prennent quelques secondes.
Terminaldansnorthstack-full-stackdocker compose up --buildUn port est déjà utilisé ?
Si le démarrage s'arrête avec
Un port est déjà utiliséports are not available,address already in useouport is already allocated, un autre programme utilise 3030, 3031 ou 8000. Arrêtez-le, ou créez un fichier nommé.envdans le dossiernorthstack-full-stack, à côté dedocker-compose.yml, avec le port voulu, par exempleADMIN_PORT=3041(SITE_PORTpour le site,API_PORTpour l'API). Relancezdocker compose up --buildet ouvrez l'application sur son nouveau port.Résultat attendu: Les trois services restent actifs et le journal cesse de défiler. Laissez ce terminal ouvert.
Un problème ?Ouvrez le site public
Ouvrez localhost:3030Local. L'anglais est sur
/enet l'arabe sur/ar. Le site n'a pas de comptes propres : ses boutons Live demo ouvrent la connexion du tableau de bord.Résultat attendu: Le site s'ouvre sur sa page d'accueil. La page des tarifs vend les deux licences par le paiement du site, qui ne débite personne tant que l'API n'a pas de clés de paiement.
Un problème ?Se connecter au tableau de bord
Ouvrez localhost:3031Local. Connectez-vous avec
owner@northstack.exampleet le mot de passeNorthstackDemo26!. Chaque compte du seed utilise ce mot de passe ; changez-les avant que la pile soit accessible depuis Internet.Résultat attendu: Le tableau de bord s'ouvre sur la vue d'ensemble de l'espace de travail de Forma Studio, avec ses projets, l'usage du mois, le graphique d'activité des projets et la checklist de lancement.
Un problème ?
Faites le tour
À quoi ressemble l'espace de travail d'exemple une fois que tout fonctionne.
| Compte | Emplacement | |
|---|---|---|
| Propriétaire de Forma Studio : chaque page et action de l'espace de travail, la facturation, la matrice des rôles et la suppression de l'espace ; aussi admin de Monogram | owner@northstack.example | Tableau de bord |
| Admin : les projets, l'équipe et les invitations, les paramètres de l'espace, les clés d'API et le journal d'activité ; les rôles en lecture seule, pas de facturation | admin@northstack.example | Tableau de bord |
| Membre : les projets et les tâches, et l'assistant ; l'équipe, les rôles et les paramètres en lecture, pas de facturation | member@northstack.example | Tableau de bord |
| Facturation : l'abonnement, les changements de formule et les factures ; l'équipe, les rôles et les paramètres en lecture ; pas de projets (la vue d'ensemble les omet aussi) et pas d'assistant | billing@northstack.example | Tableau de bord |
| Admin de la plateforme : chaque organisation, utilisateur, membre du personnel, rôle de la plateforme et paramètre | platform@northstack.example | Tableau de bord |
| Support : chaque page de la plateforme en lecture seule, et les exports de rapports | support@northstack.example | Tableau de bord |
Chaque compte se connecte avec le mot de passe NorthstackDemo26!. Ce sont uniquement des comptes de démonstration locaux : sur un serveur, partez à vide avec SEED_SAMPLE_DATA=false et votre propre admin de la plateforme (Démarrer à vide).
Le seed ajoute Forma Studio avec la formule Pro, 12 projets et leurs tableaux de tâches, 8 membres, 2 invitations en attente, trois factures, une clé d'API, l'activité des dernières semaines et trois conversations passées avec l'assistant, ainsi qu'un second espace de travail, Monogram, auquel le propriétaire passe depuis le sélecteur d'espace. Derrière l'administration de la plateforme, il y a 732 organisations en tout, si bien que chaque liste et chaque chiffre s'ouvrent bien remplis. Un nouveau compte créé sur la page d'inscription passe par l'onboarding et crée son propre espace de travail.
Arrêter et redémarrer
Appuyez sur Ctrl+C dans le terminal pour arrêter les applications, ou lancez ceci depuis le dossier northstack-full-stack. Vos données, la base et les fichiers téléversés, sont conservées dans le volume northstack-data.
northstack-full-stackdocker compose downRedémarrez avec la même commande qu'à l'étape 3. Sans --build, elle réutilise les images déjà construites.
northstack-full-stackdocker compose upConserver vos données
docker compose down -v supprime aussi le volume de données. Le démarrage suivant génère une copie neuve des espaces de travail d'exemple, et tout ce que vous aviez créé a disparu.
Lancer le site public
Ce pack est le site public, seul. Sans API, il fonctionne sur ses données d'exemple intégrées : le formulaire de contact et le paiement des licences répondent dans votre navigateur, et rien n'est envoyé nulle part. Pour utiliser plutôt l'API Northstack, construisez-le avec l'adresse de l'API. L'API est un pack séparé et n'est pas dans ce téléchargement.
Décompressez et ouvrez le dossier
Terminalunzip -q northstack-website-*.zip cd northstack-website lsRésultat attendu: Le dossier contient un
Un problème ?Dockerfile, unpackage.jsonet le guideQUICKSTART.md.Construisez l'image
Seul, sans API : le
NEXT_PUBLIC_API_BASE_URLvide construit le site sur ses données d'exemple.Terminaldansnorthstack-websitedocker build -t northstack-website --build-arg NEXT_PUBLIC_API_BASE_URL= .Avec l'API Northstack sur
http://localhost:8000/apiet le tableau de bord surhttp://localhost:3031, construisez sans arguments :Terminaldansnorthstack-websitedocker build -t northstack-website .Avec votre propre API et vos propres domaines, les valeurs
NEXT_PUBLIC_*sont compilées dans le JavaScript que charge le navigateur, ce sont donc des arguments de build :Terminaldansnorthstack-websitedocker build -t northstack-website --build-arg NEXT_PUBLIC_SITE_URL=https://www.your-domain.com --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-domain.com/api --build-arg NEXT_PUBLIC_DASHBOARD_URL=https://app.your-domain.com .Un problème ?Démarrez l'application
Si le port
3030est pris, changez le nombre à gauche de-p, par exemple-p 3040:3030, et ouvrez plutôt ce port. Avec une API, construisez aussi avecNEXT_PUBLIC_SITE_URL=http://localhost:3040, et ajoutez cette adresse auCORS_ORIGINet auWEBSITE_URLde l'API.Terminaldansnorthstack-websitedocker run -p 3030:3030 northstack-websiteRésultat attendu: localhost:3030Local ouvre le site. L'anglais est sur
Un problème ?/en, l'arabe sur/ar. Construit sans API, un avis Sample data en bas de chaque page le signale.
Avec une API sur votre ordinateur, dans le conteneur localhost désigne le conteneur lui-même. Le navigateur atteint toujours l'API, mais pour que le paiement et son reçu soient complets quand le serveur les rend, indiquez au serveur du site où se trouve l'API. --add-host fait fonctionner host.docker.internal sous Linux ; Docker Desktop l'a déjà.
northstack-websitedocker run -p 3030:3030 -e API_INTERNAL_URL=http://host.docker.internal:8000/api --add-host=host.docker.internal:host-gateway northstack-websiteLancer le tableau de bord de l'espace de travail
Ce pack est le tableau de bord de l'espace de travail, seul. Sans API, il fonctionne sur ses données d'exemple intégrées dans votre navigateur, où n'importe quel mot de passe permet de se connecter. Pour utiliser plutôt l'API Northstack, construisez-le avec l'adresse de l'API. L'API est un pack séparé et n'est pas dans ce téléchargement.
Téléchargez votre template
Ouvrez Mes templates et téléchargez le ZIP Workspace Dashboard.
Décompressez et ouvrez le dossier
Terminalunzip -q northstack-dashboard-*.zip cd northstack-dashboard lsRésultat attendu: Le dossier contient un
Un problème ?Dockerfile, unpackage.jsonet le guideQUICKSTART.md.Construisez l'image
Seul, sans API : le
NEXT_PUBLIC_API_BASE_URLvide construit le tableau de bord sur ses données d'exemple.Terminaldansnorthstack-dashboarddocker build -t northstack-dashboard --build-arg NEXT_PUBLIC_API_BASE_URL= .Avec l'API Northstack sur
http://localhost:8000/api(ses mises à jour en direct surhttp://localhost:8000) et le site surhttp://localhost:3030, construisez sans arguments :Terminaldansnorthstack-dashboarddocker build -t northstack-dashboard .Avec votre propre API et vos propres domaines, indiquez les adresses par lesquelles le navigateur les atteint :
Terminaldansnorthstack-dashboarddocker build -t northstack-dashboard --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-domain.com/api --build-arg NEXT_PUBLIC_BASE_URL=https://app.your-domain.com --build-arg NEXT_PUBLIC_WEBSITE_URL=https://www.your-domain.com .Un problème ?Démarrez-le et connectez-vous
Si le port
3031est pris, changez le nombre à gauche de-p, par exemple-p 3041:3031, et ouvrez plutôt ce port. Avec une API, construisez aussi avecNEXT_PUBLIC_BASE_URL=http://localhost:3041, ajoutez cette adresse auCORS_ORIGINde l'API, et définissez-la commeDASHBOARD_URLetFRONTEND_URLde l'API.Terminaldansnorthstack-dashboarddocker run -p 3031:3031 northstack-dashboardRésultat attendu: localhost:3031Local ouvre le formulaire de connexion. Sur les données d'exemple, n'importe quel mot de passe permet de se connecter, et
Un problème ?owner@northstack.exampleouvre l'espace de travail du propriétaire. Avec une API initialisée, connectez-vous avecowner@northstack.exampleet le mot de passeNorthstackDemo26!.
Lancer l'API
Ce pack est l'API NestJS seule, sur un fichier SQLite gardé dans un volume Docker, northstack-api-data, avec les fichiers téléversés. Le site public et le tableau de bord de l'espace de travail sont des packs séparés et ne sont pas dans ce téléchargement.
Décompressez et ouvrez le dossier
Terminalunzip -q northstack-backend-*.zip cd northstack-backend lsRésultat attendu: Le dossier contient un
Un problème ?Dockerfile, undocker-entrypoint.sh, unpackage.jsonet le guideQUICKSTART.md.Démarrez-la avec les données d'exemple
Un nouveau volume est initialisé une seule fois avec les espaces de travail d'exemple et les comptes ci-dessous, puis chaque démarrage suivant conserve ce qui s'y trouve. Sur un serveur, partez plutôt à vide avec
-e SEED_SAMPLE_DATA=false(Démarrer à vide). Si le port8000est pris, changez le nombre à gauche de-p, par exemple-p 8010:8000, et ajoutez-e PUBLIC_API_URL=http://localhost:8010 -e PUBLIC_MEDIA_URL=http://localhost:8010/mediapour que les liens qu'elle écrit (médias, téléchargements de factures) utilisent aussi le nouveau port. Vos frontends doivent alors pointer vershttp://localhost:8010/api.Terminaldansnorthstack-backenddocker run -p 8000:8000 -v northstack-api-data:/data northstack-apiRésultat attendu: localhost:8000/
Un problème ?api/ healthLocal répond avec "status":"ok"et"database":"up".
Les comptes du seed sont owner@northstack.example, admin@northstack.example, member@northstack.example, billing@northstack.example, platform@northstack.example et support@northstack.example, tous avec le mot de passe NorthstackDemo26!. Connectez-vous avec POST /api/auth/login, ou depuis un tableau de bord Northstack.
Le conteneur accepte le site sur http://localhost:3030 et le tableau de bord sur http://localhost:3031. Pour d'autres adresses, passez CORS_ORIGIN (les deux, séparées par une virgule), FRONTEND_URL et DASHBOARD_URL (le tableau de bord) et WEBSITE_URL (le site) avec -e. Passez vos clés de la même façon, seulement celles dont vous avez besoin :
northstack-backenddocker run -p 8000:8000 -v northstack-api-data:/data -e GOOGLE_API_KEY=your-key northstack-apiNe passez pas --env-file .env avec une copie de .env.example : il définit NODE_ENV=development par-dessus la valeur de production par défaut de l'image, ce qui permet à l'API de modifier seule le schéma de la base à chaque démarrage. Sans JWT_SECRET à vous, ou avec celui de l'exemple, le conteneur génère un secret et le garde dans le volume, si bien que les connexions survivent à un redémarrage.
Pour repartir de données d'exemple neuves, supprimez d'abord le conteneur (docker rm -f avec son nom), puis le volume avec docker volume rm northstack-api-data.