Saltar al contenido principal
Version: 0.52.0-rc.1

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 habilitados
  • Docker y Docker Compose

Inicio Rápido

1. Ingresar al Shell de Nix

nix develop

Esto proporciona un shell reproducible con todas las herramientas requeridas: cadena de herramientas Rust estable, 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
oathkeeper4455Puerta de enlace API (validación JWT)
otel-agent4317, 4318Recolector 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 las 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 resuelve, agrega 127.0.0.1 app.localhost y ::1 app.localhost a tu archivo /etc/hosts.

Desarrollo Interactivo con Tilt

Para recarga en caliente de todos los servicios:

make dev-up

Tilt orquesta servicios Docker + procesos de aplicación locales con recarga en vivo. Detén 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 compilació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 de SQLx
aviso

Antepón 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