mseller docs

Correr localmente

Levantar todo el stack en tu máquina.

Docker Desktop tiene que estar corriendo

Postgres y los emuladores de Firebase corren en contenedores. Antes de empezar, abrí Docker Desktop y esperá a ver Engine running en la barra de estado.

¿No lo tenés instalado? Bajalo desde docker.com/products/docker-desktop (o seguí la sección de tu OS en Prerequisitos). Es la forma recomendada en macOS, Windows y Linux con escritorio — incluye el daemon, la CLI y docker compose en una sola instalación.

Windows: usá WSL 2

En Windows todos los comandos bash de esta página (incluido ./dev-stack/bootstrap.sh) corren adentro de WSL 2 + Ubuntu, no en PowerShell ni en CMD. Si todavía no tenés WSL, seguí la sección de Windows en Prerequisitos.

Una vez que tengas WSL listo:

  1. Abrí una terminal de Ubuntu desde el menú Inicio (no PowerShell).

  2. Asegurate de que Docker Desktop tenga habilitada la integración con tu distro: Docker Desktop → Settings → Resources → WSL integration → Ubuntu (activá el toggle y dale Apply & Restart).

  3. Cloná los repos dentro del filesystem de WSL — ~/workspace/mseller/...no dentro de /mnt/c/.... Los I/O contra el filesystem de Windows son varias veces más lentos y rompen watchers de Next.js y dotnet watch.

  4. Verificá que Docker funcione desde Ubuntu:

    docker run --rm hello-world

    Si imprime Hello from Docker!, la integración está OK.

A partir de acá, todos los comandos bash, dotnet, yarn y docker funcionan idénticos en macOS, Linux y WSL — el resto de la página no distingue entre ellos.

Levantar el stack

Una sola entrada: dev-stack/bootstrap.sh desde mseller-api. Levanta Postgres y los emuladores de Firebase en Docker, corre las migraciones y te imprime qué arrancar nativamente.

cd ~/workspace/mseller/mseller-api
./dev-stack/bootstrap.sh

Esto va a:

  1. Verificar que tengas los repos hermanos (mseller-firebase, mseller-cloud).
  2. Copiar .env.example.env en cada repo si no existe.
  3. Levantar Postgres y los emuladores de Firebase en Docker.
  4. Correr migraciones y seed inicial.

Cuando termina, te imprime las URLs:

ServicioURL
Emulator UIhttp://localhost:4000
Firestorelocalhost:8080
Authlocalhost:9099
Functionslocalhost:9999
Postgreslocalhost:5433

Levantar las APIs y la UI nativamente

Las APIs .NET y el UI Next.js corren fuera de Docker — más rápido, breakpoints nativos en VS Code, menos disco. En terminales separadas:

# Terminal 1: Portal API
cd ~/workspace/mseller/mseller-api
dotnet run --project Portal.Api      # http://localhost:5186

# Terminal 2: UI
cd ~/workspace/mseller/mseller-cloud
yarn dev                              # http://localhost:3000

yarn dev apunta al emulador local de Firebase y a la API local en localhost:5186 por defecto. Si quieres otro target, hay variantes (yarn dev:remote, yarn dev:firebase, etc.) en el README del repo.

Abre http://localhost:3000 e inicia sesión con el usuario seed (verifica mseller-firebase/docs/EMULATORS.md para las credenciales).

Verificar que todo está arriba

cd ~/workspace/mseller/mseller-api
./dev-stack/verify-stack.sh

Imprime el estado de cada servicio. Debe terminar con código 0.

Trabajar en un solo servicio

Aun cuando solo estés tocando una parte del stack, dejá el dev-stack arriba — los emuladores y Postgres consumen poca CPU y muchas pruebas (login, perfil de usuario, integraciones cross-repo) los necesitan disponibles. Después arrancá solo el proceso nativo que te interese (por ejemplo dotnet run --project Portal.Api o yarn dev en mseller-cloud).

Resetear estado

Si algo se enredó:

cd ~/workspace/mseller/mseller-api/dev-stack
docker compose -f docker-compose.dev.yml down -v   # borra volúmenes
./bootstrap.sh                                     # recrea + reseed

VS Code F5

Cada repo trae configuraciones de F5 listas. Abre el repo en VS Code y presiona F5 para:

  • mseller-api — elegir cuál API depurar (Portal, Ingestion, Consumo).
  • mseller-firebase — "Debug Functions Emulator" — adjunta el debugger de Node al emulador (puerto 9229).
  • mseller-cloud — "Debug full stack (emulator mode)" — Next.js + Chrome con breakpoints en server y cliente.

Próximo paso

Arquitectura del stack →