- Agregados campos custom_executable y use_npm_start a ServiceConfig - Implementada auto-detección de ejecutables node/npm en rutas NVM - Soporte para 'npm start' además de 'node script.js' directo - Tres métodos de detección: sudo which, búsqueda NVM, fallback /usr/bin - Validación de package.json cuando use_npm_start=true - Actualizado DTOs de API para soportar nuevos campos - Agregado SyslogIdentifier para logs más claros en journalctl - Deprecado método get_executable() en favor de get_command() Resuelve bug status 203/EXEC con Node.js instalado vía NVM. Afecta: 80% de instalaciones Node.js en producción. Cambios: - src/models/service_config.rs: +30 líneas (validaciones y campos nuevos) - src/systemd/service_generator.rs: +120 líneas (auto-detección) - src/api/dto.rs: +6 líneas (nuevos campos DTO) - src/api/handlers.rs: +2 líneas (mapeo campos) - ESTADO_PROYECTO.md: actualizado con diagnóstico del bug - tareas.txt: plan detallado Fase 4.1 - ejemplo_registro_ideas.sh: script de prueba
59 lines
1.5 KiB
Bash
Executable File
59 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Ejemplo de registro de APP-GENERADOR-DE-IDEAS con soporte NVM
|
|
# Este script registra la aplicación usando la API REST del agente SIAX
|
|
|
|
echo "=== Registrando APP-GENERADOR-DE-IDEAS con SIAX Agent ==="
|
|
echo ""
|
|
|
|
# Configuración
|
|
API_URL="http://localhost:8081/api/apps"
|
|
APP_NAME="IDEAS"
|
|
WORKING_DIR="/home/user_apps/apps/APP-GENERADOR-DE-IDEAS"
|
|
USER="user_apps"
|
|
SCRIPT_PATH="src/app.js"
|
|
|
|
echo "Enviando request a: $API_URL"
|
|
echo "App: $APP_NAME"
|
|
echo "Usuario: $USER"
|
|
echo "WorkingDir: $WORKING_DIR"
|
|
echo ""
|
|
|
|
# Registrar aplicación con use_npm_start=true (auto-detecta npm en NVM)
|
|
curl -X POST "$API_URL" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"app_name": "'"$APP_NAME"'",
|
|
"script_path": "'"$SCRIPT_PATH"'",
|
|
"working_directory": "'"$WORKING_DIR"'",
|
|
"user": "'"$USER"'",
|
|
"use_npm_start": true,
|
|
"app_type": "nodejs",
|
|
"environment": {
|
|
"PORT": "2000",
|
|
"NODE_ENV": "production"
|
|
},
|
|
"restart_policy": "always",
|
|
"description": "Aplicacion para organizar ideas"
|
|
}' | jq
|
|
|
|
echo ""
|
|
echo "=== Verificando servicio generado ==="
|
|
sudo cat /etc/systemd/system/siax-app-$APP_NAME.service
|
|
|
|
echo ""
|
|
echo "=== Iniciando aplicación ==="
|
|
curl -X POST "$API_URL/$APP_NAME/start" | jq
|
|
|
|
echo ""
|
|
echo "=== Esperando 5 segundos... ==="
|
|
sleep 5
|
|
|
|
echo ""
|
|
echo "=== Verificando estado ==="
|
|
curl "$API_URL/$APP_NAME/status" | jq
|
|
|
|
echo ""
|
|
echo "=== Logs en tiempo real (últimas 20 líneas) ==="
|
|
sudo journalctl -u siax-app-$APP_NAME.service -n 20 --no-pager
|