MAATRIX / Блог / Установка Node.js нужной версии

Установка Node.js нужной версии

Установка Node.js нужной версии на VPS
Блог MAATRIX · 2026-07-07

Версия Node из стандартного репозитория обычно устарела на несколько релизов. Разберём два надёжных способа поставить именно нужную версию — через NodeSource и через nvm — и запустим приложение как сервис.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Какой способ выбрать

Есть три подхода: пакет из дистрибутива (старый и негибкий), репозиторий NodeSource (одна актуальная LTS на систему) и nvm (несколько версий рядом, переключение на лету).

  • NodeSource — для боевого сервера с одним приложением: чисто, обновляется через apt.
  • nvm — для разработки и нескольких проектов на разных версиях.

Проверьте текущую LTS-линейку перед установкой — обычно это чётные мажорные версии (20, 22).

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS для Node.js

Способ 1: NodeSource

Подключаем официальный репозиторий нужной ветки (пример — 20.x) и ставим пакет:

curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs

npm ставится вместе с Node. Для сборки нативных модулей (bcrypt, sharp) понадобится компилятор:

apt install -y build-essential

Проверяем версии:

node -v
npm -v

Способ 2: nvm для нескольких версий

nvm ставит Node в домашнюю директорию пользователя — без sudo и без конфликтов с системой:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc

Теперь можно ставить и переключать версии:

nvm install 20
nvm install 22
nvm use 20
nvm alias default 20
nvm ls

Внутри проекта создайте файл .nvmrc со строкой вроде 20 — тогда nvm use подхватит нужную версию автоматически.

Запуск приложения как сервиса

Приложение не должно работать в терминале через nohup — оно упадёт при разрыве SSH. Оформите systemd-юнит /etc/systemd/system/myapp.service:

[Unit]
Description=My Node App
After=network.target

[Service]
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/node server.js
Restart=always
User=www-data
Environment=NODE_ENV=production
Environment=PORT=3000

[Install]
WantedBy=multi-user.target

Включаем и запускаем:

systemctl daemon-reload
systemctl enable --now myapp
systemctl status myapp

Альтернатива: pm2

pm2 — популярный менеджер процессов Node с автоперезапуском, логами и кластеризацией по ядрам:

npm install -g pm2
pm2 start server.js --name myapp -i max
pm2 save
pm2 startup

Флаг -i max поднимает по процессу на ядро CPU. На тарифах MAATRIX с AMD EPYC это заметно повышает пропускную способность Node-приложения без правки кода.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS для Node.js

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Ставить Node под root или под пользователем?

Приложение запускайте под непривилегированным пользователем (www-data или отдельным). nvm вообще не требует root. Это снижает риск при компрометации.

Как обновить версию Node позже?

С NodeSource — подключите новый setup_XX.x и apt upgrade nodejs. С nvm — nvm install новой версии и nvm alias default.

Нужен ли nginx перед Node?

Да, как reverse proxy: он терминирует TLS, отдаёт статику и балансирует. Node слушает localhost:3000, nginx проксирует на него.