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

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

Блог MAATRIX · 2026-07-07

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

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

['Есть три подхода: пакет из дистрибутива (старый и негибкий), репозиторий 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 -\napt install -y nodejs
', 'npm ставится вместе с Node. Для сборки нативных модулей (bcrypt, sharp) понадобится компилятор:', '
apt install -y build-essential
', 'Проверяем версии:', '
node -v\nnpm -v
']

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

['nvm ставит Node в домашнюю директорию пользователя — без sudo и без конфликтов с системой:', '
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\nsource ~/.bashrc
', 'Теперь можно ставить и переключать версии:', '
nvm install 20\nnvm install 22\nnvm use 20\nnvm alias default 20\nnvm ls
', 'Внутри проекта создайте файл .nvmrc со строкой вроде 20 — тогда nvm use подхватит нужную версию автоматически.']

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

['Приложение не должно работать в терминале через nohup — оно упадёт при разрыве SSH. Оформите systemd-юнит /etc/systemd/system/myapp.service:', '
[Unit]\nDescription=My Node App\nAfter=network.target\n\n[Service]\nWorkingDirectory=/var/www/myapp\nExecStart=/usr/bin/node server.js\nRestart=always\nUser=www-data\nEnvironment=NODE_ENV=production\nEnvironment=PORT=3000\n\n[Install]\nWantedBy=multi-user.target
', 'Включаем и запускаем:', '
systemctl daemon-reload\nsystemctl enable --now myapp\nsystemctl status myapp
']

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

['pm2 — популярный менеджер процессов Node с автоперезапуском, логами и кластеризацией по ядрам:', '
npm install -g pm2\npm2 start server.js --name myapp -i max\npm2 save\npm2 startup
', 'Флаг -i max поднимает по процессу на ядро CPU. На тарифах MAATRIX с AMD EPYC это заметно повышает пропускную способность Node-приложения без правки кода.']

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

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

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

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

Ставить 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 проксирует на него.