Ejecuta Northstack en local
Pon en marcha tu paquete en tu equipo, con Docker.
Para el paquete Full Stack
Antes de empezar: instala y abre Docker Desktop, o Docker Engine con Compose.
Ver los requisitosDescarga tu plantilla
Abre Mis plantillas y descarga el ZIP de tu paquete.
Resultado esperado: En tus descargas hay un archivo con un nombre como
northstack-full-stack-….zip.Descomprime y abre la carpeta
Abre una terminal donde esté el ZIP, extráelo y entra en la carpeta
northstack-full-stack. En Windows, puedes extraerlo en el Explorador de archivos y abrir después una terminal en la carpeta.Terminalunzip -q northstack-full-stack-*.zip cd northstack-full-stack lsResultado esperado: La carpeta contiene
¿Tienes problemas?back-end,dashboard,websiteydocker-compose.yml, junto aREADME.md,QUICKSTART.mdyLICENSE.md.Inicia las aplicaciones
Construye e inicia la API, el sitio web público y el panel de espacios de trabajo. No hace falta configurar nada antes. El primer inicio construye tres imágenes y carga en la base de datos los espacios de trabajo de ejemplo, lo que tarda unos minutos; los siguientes inicios tardan segundos.
Terminalennorthstack-full-stackdocker compose up --build¿Un puerto ya está en uso?
Si el inicio se detiene con
Un puerto ya está en usoports are not available,address already in useoport is already allocated, otro programa usa el 3030, el 3031 o el 8000. Detén ese programa, o crea un archivo llamado.enven la carpetanorthstack-full-stack, junto adocker-compose.yml, con el puerto que necesites, comoADMIN_PORT=3041(SITE_PORTpara el sitio web,API_PORTpara la API). Ejecuta de nuevodocker compose up --buildy abre la aplicación en su nuevo puerto.Resultado esperado: Los tres servicios siguen en ejecución y el registro deja de desplazarse. Deja esta terminal abierta.
¿Tienes problemas?Abre el sitio web público
Abre localhost:3030Local. El inglés está en
/eny el árabe en/ar. El sitio web no tiene cuentas propias: sus botones de demostración en vivo abren el inicio de sesión del panel.Resultado esperado: El sitio web se abre en su página de inicio. La página de precios vende las dos licencias con el pago propio del sitio, que no cobra a nadie hasta que la API tenga claves de pago.
¿Tienes problemas?Inicia sesión en el panel
Abre localhost:3031Local. Inicia sesión con
owner@northstack.exampley la contraseñaNorthstackDemo26!. Todas las cuentas de ejemplo usan esa contraseña; cámbialas antes de que la pila sea accesible desde internet.Resultado esperado: El panel se abre en el resumen del espacio de trabajo de Forma Studio, con sus proyectos, el uso de este mes, el gráfico de actividad de los proyectos y la lista de lanzamiento.
¿Tienes problemas?
Haz un recorrido
Cómo se ve el espacio de trabajo de ejemplo cuando todo funciona.
| Cuenta | Correo electrónico | Dónde |
|---|---|---|
| Propietario de Forma Studio: todas las páginas y acciones del espacio de trabajo, la facturación, la matriz de roles y la eliminación del espacio; también administrador de Monogram | owner@northstack.example | Panel |
| Administrador: proyectos, equipo e invitaciones, ajustes del espacio de trabajo, claves de API y el registro de actividad; los roles solo en lectura, sin facturación | admin@northstack.example | Panel |
| Miembro: proyectos y tareas, y el asistente; el equipo, los roles y los ajustes en lectura, sin facturación | member@northstack.example | Panel |
| Facturación: la suscripción, los cambios de plan y las facturas; el equipo, los roles y los ajustes en lectura; sin proyectos (el resumen también los omite) y sin asistente | billing@northstack.example | Panel |
| Administrador de la plataforma: todas las organizaciones, usuarios, miembros del personal, roles de plataforma y ajustes | platform@northstack.example | Panel |
| Soporte: todas las páginas de la plataforma en solo lectura, y exportación de informes | support@northstack.example | Panel |
Todas las cuentas inician sesión con la contraseña NorthstackDemo26!. Son solo cuentas de demostración locales: en un servidor, empieza vacío con SEED_SAMPLE_DATA=false y tu propio administrador de la plataforma (Empezar vacío).
Los datos de ejemplo añaden Forma Studio con el plan Pro, con 12 proyectos y sus tableros de tareas, 8 miembros, 2 invitaciones abiertas, tres facturas, una clave de API, la actividad de las últimas semanas y tres conversaciones anteriores con el asistente, y un segundo espacio de trabajo, Monogram, al que el propietario cambia desde el selector de espacios. Tras la administración de la plataforma hay 732 organizaciones en total, así que cada lista y cada cifra se ven llenas. Una cuenta nueva creada en la página de registro pasa por el alta inicial y crea su propio espacio de trabajo.
Detén e inicia de nuevo
Pulsa Ctrl+C en la terminal para detener las aplicaciones, o ejecuta esto desde la carpeta northstack-full-stack. Tus datos, la base de datos y los archivos subidos, se conservan en el volumen northstack-data.
northstack-full-stackdocker compose downVuelve a iniciar con el mismo comando del paso 3. Sin --build, reutiliza las imágenes que ya construiste.
northstack-full-stackdocker compose upConserva tus datos
docker compose down -v también elimina el volumen de datos. El siguiente inicio carga una copia nueva de los espacios de trabajo de ejemplo, y todo lo que creaste desaparece.
Ejecuta el sitio web público
Este paquete es el sitio web público por sí solo. Sin API funciona con sus datos de ejemplo integrados: el formulario de contacto y el pago de licencias responden en tu navegador, y no se envía nada a ninguna parte. Para usar en su lugar la API de Northstack, constrúyelo con la dirección de la API. La API es un paquete aparte y no viene en esta descarga.
Descomprime y abre la carpeta
Terminalunzip -q northstack-website-*.zip cd northstack-website lsResultado esperado: La carpeta contiene un
¿Tienes problemas?Dockerfile, unpackage.jsony la guíaQUICKSTART.md.Construye la imagen
Por sí solo, sin API: el
NEXT_PUBLIC_API_BASE_URLvacío construye el sitio con sus datos de ejemplo.Terminalennorthstack-websitedocker build -t northstack-website --build-arg NEXT_PUBLIC_API_BASE_URL= .Con la API de Northstack en
http://localhost:8000/apiy el panel enhttp://localhost:3031, construye sin argumentos:Terminalennorthstack-websitedocker build -t northstack-website .Con tu propia API y tus propios dominios, los valores
NEXT_PUBLIC_*se compilan en el JavaScript que carga el navegador, así que son argumentos de construcción:Terminalennorthstack-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 .¿Tienes problemas?Inícialo
Si el puerto
3030está ocupado, cambia el número a la izquierda de-p, por ejemplo-p 3040:3030, y abre ese puerto. Con una API, construye también conNEXT_PUBLIC_SITE_URL=http://localhost:3040, y añade esa dirección alCORS_ORIGINy alWEBSITE_URLde la API.Terminalennorthstack-websitedocker run -p 3030:3030 northstack-websiteResultado esperado: localhost:3030Local abre el sitio web. El inglés está en
¿Tienes problemas?/en, el árabe en/ar. Si se construyó sin API, un aviso de datos de ejemplo al final de cada página lo indica.
Con una API en tu equipo, dentro del contenedor localhost es el propio contenedor. El navegador sigue llegando a la API, pero para que el pago y su recibo salgan completos cuando los renderiza el servidor, indica al servidor del sitio web dónde está la API. --add-host hace que host.docker.internal funcione en Linux; Docker Desktop ya lo tiene.
northstack-websitedocker run -p 3030:3030 -e API_INTERNAL_URL=http://host.docker.internal:8000/api --add-host=host.docker.internal:host-gateway northstack-websiteEjecuta el panel de espacios de trabajo
Este paquete es el panel de espacios de trabajo por sí solo. Sin API funciona con sus datos de ejemplo integrados en tu navegador, donde entra cualquier contraseña. Para usar en su lugar la API de Northstack, constrúyelo con la dirección de la API. La API es un paquete aparte y no viene en esta descarga.
Descomprime y abre la carpeta
Terminalunzip -q northstack-dashboard-*.zip cd northstack-dashboard lsResultado esperado: La carpeta contiene un
¿Tienes problemas?Dockerfile, unpackage.jsony la guíaQUICKSTART.md.Construye la imagen
Por sí solo, sin API: el
NEXT_PUBLIC_API_BASE_URLvacío construye el panel con sus datos de ejemplo.Terminalennorthstack-dashboarddocker build -t northstack-dashboard --build-arg NEXT_PUBLIC_API_BASE_URL= .Con la API de Northstack en
http://localhost:8000/api(sus actualizaciones en vivo enhttp://localhost:8000) y el sitio web enhttp://localhost:3030, construye sin argumentos:Terminalennorthstack-dashboarddocker build -t northstack-dashboard .Con tu propia API y tus propios dominios, indica las direcciones por las que el navegador llega a ellos:
Terminalennorthstack-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 .¿Tienes problemas?Inícialo e inicia sesión
Si el puerto
3031está ocupado, cambia el número a la izquierda de-p, por ejemplo-p 3041:3031, y abre ese puerto. Con una API, construye también conNEXT_PUBLIC_BASE_URL=http://localhost:3041, añade esa dirección alCORS_ORIGINde la API y defínela comoDASHBOARD_URLyFRONTEND_URLde la API.Terminalennorthstack-dashboarddocker run -p 3031:3031 northstack-dashboardResultado esperado: localhost:3031Local abre el formulario de inicio de sesión. Con datos de ejemplo entra cualquier contraseña, y
¿Tienes problemas?owner@northstack.exampleabre el espacio de trabajo del propietario. Con una API con datos de ejemplo, inicia sesión conowner@northstack.exampley la contraseñaNorthstackDemo26!.
Ejecuta la API
Este paquete es la API NestJS por sí sola, sobre un archivo SQLite guardado en un volumen de Docker, northstack-api-data, con los archivos subidos. El sitio web público y el panel de espacios de trabajo son paquetes aparte y no vienen en esta descarga.
Descomprime y abre la carpeta
Terminalunzip -q northstack-backend-*.zip cd northstack-backend lsResultado esperado: La carpeta contiene un
¿Tienes problemas?Dockerfile, undocker-entrypoint.sh, unpackage.jsony la guíaQUICKSTART.md.Inícialo con los datos de ejemplo
Un volumen nuevo se carga una sola vez con los espacios de trabajo de ejemplo y las cuentas de abajo, y cada inicio posterior conserva lo que hay. En un servidor, inícialo vacío con
-e SEED_SAMPLE_DATA=false(Empezar vacío). Si el puerto8000está ocupado, cambia el número a la izquierda de-p, por ejemplo-p 8010:8000, y añade-e PUBLIC_API_URL=http://localhost:8010 -e PUBLIC_MEDIA_URL=http://localhost:8010/mediapara que los enlaces que escribe (archivos, descargas de facturas) usen también el nuevo puerto. Tus frontends deberán entonces apuntar ahttp://localhost:8010/api.Terminalennorthstack-backenddocker run -p 8000:8000 -v northstack-api-data:/data northstack-apiResultado esperado: localhost:8000/
¿Tienes problemas?api/ healthLocal responde con "status":"ok"y"database":"up".
Las cuentas de ejemplo son owner@northstack.example, admin@northstack.example, member@northstack.example, billing@northstack.example, platform@northstack.example y support@northstack.example, todas con la contraseña NorthstackDemo26!. Inicia sesión con POST /api/auth/login, o desde un panel de Northstack.
El contenedor acepta el sitio web en http://localhost:3030 y el panel en http://localhost:3031. En otras direcciones, pasa con -e CORS_ORIGIN (ambas, separadas por comas), FRONTEND_URL y DASHBOARD_URL (el panel) y WEBSITE_URL (el sitio web). Pasa tus claves del mismo modo, solo las que necesites:
northstack-backenddocker run -p 8000:8000 -v northstack-api-data:/data -e GOOGLE_API_KEY=your-key northstack-apiNo pases --env-file .env con una copia de .env.example: define NODE_ENV=development por encima del valor de producción de la imagen, lo que permite que la API cambie el esquema de la base de datos por sí sola en cada inicio. Sin un JWT_SECRET propio, o con el de ejemplo, el contenedor genera un secreto y lo guarda en el volumen, así que los inicios de sesión sobreviven a un reinicio.
Para empezar de nuevo con datos de ejemplo recientes, elimina primero el contenedor (docker rm -f con su nombre) y luego borra el volumen con docker volume rm northstack-api-data.