Ferred uses a pnpm workspace monorepo with three apps:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Carlos-Gnd/FERRED-Inventario-y-Ventas/llms.txt
Use this file to discover all available pages before exploring further.
renderer (React + Vite), server (Express), and electron (desktop wrapper). Getting started requires Node.js v22, pnpm v9+, and a Supabase project for cloud sync — though the system works fully offline without one.
Requisitos previos
| Herramienta | Versión mínima | Notas |
|---|---|---|
| Node.js | v22 LTS | Requerido por Electron v30 y tsx |
| pnpm | v9+ | Gestor de paquetes del monorepo |
| Git | Cualquier versión reciente | Para clonar el repositorio |
Configurar el entorno
Instalar dependencias
Desde la raíz del monorepo, pnpm instalará las dependencias de todos los workspaces a la vez:
Configurar variables de entorno
Copia el archivo de ejemplo y edita los valores con tus credenciales de Supabase:Las variables más importantes para el primer arranque son:
Consulta la página Variables de entorno para la referencia completa.
| Variable | Descripción |
|---|---|
DATABASE_URL | URL pgBouncer de Supabase (puerto 6543) para queries |
DIRECT_URL | URL directa de Supabase (puerto 5432) para migraciones |
JWT_SECRET | Cadena aleatoria de al menos 32 caracteres |
SUPABASE_URL | URL de tu proyecto en Supabase |
SUPABASE_SERVICE_KEY | Clave de servicio de Supabase (con privilegios completos) |
DATABASE_URL, DIRECT_URL, SUPABASE_URL y SUPABASE_SERVICE_KEY son necesarias para el modo online y las migraciones. Si aún no tienes un proyecto en Supabase, puedes omitirlas — el sistema arrancará en modo offline usando SQLite local.Configurar la base de datos
Este comando crea la carpeta Internamente equivale a:
data/, ejecuta las migraciones de Prisma contra Supabase y carga los datos iniciales (seed):Iniciar en desarrollo
Necesitas tres terminales — una por cada app — o usa el comando
all para arrancarlas con concurrently:| Proceso | Puerto | Descripción |
|---|---|---|
dev:server | 3001 | API Express con recarga automática vía tsx watch |
dev:renderer | 5173 | Interfaz React con Hot Module Replacement de Vite |
dev:electron | — | Ventana Electron; espera a que 5173 y 3001 estén listos |
pnpm dev:electron usa wait-on para esperar a que el servidor Express responda en localhost:3001/health y a que Vite esté disponible en localhost:5173 antes de abrir la ventana de Electron. Arranca dev:server y dev:renderer primero.