feat: instalador para servidor nuevo + fix migracion 006 en BD vacia

scripts/install.sh automatiza el primer despliegue en un servidor Debian/Ubuntu nuevo: verifica
requisitos (Node.js, npm, cliente mysql, systemd, espacio, puertos libres), pregunta dominio,
puertos y base de datos (MariaDB local auto-instalada o un servidor existente), genera
backend/.env con secretos aleatorios, corre migraciones + catalogos, compila el frontend y
crea/arranca los servicios systemd. No crea usuarios: el primer registro publico se vuelve
superadmin solo (bootstrap ya existente).

Probando el instalador de punta a punta contra una base de datos recien creada goo un bug real:
la migracion 006_seed_it_baseline.sql (datos de ejemplo especificos de LinkedCorp) fallaba por
foreign key al no existir todavia catalogos ni usuario. Corregido para que detecte esa situacion
y quede inerte en instalaciones nuevas, sin tocar el comportamiento ya probado en dev/prod.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-09-15 15:43:11 -05:00
parent 2a1bdf1ba9
commit f8e42d4377
7 changed files with 501 additions and 60 deletions
+16
View File
@@ -1,5 +1,21 @@
# Changelog - project.linkedcorp.net
## [1.15.1] - 2026-09-15
### Added
- `scripts/install.sh`: instalador para desplegar en un servidor nuevo. Verifica requisitos
(Node.js, npm, cliente mysql, systemd, espacio, puertos), pregunta dominio/puertos y base de
datos (MariaDB local auto-instalada o un servidor existente), genera `backend/.env` con
secretos aleatorios, corre migraciones + catálogos, compila el frontend y crea/arranca los
servicios systemd. No crea ningún usuario — el primer registro público se vuelve
superadministrador solo (bootstrap ya existente).
### Fixed
- Migración `006_seed_it_baseline.sql` fallaba (error de foreign key) al correr sobre una base de
datos nueva/vacía, porque insertaba proyectos de ejemplo específicos de LinkedCorp asumiendo
catálogos y un usuario ya existentes. Encontrado probando el instalador de punta a punta contra
una BD recién creada. Ahora detecta si esos prerequisitos no existen (instalación nueva, otra
empresa) y queda inerte para siempre ahí, sin afectar el comportamiento ya probado en dev/prod
(donde el marcador de "ya aplicado" sigue intacto).
## [1.15.0] - 2026-09-15
### Added
- Marca de la empresa configurable: nombre y logo editables desde Configuración → Empresa (solo