Bot + web, pm2 y subcarpetas
Varios programas (por ejemplo, el bot y su web): si tu proyecto tiene un ecosystem.config.js (pm2) con al menos dos aplicaciones, o un Procfile con al menos dos líneas, Invokara ejecuta todos a la vez, sin pm2. Los logs de cada programa llevan su nombre como prefijo en la consola ([bot], [site]…) y cada programa se reinicia solo si falla. El primero es el programa principal: si falla en bucle, el bot se pone en pausa.
También se entiende un script "start": "pm2 start index.js": ejecutamos index.js directamente (aquí pm2 no hace falta, el bot ya se reinicia solo).
0.0.0.0, no en 127.0.0.1 ni en localhost: si no, aparece la página «Este bot está desconectado». Ejemplo: app.listen(process.env.PORT, '0.0.0.0'). Nosotros configuramos PORT y HOST=0.0.0.0 por ti, y te avisamos en la consola si tu código escucha en otro sitio.Proyecto en una subcarpeta (p. ej. mi-bot/package.json): se detecta automáticamente. Las dependencias se instalan y el bot arranca desde esa carpeta, con su propio .env (también se lee el de la raíz). Las carpetas de copia de seguridad (backup, old, copy, _old…) se ignoran.
Para subir una versión nueva completa, marca Reemplazar todos los archivos en la pestaña Archivos: el proyecto anterior se borra antes, salvo data/, .env y las bases de datos .db/.sqlite. Así se evita que se inicie un resto de una subida anterior en lugar de la versión nueva.