Files
linkedsign/DEPLOY_WEB.md
T

2.7 KiB

Deploy Web

Versión actual

Pasos

  1. Haz los cambios en dev.
  2. Si corresponde, sube versión:
    • ./scripts/set-version.sh X.Y.Z
    • actualiza CHANGELOG.md
  3. Prueba local:
    • cd frontend && npm run build
    • cd ../backend && node -e "require('./src/app')"
  4. Guarda cambios en git:
    • git add .
    • git commit -m "mensaje"
  5. Sube a Gitea:
    • git push origin main
  6. En el servidor app entra por SSH:
    • ssh deploy@192.168.222.3 -p 2203
  7. Actualiza código:
    • cd /opt/apps/linkedsign/source
    • git fetch origin main
    • git reset --hard origin/main
    • rm -rf /opt/apps/linkedsign/source/android /opt/apps/linkedsign/source/android_react /opt/apps/linkedsign/source/android_firma_electronica.html
  8. En producción usa el script seguro:
    • cd /opt/apps/linkedsign/source
    • bash scripts/deploy_prod_web.sh
  9. Reinicia servicios:
    • sudo systemctl restart linkedsign-frontend
    • sudo systemctl restart linkedsign-backend
    • Si hubo cambios en backend/, este reinicio es obligatorio
    • Verifica que el backend sí reinició de verdad:
      • ps -ef | grep 'node .*src/server.js' | grep -v grep
      • confirma que cambió el PID
      • sudo systemctl status linkedsign-backend --no-pager -n 20
  10. Limpia archivos .md en producción:
  • find /opt/apps/linkedsign -type f -iname '*.md' -delete
  1. Verifica:
  • curl -I http://127.0.0.1:3000
  • curl http://127.0.0.1:4000/health

Notas

  • Nunca copies .env desde dev a prod.
  • El archivo runtime de producción es:
    • /opt/apps/linkedsign/backend/.env
  • Si cambias variables de entorno, actualiza solo ese archivo runtime.
  • Si cambias rutas del APK o storage, revisa también PRODUCCION.md.
  • En producción no debe quedar código fuente Android; solo el APK release en /opt/apps/linkedsign/android/apk/.
  • Si en el despliegue hay cambios Android, recuerda que a producción solo pasa el APK release versionado; no el proyecto Android completo.
  • En cambios de backend no basta con copiar archivos o correr el script de deploy:
    • el proceso node src/server.js debe reiniciarse sí o sí
    • si el PID no cambia, el backend puede seguir firmando con código viejo en memoria aunque el archivo en disco ya esté actualizado
  • El deploy web no debe tocar ni reemplazar:
    • /opt/apps/linkedsign/backend/.env
    • /opt/apps/linkedsign/storage/
    • /opt/apps/linkedsign/logs/
    • /opt/apps/linkedsign/android/apk/
    • permisos hardened de producción