Saltar al contenido principal
Version: 0.57.0-rc.110

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 y sqlx-cli.

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
datawarehouse-pg (PostgreSQL)5434Almacén de datos para informes
keycloak8081Proveedor de identidad (OIDC)
keycloak-pg5437Base de datos de Keycloak
oathkeeper4455Puerta de enlace de API (validación JWT)
otel-agent4317, 4318Recolector de OpenTelemetry

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

URLs de Desarrollo

ServicioURL
Panel de Administraciónhttp://admin.localhost:4455
API GraphQL de Administraciónhttp://admin.localhost:4455/graphql
API GraphQL de 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 de 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 Process-Compose

Para un stack todo-en-uno en primer plano (dependencias, backend y panel de administración) con un TUI en vivo para logs y reinicios:

make dev-deps-and-app

Detén el stack del worktree con:

make dev-down

Comandos Comunes

ComandoPropósito
make start-depsIniciar dependencias de Docker
make stop-depsDetener dependencias de Docker
make reset-depsLimpiar y reiniciar bases de datos
make check-code-rustVerificar que el código Rust compila
make check-code-appsLintear, verificar tipos y compilar frontends
cargo nextest runEjecutar todas las pruebas de Rust
cargo nextest run -p <crate>Ejecutar pruebas para un solo crate
make e2eEjecutar pruebas end-to-end de 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

Conéctate a la base de datos principal de PostgreSQL:

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

Ejecuta migraciones manualmente:

cargo sqlx migrate run

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

Variables de Entorno

El shell de 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