Ejecuta Northstack en local
Instala e inicia cada aplicación con Node.js y Yarn, una terminal por aplicación.
Para el paquete Full Stack
Antes de empezar: instala Node.js 22.13 o una versión 22 posterior, o Node.js 24.11 o más reciente, y ejecuta corepack enable una vez (en Node.js 25 y posteriores, que no incluyen Corepack, ejecuta antes npm install -g corepack). No hace falta un servidor de base de datos.
Abre cada terminal donde esperan los comandos de abajo: dentro de northstack-full-stack para el full stack, o junto a la carpeta de la aplicación para el paquete Backend API.
Antes de empezar: instala Node.js 22.9 o más reciente y ejecuta corepack enable una vez (en Node.js 25 y posteriores, que no incluyen Corepack, ejecuta antes npm install -g corepack).
Abre la terminal junto a la carpeta de la aplicación, donde extrajiste el ZIP.
| Aplicación | Carpeta | Dirección |
|---|---|---|
| API | back-end | localhost:8000Local |
| Panel de espacios de trabajo | dashboard | localhost:3031Local |
| Sitio web público | website | localhost:3030Local |
Inicia primero la API: el panel lee de ella todos sus datos, y el formulario de contacto y el pago de licencias del sitio web la llaman.
Inicia la API
Instala y configura
.env.examplefunciona tal cual en tu propio equipo: SQLite en./database.sqlite, la API en el puerto8000, y el sitio web (http://localhost:3030) y el panel (http://localhost:3031) con permiso para llamarla.Terminalcorepack enable cd back-end yarn install cp .env.example .env¿Tienes problemas?Crea la base de datos
yarn seedcreadatabase.sqlitey sus tablas, los roles y ajustes de la plataforma, el espacio de trabajo de ejemplo Forma Studio (12 proyectos con sus tableros, 8 miembros, 2 invitaciones, una suscripción Pro con tres facturas, una clave de API, la actividad de las últimas semanas y tres conversaciones con el asistente), un segundo espacio de trabajo para su propietario, y 732 organizaciones detrás de las cifras de la plataforma. Termina mostrando las cuentas con las que iniciar sesión. Las fechas siguen el día en que cargas los datos. Si lo ejecutas de nuevo sobre una base de datos que ya tiene cuentas, no añade ninguna cuenta ni espacio de trabajo y devuelve sus permisos a los roles de plataforma integrados.Terminalenback-endyarn seedInicia el servidor
Terminalenback-endyarn devResultado esperado: localhost:8000/
¿Tienes problemas?api/ healthLocal responde con "status":"ok"y"database":"up".
Inicia la API
Instala y configura
.env.examplefunciona tal cual en tu propio equipo: SQLite en./database.sqlite, la API en el puerto8000, y el sitio web (http://localhost:3030) y el panel (http://localhost:3031) con permiso para llamarla.Terminalcorepack enable cd northstack-backend yarn install cp .env.example .env¿Tienes problemas?Crea la base de datos
yarn seedcreadatabase.sqlitey sus tablas, los roles y ajustes de la plataforma, el espacio de trabajo de ejemplo Forma Studio (12 proyectos con sus tableros, 8 miembros, 2 invitaciones, una suscripción Pro con tres facturas, una clave de API, la actividad de las últimas semanas y tres conversaciones con el asistente), un segundo espacio de trabajo para su propietario, y 732 organizaciones detrás de las cifras de la plataforma. Termina mostrando las cuentas con las que iniciar sesión. Las fechas siguen el día en que cargas los datos. Si lo ejecutas de nuevo sobre una base de datos que ya tiene cuentas, no añade ninguna cuenta ni espacio de trabajo y devuelve sus permisos a los roles de plataforma integrados.Terminalennorthstack-backendyarn seedInicia el servidor
Terminalennorthstack-backendyarn devResultado esperado: localhost:8000/
¿Tienes problemas?api/ healthLocal responde con "status":"ok"y"database":"up".
Todas las cuentas de ejemplo inician sesión con la contraseña NorthstackDemo26!: owner@northstack.example, admin@northstack.example, member@northstack.example, billing@northstack.example, platform@northstack.example y support@northstack.example.
Inicia el panel de espacios de trabajo
En una segunda terminal:
Instala y configura
El
.envcopiado apunta el panel a la API en el puerto8000y sus actualizaciones de permisos en vivo al mismo servidor.Terminalcd dashboard yarn install cp .env.example .envInícialo e inicia sesión
Terminalendashboardyarn devResultado esperado: localhost:3031Local abre el formulario de inicio de sesión. Inicia sesión con
¿Tienes problemas?owner@northstack.exampley la contraseñaNorthstackDemo26!.
Inicia el panel de espacios de trabajo
La API no forma parte de este paquete. Por sí solo, el panel funciona con sus datos de ejemplo integrados: inícialo sin un archivo .env.
Instálalo e inícialo con datos de ejemplo
Sin
.env,NEXT_PUBLIC_API_BASE_URLestá vacío y cada pantalla responde con los datos de ejemplo en tu navegador.Terminalcorepack enable cd northstack-dashboard yarn install yarn devResultado esperado: localhost:3031Local abre el formulario de inicio de sesión con un aviso de datos de ejemplo al final. Entra cualquier contraseña:
¿Tienes problemas?owner@northstack.exampleabre el espacio de trabajo del propietario, y cada correo de ejemplo abre su rol.Conéctalo a la API
Con la API de Northstack en marcha en
http://localhost:8000/api, detényarn dev, copia los ajustes de ejemplo e inícialo de nuevo. Si tu API funciona en otra parte, defineNEXT_PUBLIC_API_BASE_URL(con/api) yNEXT_PUBLIC_WEBSOCKET_BASE_URL(sin ella) en.envcon su dirección.Terminalennorthstack-dashboardcp .env.example .env yarn devResultado esperado: Inicia sesión con
¿Tienes problemas?owner@northstack.exampley la contraseñaNorthstackDemo26!, que acepta una API con datos de ejemplo. El aviso de datos de ejemplo desaparece.
Inicia el sitio web público
En una tercera terminal:
Instala y configura
Cada valor del
.envcopiado es opcional: apunta el sitio web a la API en el puerto8000y al panel en el3031.Terminalcd website yarn install cp .env.example .envInícialo
Terminalenwebsiteyarn devResultado esperado: localhost:3030Local abre el sitio web en inglés; el árabe está en
¿Tienes problemas?/ar.
Inicia el sitio web público
La API no forma parte de este paquete. Por sí solo, el sitio web funciona con sus datos de ejemplo integrados: inícialo sin un archivo .env.
Instálalo e inícialo con datos de ejemplo
Sin
.env,NEXT_PUBLIC_API_BASE_URLestá vacío: el formulario de contacto y el pago de licencias responden en tu navegador y no envían nada.Terminalcorepack enable cd northstack-website yarn install yarn devResultado esperado: localhost:3030Local abre el sitio web con un aviso de datos de ejemplo al final de cada página; el árabe está en
¿Tienes problemas?/ar.Conéctalo a la API
Con la API de Northstack en marcha en
http://localhost:8000/api, detényarn dev, copia los ajustes de ejemplo e inícialo de nuevo. Si tu API funciona en otra parte, defineNEXT_PUBLIC_API_BASE_URLen.envcon su dirección, incluido/api.Terminalennorthstack-websitecp .env.example .env yarn devResultado esperado: El aviso de datos de ejemplo desaparece, y el formulario de contacto y el pago llegan a tu API.
¿Tienes problemas?
Otros puertos
Sin Docker, los puertos se definen en los archivos. Los scripts dev y start del sitio web en package.json pasan -p 3030; para otro puerto ejecuta yarn next dev -p 3040 (o yarn next start -p 3040 tras yarn build). El panel lee PORT de su .env (PORT=3041), y arranca en el 3031 sin él. Con la API, añade la dirección de un frontend movido al CORS_ORIGIN del .env de la API, y defínela allí como WEBSITE_URL para el sitio web, o como DASHBOARD_URL y FRONTEND_URL para el panel; define el propio NEXT_PUBLIC_SITE_URL o NEXT_PUBLIC_BASE_URL del frontend para que coincida. Para mover la API, define PORT, PUBLIC_API_URL y PUBLIC_MEDIA_URL en su .env con el mismo número, y NEXT_PUBLIC_API_BASE_URL en ambos frontends (también el NEXT_PUBLIC_WEBSOCKET_BASE_URL del panel).
Versión de producción
Las mismas carpetas, construidas una vez y luego iniciadas. Primero configura el .env de la API para producción: con NODE_ENV=production la API nunca cambia las tablas al iniciar, y se niega a iniciar mientras JWT_SECRET esté vacío o siga con el valor de ejemplo, o mientras CORS_ORIGIN esté vacío.
NODE_ENV=production
JWT_SECRET=paste-the-generated-secret-here
CORS_ORIGIN=http://localhost:3030,http://localhost:3031
FRONTEND_URL=http://localhost:3031
DASHBOARD_URL=http://localhost:3031
WEBSITE_URL=http://localhost:3030
PUBLIC_API_URL=http://localhost:8000
PUBLIC_MEDIA_URL=http://localhost:8000/mediaGenera el secreto con node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". Luego, en la carpeta de la API, constrúyela, crea sus tablas una vez con los datos de ejemplo e iníciala. yarn seed:prod es el yarn seed compilado.
yarn build
yarn seed:prod
yarn start:prodEn un servidor, empieza vacío
yarn seed:prod carga las cuentas de ejemplo con su contraseña publicada, así que úsalo solo en tu propio equipo. En un servidor ejecuta en su lugar yarn admin:create:prod: las tablas y tu propio administrador de la plataforma, sin datos de ejemplo. Tras una actualización, yarn schema:prod lleva las tablas al nuevo código.
Construcción de producción de los frontends
En la carpeta de cada frontend, detén yarn dev, construye una vez e inicia. El sitio web sirve en el 3030 y el panel en el 3031.
yarn build
yarn startLos frontends compilan sus valores NEXT_PUBLIC_* en el momento de la construcción, así que ejecuta yarn build de nuevo tras cambiar .env. Antes de desplegar en cualquier sitio público, lee la guía de despliegue.
Empieza de cero con datos de demostración nuevos
Detén la API, elimina el archivo de la base de datos y vuelve a cargar los datos, en la carpeta de la API. Esto elimina todo lo que creaste.
rm -f database.sqlite* && yarn seedEn PowerShell:
Remove-Item database.sqlite*; yarn seedyarn reset vacía todas las tablas y las conserva, y yarn drop elimina todas las tablas; ejecuta yarn seed después de cualquiera de los dos para llenar de nuevo la base de datos. En MySQL, donde no hay un archivo que borrar, empieza de nuevo con:
yarn reset
yarn seedComandos
| Tarea | API | Panel | Sitio web |
|---|---|---|---|
| Instalar | yarn install | yarn install | yarn install |
| Servidor de desarrollo | yarn dev (8000) | yarn dev (3031) | yarn dev (3030) |
| Versión de producción | yarn build | yarn build | yarn build |
| Inicio en producción | yarn start:prod | yarn start | yarn start |
| Cargar los datos de ejemplo | yarn seed (compilado: yarn seed:prod) | no hace falta | no hace falta |
| Crear o actualizar las tablas, sin datos | yarn schema (compilado: yarn schema:prod) | no hace falta | no hace falta |
| El primer administrador de la plataforma, sin datos de ejemplo | yarn admin:create (compilado: yarn admin:create:prod) | no hace falta | no hace falta |
| Vaciar todas las tablas | yarn reset | no hace falta | no hace falta |
| Eliminar todas las tablas | yarn drop | no hace falta | no hace falta |
| Comprobación de tipos | parte de yarn build | yarn typecheck | yarn typecheck |
| Lint | yarn lint | yarn lint | yarn lint |