Документация / Администрирование

Node.js 20 и 22

Обновлено 14.11.2026

Установка

Пакет nodejs устанавливает Node.js 20 как /bin/node. Пакет nodejs22 устанавливает Node.js 22 LTS для musl как /bin/node22. Обе версии можно установить рядом.

setup update
setup install nodejs nodejs22
node --version
node22 --version

Установка зависимостей

Оба пакета поставляют среду Node.js. Подготовьте зависимости проекта на машине с рабочим Node.js и npm. Для установки зависимостей в госте распакуйте полный дистрибутив npm в /opt/npm и запустите bin/npm-cli.js через выбранный интерпретатор.

mkdir -p /opt/my-api
cd /opt/my-api
/bin/node /opt/npm/bin/npm-cli.js init -y
/bin/node /opt/npm/bin/npm-cli.js install express

Для готового проекта с package-lock.json используйте /bin/node /opt/npm/bin/npm-cli.js ci --omit=dev. Храните package-lock.json вместе с приложением. Переносите дерево node_modules архивом, который сохраняет символические ссылки. npm использует их в node_modules/.bin и для локальных пакетов. Нативный аддон должен соответствовать архитектуре x86_64, libc выбранного Node.js и ABI аддона.

HTTP API

Сохраните как /opt/my-api/server.cjs.

const express = require('express');
const app = express();

app.get('/health', (_req, res) => res.json({ ok: true }));
app.listen(Number(process.env.PORT || 3000), '127.0.0.1');

Создайте /etc/services/my-api.

exec /bin/node /opt/my-api/server.cjs
health http 3000 /health
service enable my-api
service status my-api
curl -fsS http://127.0.0.1:3000/health

Для Node.js 22 замените /bin/node на /bin/node22 в файле службы. В Fastify используйте тот же порт и адрес 127.0.0.1. Публикация API через nginx позволяет оставить API на локальном адресе.