hola@amaren.ventures

Dev Hub

Cómo levantar el proyecto

De cero a todo funcionando en local. Sigue los pasos en orden la primera vez; después te bastará con make dev.

1. Prerequisitos

Antes de tocar código, necesitas instalar esto. Sólo hay que hacerlo una vez.

  • · Docker Desktop (última versión estable).
  • · Node 20 o superior. Verifica con node -v.
  • · pnpm 9. Instala con npm install -g pnpm@9.
  • · Python 3.12 o superior. Recomendado con pyenv.
  • · JDK 17 (para Android). Instala con brew install openjdk@17.
  • · Android Studio (solo si vas a tocar el launcher).
  • · make (ya viene en macOS, o brew install make).

2. Primera vez — instalación

Coloca estos comandos en orden. Entre uno y otro no hagas nada más.

Ir a la raíz del proyecto.

cd /Users/asiergonzalezgomez/Development/amaren-ventures-apps/blank-phone

Copiar el fichero de variables de entorno y editarlo con tus claves.

cp .env.example .env

Instalar dependencias de Node y Python.

make install

Levantar postgres, redis, traefik y el resto de infra.

make docker-up

Crear los schemas de base de datos de los 8 servicios.

make migrate

Cargar datos de prueba (familias, dispositivos, políticas).

make seed

3. Ejecutar el stack completo

Un solo comando arranca todo en paralelo vía Turborepo.

make dev

Cuando veas todos los ready en verde, abre http://localhost:3001 y estarás aquí mismo.

4. Ejecutar servicios individuales

Si solo quieres tocar un servicio, arráncalo suelto. Útil cuando estás depurando y no quieres el ruido de los demás.

ServicioComandoURL de salud
parent-dashboardpnpm --filter parent-dashboard devhttp://localhost:5173
public-websitepnpm --filter public-website devhttp://localhost:3000
intranetpnpm --filter intranet devhttp://localhost:3001
auth-servicecd backend/auth-service && uvicorn app.main:app --reload --port 8000http://localhost:8000/healthz
device-servicecd backend/device-service && uvicorn app.main:app --reload --port 8001http://localhost:8001/healthz
policy-servicecd backend/policy-service && uvicorn app.main:app --reload --port 8002http://localhost:8002/healthz
family-servicecd backend/family-service && uvicorn app.main:app --reload --port 8003http://localhost:8003/healthz
usage-servicecd backend/usage-service && uvicorn app.main:app --reload --port 8004http://localhost:8004/healthz
billing-servicecd backend/billing-service && uvicorn app.main:app --reload --port 8005http://localhost:8005/healthz
notification-servicecd backend/notification-service && uvicorn app.main:app --reload --port 8006http://localhost:8006/healthz
content-filter-servicecd backend/content-filter-service && uvicorn app.main:app --reload --port 8007http://localhost:8007/healthz
agent-apicd agents && uvicorn api.main:app --reload --port 8001http://localhost:8001/healthz

5. Android

El launcher es el único trozo que no arranca con make dev. Requiere Android Studio y un Moto G conectado por USB con depuración activada.

Abrir el proyecto.

open -a 'Android Studio' android/launcher

Compilar APK de debug desde terminal.

cd android/launcher && ./gradlew :app:assembleDebug

Instalar en el teléfono conectado.

adb install -r android/launcher/app/build/outputs/apk/debug/app-debug.apk

Hacer a BLANK el device owner (solo una vez, y con cuenta Google recién borrada).

adb shell dpm set-device-owner com.blankphone.launcher/.admin.BlankDeviceAdminReceiver

6. Parar todo

Cuando termines, cierra las terminales con Ctrl+C y baja la infraestructura.

make docker-down

7. Troubleshooting común

  • El puerto 3000 (o cualquier otro) está ocupado.

    Busca el proceso con lsof -i :3000 y mátalo con kill -9 <PID>. Si es algo que ya tenías arrancado, ciérralo desde donde lo lanzaste.

  • Docker Desktop no arranca o se queda colgado.

    Cierra Docker Desktop del todo, reinicia el Mac y vuelve a abrirlo. Si persiste, en Docker Desktop > Troubleshoot elige "Reset to factory defaults".

  • make migrate falla con "relation does not exist".

    Probablemente la base de datos aún no está lista. Asegúrate de que docker-up terminó y espera unos segundos. Si sigue, borra el volumen con make docker-reset y vuelve a empezar.

  • Error de certificado al llamar al gateway desde el teléfono.

    En desarrollo usamos certificados de Traefik autofirmados. En el teléfono hay que añadirlos como "trusted" o usar el build de debug que los ignora.

  • pnpm install falla con errores de permisos.

    Borra node_modules y pnpm-lock.yaml, comprueba que usas Node 20 con node -v, y vuelve a correr pnpm install. Evita sudo.