Ir al contenido

Configuración y Entorno

Criptofolio se configura a través de archivos de variables de entorno (.env para desarrollo local, .env.production para producción). Al tratarse de una arquitectura local-first, estas variables controlan la ubicación de los archivos de base de datos, los parámetros del motor analítico y las políticas de seguridad.


📑 Referencia Completa de Variables de Entorno

Sección titulada «📑 Referencia Completa de Variables de Entorno»

Variables del Backend (apps/backend o .env en la raíz)

Sección titulada «Variables del Backend (apps/backend o .env en la raíz)»
Variable Tipo Valor por Defecto Descripción
PORT number 3001 Puerto HTTP donde escucha el servidor API de Hono.
CRIPTOFOLIO_DATA_DIR string Raíz del Workspace Carpeta base donde residen todas las bases de datos. Si se define, las rutas relativas se anclan a este directorio.
LEDGER_DB_PATH string criptofolio_ledger.db Ruta al ledger transaccional SQLite con operaciones Spot/Futuros y registros de auditoría.
VAULT_DB_PATH string criptofolio.db Ruta a la base de datos SQLite cifrada donde se almacenan las credenciales con AES-256-GCM.
DUCKDB_PATH string fiscal.duckdb Ruta a la base de datos DuckDB OLAP para el cálculo vectorizado de impuestos y riesgo.
DUCKDB_POOL_SIZE number 4 Número de conexiones de lectura en pool sobre la instancia única de DuckDB.
PARQUET_DATA_PATH string data/historical/prices Directorio con las series temporales de precios históricos en formato .parquet particionado por Hive.
MOCK_MODE boolean false En true, DuckDB y SQLite corren en :memory:, ignorando el disco para pruebas rápidas.
CRIPTO_MASTER_KEY string undefined Clave opcional de 32 bytes en Base64 para entornos headless o contenedores Docker.

Variable Tipo Valor por Defecto Descripción
VITE_API_URL string http://localhost:3001 URL base consumida por el cliente RPC de Hono (BffClient.ts).
VITE_APP_LANG string es Idioma inicial de la interfaz. Valores admitidos: es, en.

Criptofolio incorpora un sistema de diccionarios tipados sin dependencias externas, ubicado en apps/frontend/src/i18n/.

Modifica VITE_APP_LANG en tu archivo .env y reinicia el servidor de desarrollo:

Ventana de terminal
VITE_APP_LANG=es # Español
# o
VITE_APP_LANG=en # Inglés
  1. Crea el archivo de diccionario apps/frontend/src/i18n/dictionaries/fr.ts.
  2. Implementa la interfaz I18nDictionary traduciendo las claves desde en.ts.
  3. Registra el nuevo diccionario en apps/frontend/src/core/infrastructure/i18n/EnvI18nAdapter.ts:
    import { en } from '@/i18n/dictionaries/en';
    import { es } from '@/i18n/dictionaries/es';
    import { fr } from '@/i18n/dictionaries/fr';
    const dictionaries: Record<string, I18nDictionary> = { en, es, fr };
  4. Define VITE_APP_LANG=fr en apps/frontend/.env.

Con la configuración estándar, los archivos de almacenamiento se organizan de la siguiente manera:

criptofolio/
├── criptofolio_ledger.db # Ledger transaccional SQLite OLTP primario (Transacciones, Cuentas)
├── criptofolio_ledger.db-wal # SQLite Write-Ahead Log
├── criptofolio.db # Bóveda cifrada de credenciales API
├── fiscal.duckdb # Base de datos DuckDB OLAP (Cadena derivada FIFO)
├── fiscal.duckdb.wal # WAL de DuckDB
└── data/
└── historical/
└── prices/ # Series temporales Parquet particionadas con Hive
├── year=2024/
├── year=2025/
└── year=2026/
└── month=01/
└── btc_eur.parquet