Configuración y Entorno
⚙️ Configuración y Entorno
Sección titulada «⚙️ 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. |
Variables del Frontend (apps/frontend/.env)
Sección titulada «Variables del Frontend (apps/frontend/.env)»| 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. |
🌍 Internacionalización (i18n)
Sección titulada «🌍 Internacionalización (i18n)»Criptofolio incorpora un sistema de diccionarios tipados sin dependencias externas, ubicado en apps/frontend/src/i18n/.
Configurar el Idioma Activo
Sección titulada «Configurar el Idioma Activo»Modifica VITE_APP_LANG en tu archivo .env y reinicia el servidor de desarrollo:
VITE_APP_LANG=es # Español# oVITE_APP_LANG=en # InglésAñadir un Nuevo Idioma (ej. Francés fr)
Sección titulada «Añadir un Nuevo Idioma (ej. Francés fr)»- Crea el archivo de diccionario
apps/frontend/src/i18n/dictionaries/fr.ts. - Implementa la interfaz
I18nDictionarytraduciendo las claves desdeen.ts. - 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 }; - Define
VITE_APP_LANG=frenapps/frontend/.env.
📁 Jerarquía de Almacenamiento en Disco
Sección titulada «📁 Jerarquía de Almacenamiento en Disco»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