Node.js aplikace na VPS s PM2
Jak na VPS nainstalovat Node.js a spustit aplikaci nebo Discord bota přes PM2, aby běžel i po restartu.
2 min čtení·Aktualizováno 28. října 2026
PM2 drží Node.js aplikace a Discord boty spuštěné na pozadí, po pádu je nastartuje znovu a po restartu VPS je zapne. Postup je pro Debian a Ubuntu; Node.js i PM2 nainstaluje i aplikace Node.js 22 LTS + PM2 v záložce Aplikace.
1. Instalace Node.js a PM2
Verze v repozitáři distribuce bývá stará, proto použij repozitář NodeSource:
apt update && apt install -y curl
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
apt install -y nodejs
npm install -g pm2
node -v
2. Aplikace
Soubory nahraj třeba do /opt/muj-bot (viz Přenos souborů na VPS) a nainstaluj balíčky z package.json:
cd /opt/muj-bot
npm install --omit=dev
3. Spuštění
pm2 start index.js --name muj-bot
pm2 list
Aplikaci, která se spouští přes npm start, rozjedeš příkazem pm2 start npm --name web -- start.
4. Start po restartu VPS
pm2 startup
pm2 save
pm2 startup vytvoří službu systemd a pm2 save uloží seznam běžících aplikací. Po každém přidání nebo odebrání aplikace spusť pm2 save znovu.
Užitečné příkazy
| Příkaz | Co dělá |
|---|---|
pm2 logs muj-bot | živý výpis logu |
pm2 restart muj-bot | restart po změně kódu |
pm2 stop muj-bot | zastavení |
pm2 delete muj-bot | odebrání ze seznamu |
pm2 monit | CPU a RAM jednotlivých aplikací |
Logy PM2 samy nemizí; rotaci zapneš příkazem pm2 install pm2-logrotate.
Tajné údaje a web
Token a hesla dej do .env ve složce aplikace a načti je balíčkem dotenv – viz Tajné údaje v .env. Webovou aplikaci na portu schováš za Nginx s HTTPS podle návodu Více webů a aplikací na jedné VPS.
Discord bot se k Discordu připojuje sám, žádný port na VPS kvůli němu otevírat nemusíš.
VPS od 299 Kč měsíčně
Vlastní virtuální server s root přístupem pro cokoliv, co potřebujete.