Saltar al contenido principal
Version: Siguiente

Configuración del entorno de desarrollo local

Esta guía te acompaña en la configuración de un entorno de desarrollo local para lana-bank.

Requisitos previos

  • Nix con flakes habilitado
  • Docker y Docker Compose

Inicio rápido

1. Ingresar al shell de Nix

nix develop

Esto proporciona un shell reproducible con todas las herramientas necesarias: toolchain estable de Rust, Node.js 20, pnpm 10, Python 3.13, herramientas de cliente PostgreSQL, sqlx-cli y Tilt.

2. Iniciar dependencias

make start-deps

Esto inicia los siguientes servicios de Docker:

ServicioPuertoPropósito
core-pg (PostgreSQL)5433Base de datos principal de la aplicación
keycloak8081Proveedor de identidad (OIDC)
keycloak-pg5437Base de datos de Keycloak
oathkeeper4455Gateway de API (validación JWT)
otel-agent4317, 4318Recolector de OpenTelemetry

Para incluir Dagster (pipelines de datos):

DAGSTER=true make start-deps

3. Ejecutar el backend

make setup-db run-server

Esto ejecuta las migraciones de base de datos e inicia el servidor de aplicación Rust.

4. Ejecutar aplicaciones frontend

En terminales separadas:


# Panel de administración

cd apps/admin-panel && pnpm dev

# Portal del cliente

cd apps/customer-portal && pnpm dev

URLs de desarrollo

ServicioURL
Panel de administraciónhttp://admin.localhost:4455
Portal del clientehttp://app.localhost:4455
API GraphQL de administraciónhttp://admin.localhost:4455/graphql
API GraphQL del clientehttp://app.localhost:4455/graphql
Consola de administración de Keycloakhttp://localhost:8081
info

Las APIs GraphQL deben accederse a través de Oathkeeper (puerto 4455) que maneja la validación JWT. Los puertos directos (5253/5254) carecen de contexto de autenticación y no funcionarán correctamente.

tip

Si app.localhost no se resuelve, añade 127.0.0.1 app.localhost y ::1 app.localhost a tu archivo /etc/hosts.

Desarrollo interactivo con Tilt

Para hot-reloading de todos los servicios:

make dev-up

Tilt orquesta servicios Docker + procesos de aplicación locales con recarga en vivo. Detener con:

make dev-down

Comandos comunes

ComandoPropósito
make start-depsIniciar dependencias Docker
make stop-depsDetener dependencias Docker
make reset-depsLimpiar y reiniciar bases de datos
make check-code-rustVerificar que el código Rust compila
make check-code-appsLint, verificación de tipos y construcción de frontends
cargo nextest runEjecutar todas las pruebas Rust
cargo nextest run -p <crate>Ejecutar pruebas para un solo crate
make e2eEjecutar pruebas end-to-end BATS
make sdlRegenerar esquemas GraphQL
make sqlx-prepareActualizar caché de consultas offline SQLx
aviso

Anteponer SQLX_OFFLINE=true a los comandos directos de cargo para usar la caché de consultas offline en lugar de requerir una base de datos en ejecución.

Acceso a la base de datos

Conectar a la base de datos PostgreSQL principal:

psql postgres://user:password@localhost:5433/pg

Ejecutar migraciones manualmente:

cargo sqlx migrate run

Las migraciones se encuentran en lana/app/migrations/.

Variables de entorno

El shell Nix establece automáticamente las variables de entorno clave:

VariableValorPropósito
PG_CONpostgres://user:password@localhost:5433/pgConexión a la base de datos
ENCRYPTION_KEY(clave de desarrollo)Clave de cifrado para secretos
KC_URLhttp://localhost:8081URL de Keycloak
REALM(configurado por realm)Realm de Keycloak