Entorno de Desarrollo
Este documento describe cómo configurar y utilizar el entorno de desarrollo local.
Requisitos Previos
- Nix con flakes habilitado
- Docker y Docker Compose
- Git
Configuración
1. Ingresar al Shell de Nix
cd lana-bank
nix develop
2. Iniciar Dependencias
make start-deps
Esto inicia:
- PostgreSQL (puerto 5433)
- Keycloak (puerto 8081)
- Oathkeeper (puerto 4455)
3. Ejecutar Migraciones
cargo sqlx migrate run
4. Iniciar Aplicación
# Ejecutar todos los servidores
cargo run
# O ejecutar el stack interactivo completo bajo process-compose
make dev-deps-and-app
URLs de Servicios
| Servicio | URL |
|---|---|
| Panel de Administración | http://admin.localhost:4455 |
| GraphQL de Administración | http://admin.localhost:4455/graphql |
| GraphQL de Cliente | http://app.localhost:4455/graphql |
| Keycloak | http://localhost:8081 |
Desarrollo con Process-Compose
Desarrollo interactivo con un TUI para logs y reinicios:
# Iniciar dependencias, backend y panel de administración
make dev-deps-and-app
# O adjuntar el TUI a un stack en segundo plano ya en ejecución
make process-compose-tui
# Detener el stack de este worktree
make dev-down
Acceso a la Base de Datos
# Conectar a PostgreSQL
psql -h localhost -p 5433 -U lana -d lana
# Restablecer base de datos
make reset-deps
Desarrollo del Frontend
# Panel de Administración
cd apps/admin-panel
pnpm install
pnpm dev
Variables de Entorno
# .env.local
DATABASE_URL=postgres://lana:lana@localhost:5433/lana
KEYCLOAK_URL=http://localhost:8081
OATHKEEPER_URL=http://localhost:4455
Credenciales de Keycloak
| Dominio | Usuario | Contraseña |
|---|---|---|
| admin | admin | admin |
| customer | test@test.com | test |
Problemas Comunes
Conflictos de Puertos
# Verificar qué está usando un puerto
lsof -i :5433
# Terminar proceso
kill -9 <PID>
Reinicio de Base de Datos
make reset-deps
cargo sqlx migrate run
Problemas de Caché
# Limpiar caché de Rust
cargo clean
# Limpiar caché de pnpm
pnpm store prune