📦 Instalación en el host (Pipenv)
Esta guía instala LibreFolio directamente en tu máquina con Python, Node.js y Pipenv, sin Docker: útil en máquinas con pocos recursos y el primer paso hacia un entorno de desarrollo.
Para Docker, consulta la Instalación en el Manual de usuario o la Guía Avanzada de Docker.
✅ Requisitos previos
Instala primero estas tres herramientas.
🐍 Python 3.13
El backend necesita Python 3.13, la versión establecida en el Pipfile del proyecto.
- macOS: Instala usando Homebrew:
- Windows: Descarga el instalador desde python.org (asegúrate de marcar "Add Python to PATH").
- Linux (Ubuntu/Debian):
📦 Node.js 24+
Node.js compila la interfaz web.
- macOS: Instala mediante Homebrew:
- Windows/Linux: Instala usando nvm (Linux/macOS) o nvm-windows (Windows), o descárgalo directamente desde nodejs.org.
📋 Pipenv
Pipenv gestiona el entorno virtual de Python y sus paquetes.
- Todas las plataformas:
Nota: asegúrate de que las rutas de los binarios del directorio base del usuario (p. ej.,
~/.local/binen Linux/macOS o%APPDATA%\Pythonen Windows) estén añadidas a la variablePATHde tu shell.
📋 Instrucciones de configuración
Los comandos se ejecutan en el entorno de Pipenv
Los comandos de dev.py comienzan con pipenv run, que los ejecuta en el entorno virtual del proyecto. También puedes entrar en él una vez con pipenv shell y luego escribir ./dev.py … sin el prefijo.
📥 1. Descargar el proyecto
O descarga el paquete de la última versión desde Versiones de GitHub y descomprímelo.
🐍 2. Crear el entorno de Python
Haz esto antes de cualquier comando dev.py: dev.py necesita estos paquetes de Python y, sin ellos, se detiene con un ModuleNotFoundError.
📦 3. Instalar las demás dependencias
En orden, instala:
- los paquetes de Python de nuevo, con
pipenv install --dev; - las herramientas del proyecto, con
npm ci; - las dependencias de la interfaz web, con
npm cienfrontend/; - el navegador Chromium de Playwright, usado por las pruebas de extremo a extremo y las capturas de pantalla de la documentación. Si solo falla esta descarga, la instalación se completa igualmente.
⚙️ 4. Configurar el entorno
Los valores predeterminados funcionan tal cual. Las variables principales:
| Variable | Predeterminado | Descripción |
|---|---|---|
PORT |
6040 |
Puerto de escucha del servidor. |
LIBREFOLIO_DATA_DIR |
./backend/data/prod |
Directorio donde se almacenan la base de datos, los archivos subidos y los registros (consulta Estructura del sistema de archivos). |
LOG_LEVEL |
INFO |
Verbosidad del registro. |
Las demás variables se describen en la Guía de variables de entorno.
🚀 5. Iniciar el servidor
El primer inicio compila la interfaz web y la documentación, por lo que tarda unos minutos. Luego abre http://localhost:6040. Para los procesos worker, otro puerto y las demás opciones, consulta Herramientas de línea de comandos.
👤 6. Crear tu cuenta
Abre LibreFolio en tu navegador y elige Regístrate aquí debajo del formulario de inicio de sesión: la primera cuenta registrada se convierte en administrador. Para gestionar usuarios desde la terminal, consulta Herramientas de línea de comandos.
🗃️ Inicialización y restablecimiento de la base de datos
No hay nada que inicializar a mano: en cada inicio, el servidor crea la base de datos si falta y aplica cualquier migración pendiente.
Para empezar de nuevo desde una base de datos vacía, usa una de las dos formas siguientes.
Se pierden todos los datos
Ambas formas eliminan la base de datos para siempre: usuarios, brókeres, transacciones y configuración. Haz una copia de seguridad primero (consulta Copia de seguridad).
🧹 Con dev.py
Detén el servidor (el comando se niega a ejecutarse mientras está activo), luego:
🗑️ A mano
- Detén el servidor si está en ejecución.
- Elimina el archivo de base de datos SQLite (por defecto
backend/data/prod/sqlite/app.db). - Inicia el servidor: crea una base de datos nueva.
Ambas formas reemplazan solo la base de datos: los archivos subidos, los informes del bróker y los registros permanecen en el directorio de datos. Para un inicio completamente desde cero, detén el servidor y elimina todo el directorio de datos en su lugar (por defecto backend/data/prod/): el siguiente inicio lo recrea.