Despliegue en Windows con NSSM en lugar de WinSW
El servicio de Windows pasa a administrarse con NSSM (decisión del usuario: WinSW no se consideró lo bastante estable). - instalar-servicio.ps1: recibe -Nssm (ruta de nssm.exe) y configura el servicio con `nssm install` / `nssm set` (arranque automático, reinicio a los 10 s, logs a logs\ rotados a los 10 MB). Nueva opción -SoloMostrar que imprime los comandos sin ejecutarlos ni exigir administrador. Si un ajuste falla, quita el servicio a medio configurar. - desinstalar-servicio.ps1: usa `nssm stop` y `nssm remove`. - Se elimina la plantilla XML de WinSW. - DEPLOY.md: pasos con NSSM, sección para administrar el servicio, aviso de usar la compilación 2.24-101 en Windows 10/11 y Server 2019/2022 (la 2.24 estable puede no arrancar), y limpieza de logs rotados (NSSM no limita cuántos conserva). Ya no se requiere .NET Framework. - CLAUDE.md y README de la API actualizados. Sin probar aún en Windows: solo se comprobó la sintaxis y los comandos generados (-SoloMostrar). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
287b187c14
commit
699dd983d0
6 files changed
+147
-99
No files matched your search
@@ -67,11 +67,12 @@ Pasos de la UI (decididos):
|
||||
- **Despliegue en Windows**: un solo servicio. La API sirve también la web compilada (mismo origen: sin
|
||||
CORS y con la cookie `SameSite=strict`), con **HTTPS directo en Node** (`HTTPS_PFX_PATH` o
|
||||
`HTTPS_KEY_PATH`+`HTTPS_CERT_PATH`) y redirección opcional de HTTP (`HTTP_REDIRECT_PORT`). El servicio
|
||||
lo administra **WinSW** (elegido sobre NSSM por su configuración en XML versionable); nginx no es
|
||||
necesario. `npm run publicar` arma `release/devolucion-proveedores/` (API + web + solo dependencias de
|
||||
lo administra **NSSM** (decisión del usuario; se evaluó WinSW y no se lo consideró lo bastante estable);
|
||||
nginx no es necesario. NSSM 2.24 estable puede no arrancar en Windows recientes: usar la 2.24-101. `npm run publicar` arma `release/devolucion-proveedores/` (API + web + solo dependencias de
|
||||
producción, ~55 MB). Guía completa: `deploy/windows/DEPLOY.md`.
|
||||
- **Logs**: la aplicación **no escribe logs a archivo**; usa el `Logger` de Nest por consola. En
|
||||
producción WinSW captura la salida y la rota (10 MB × 8). Con `NO_COLOR=1` el log sale sin códigos de
|
||||
producción NSSM captura la salida y la rota a los 10 MB (no limita cuántos archivos conserva: hay que
|
||||
limpiar los viejos). Con `NO_COLOR=1` el log sale sin códigos de
|
||||
color. Solo se registran errores 4xx/5xx, fallos o lentitud del Service Layer y eventos de negocio.
|
||||
- Aplicación web **independiente**. Login con el usuario de SAP B1 vía **Login del Service Layer**.
|
||||
- Metadatos (UDT/UDF/UDO) definidos en **JSON** con formato del Service Layer. La web tiene la
|
||||
@@ -109,7 +110,7 @@ devolucion-proveedores-web/ npm workspaces
|
||||
│ ├── web-estatico.ts sirve el build de Angular, fallback a index.html, cabeceras de seguridad
|
||||
│ └── https.ts lectura del certificado y redirección HTTP → HTTPS
|
||||
├── scripts/publicar.mjs arma la carpeta de despliegue (release/, ignorada por git)
|
||||
├── deploy/windows/ WinSW (plantilla XML), instalar/desinstalar-servicio.ps1, DEPLOY.md
|
||||
├── deploy/windows/ NSSM: instalar/desinstalar-servicio.ps1, DEPLOY.md
|
||||
└── apps/web/ Angular 22 standalone, signals, zoneless, CSS (no SCSS)
|
||||
└── src/app/
|
||||
├── core/ auth.service, metadata.service, planificaciones.service,
|
||||
@@ -262,8 +263,8 @@ Reglas:
|
||||
Para repetirlo hace falta una Devolución con folio (la que emite el addon de facturación electrónica).
|
||||
- **Despliegue en Windows**: la carpeta publicada se probó en un Mac (API con HTTPS autofirmado, web
|
||||
servida por la API, rutas de Angular, 404, cabeceras, redirección 301, log sin colores). **No se ha
|
||||
ejecutado en Windows**: los `.ps1` solo pasaron la comprobación de sintaxis y la generación del XML de
|
||||
WinSW; falta instalar el servicio de verdad. Las banderas de la cookie de sesión están comprobadas en un
|
||||
ejecutado en Windows**: los `.ps1` solo pasaron la comprobación de sintaxis y la lista de comandos de
|
||||
NSSM que generan (`-SoloMostrar`); falta instalar el servicio de verdad. Las banderas de la cookie de sesión están comprobadas en un
|
||||
test e2e; solo falta verlo en un navegador real sobre HTTPS (iniciar sesión en el sitio desplegado).
|
||||
- **Estilos:** son CSS porque, en el Mac con macOS 12, el compilador nativo de Sass exige
|
||||
macOS 14 o superior. En Sequoia se puede volver a SCSS si se prefiere.
|
||||
|
||||
Reference in new issue
Block a user