Instalación y despliegue (para quien instala)
Requisitos, base de datos, variables de entorno y puesta en producción.
Requisitos
- Servidor con Node.js 22 y PostgreSQL 13+ (o Docker).
- El archivo de entorno con
DATABASE_URLapuntando a tu base ySESSION_SECRET(obligatorio: genéralo conopenssl rand -base64 32; la app no arranca sin él). - Correo (
SMTP_*en el mismo archivo): funciona con Gmail usando una contraseña de aplicación (cuenta de Google › Seguridad › verificación en 2 pasos › contraseñas de aplicación). Con eso, los consolidados automáticos llegan al contador y las notificacionesemailse envían de verdad; sin SMTP, todo queda en el log del worker.
Puesta en marcha
- Crea la base y aplica el esquema:
createdb --encoding=UTF8 nailscontrol && psql -d nailscontrol -f db/ddl_nailscontrol.txt. - Aplica los alters acumulados en orden (todos los
db/alter_*.txt, alfanuméricamente:alter_auth_v2→ … →alter_wa_username_v1). Son idempotentes: puedes re-ejecutarlos sin daño. npm install && npm run build && npm start. Ejecuta el build con el mismo usuario que corre la app (no como root): si.next/queda con archivos de root, el siguiente build falla con EACCES — se arregla consudo rm -rf .next.- Crea el primer administrador visitando
/setupen tu dominio (solo aparece cuando no existe ninguno).
Para mostrar la plataforma (demo)
npm run demo levanta una instancia con datos de muestra en el puerto 4017, sin tocar tu base real. npm run demo:prod la sirve en modo producción.
Tareas automáticas
Ejecuta npm run worker junto a la app (pm2/systemd) para recordatorios de citas, sugerencias de retoque y avisos de mantenimiento.
Copias de seguridad
Además del respaldo JSON desde Finanzas, programa pg_dump diario de la base. Ese archivo + los archivos de uploads son todo lo que necesitas para restaurar.