mseller docs

Instalar dependencias

Instalar paquetes y configurar archivos .env en cada repo.

mseller-firebase y mseller-cloud traen cada uno un script scripts/bootstrap-dev que verifica las herramientas, copia .env.example a .env (si no existe) e instala las dependencias de ese repo. mseller-api ya no tiene un script propio — su Postgres y sus migraciones se levantan junto con el resto del stack desde dev-stack/bootstrap.sh en el paso siguiente.

macOS / Linux / WSL: la primera vez que clonas el repo, el script puede no tener permiso de ejecución (zsh: permission denied). En ese caso corré chmod +x scripts/bootstrap-dev.sh una sola vez antes de invocarlo. Solo necesitás hacerlo una vez por repo.

mseller-api

Este repo no tiene un script de bootstrap propio: Postgres, migraciones y el emulador de Firebase se levantan todos juntos desde el dev-stack en el paso Correr localmente. Por ahora solo asegurate de tener el SDK de .NET 10 instalado (lo verifica ese paso) y, si quieres adelantarte, copiá el archivo de entorno:

cd ~/workspace/mseller/mseller-api
cp -n .env.example .env   # solo si todavía no existe

./dev-stack/bootstrap.sh también copia el .env la primera vez que lo corres, así que este paso es opcional.

mseller-firebase

cd ~/workspace/mseller/mseller-firebase
chmod +x scripts/bootstrap-dev.sh   # solo la primera vez
./scripts/bootstrap-dev.sh

Instala las dependencias en functions/ y verifica que firebase-tools y la JRE estén disponibles.

mseller-cloud

Este repo usa Yarn (no npm). Si no lo tienes: npm install -g yarn (clásico) o seguí la guía oficial.

cd ~/workspace/mseller/mseller-cloud
chmod +x scripts/bootstrap-dev.sh   # solo la primera vez
./scripts/bootstrap-dev.sh

Corre yarn install --frozen-lockfile y copia .env.example a .env.

Variables de entorno sensibles

Los archivos .env.example que se copian traen valores por defecto que funcionan con el emulador local — no necesitas generar llaves para empezar a desarrollar.

La llave de encripción que usa getUserProfileV3 para encriptar el perfil del usuario tiene un valor público de desarrollo (0123456789abcdef...) que coincide entre mseller-firebase y mseller-cloud por diseño.

Para producción, los valores reales viven en:

  • Firebase Secrets ManagerMAILJET_API_KEY, MAILJET_API_SECRET, ENCRYPTION_KEY. Configurados con firebase functions:secrets:set.
  • GitHub Actions secrets — credenciales para desplegar (la cuenta de servicio github-deploy).
  • Azure Key Vault — secretos de la API .NET (Stripe, Datadog, etc.).

No necesitas tocar ninguno de esos para correr el stack localmente.

Solución de problemas comunes

zsh: permission denied: ./scripts/bootstrap-dev.sh

El script fue clonado sin el bit de ejecución. Dale permisos una vez:

chmod +x scripts/bootstrap-dev.sh

Y volvé a correr ./scripts/bootstrap-dev.sh. Como alternativa puntual podés invocarlo con bash ./scripts/bootstrap-dev.sh sin cambiar permisos.

npm install o yarn install falla con error de versión de Node

Estás usando una versión de Node que no es la 22.x. Verifica:

node --version

Si usas nvm, corre nvm use en cada repo (cada uno tiene su .nvmrc).

dotnet restore falla con "Project file does not exist"

Asegúrate de estar dentro del directorio mseller-api. Si el comando intenta restaurar mseller-core-api.sln, tu clone es de antes de la renombrada — haz git pull origin main.

firebase --version no encuentra el comando

Lo instalaste con npm install -g firebase-tools pero tu PATH no incluye los binarios globales de npm. Corre:

npm config get prefix

y añade <ese path>/bin a tu PATH.

Próximo paso

Correr localmente →