Хостинг Node.js

Разместите Express API или существующий backend на Node.js. Настройте команду запуска и переменные окружения, смотрите логи и проверяйте preview-релиз перед переключением трафика.

Обновлено: 2026-10-26

От исходников до работающего сервиса

Установите зависимости на этапе сборки. Создайте и сохраните package-lock.json в репозитории, затем используйте npm ci. Задайте PORT=8080 и порт маршрута приложения 8080. Команда запуска — npm start.

Как развернуть приложение

1

Подготовьте проект

Добавьте файлы примера или используйте свой проект. Установите зависимости и проверьте команду запуска локально перед деплоем.

2

Настройте приложение

Создайте приложение в своём воркспейсе. Укажите источник, команду запуска, переменные окружения и ресурсы. Для веб-сервиса настройте порт маршрута; polling-бота можно оставить приватным.

3

Проверьте релиз

Запустите деплой и проверьте логи сборки и приложения. Веб-маршруты проверьте по preview-адресу. Polling-боту отправьте /start в Telegram и убедитесь, что токен не используется другим процессом.

4

Опубликуйте и наблюдайте

Переведите проверенный веб-релиз в production. Выполняйте миграции БД отдельно от отката приложения. После обновления следите за ошибками и потреблением ресурсов.

Минимальный пример проекта

Примеры показывают код и запуск приложения, а не готовый шаблон инфраструктуры. Перед использованием в production проверьте и зафиксируйте версии зависимостей.

package.json
{
  "name": "inquir-express-example",
  "private": true,
  "type": "module",
  "scripts": { "start": "node server.js" },
  "dependencies": { "express": "^5.1.0" }
}
server.js
import express from "express";

const app = express();
const port = Number(process.env.PORT || 8080);

app.get("/health", (_req, res) => res.json({ ok: true }));
app.get("/", (_req, res) => res.json({ message: "Hello from Node.js" }));

const server = app.listen(port, "0.0.0.0");
process.on("SIGTERM", () => server.close());
Команда запуска
npm start

Разделите сборку и запуск

Обычный JavaScript можно запускать напрямую. Для TypeScript и NestJS обычно нужна сборка и отдельная команда запуска готового результата. Установите зависимости сборки до компиляции; не запускайте development watcher в production.

Храните состояние вне процесса

Сессии в памяти и локальные файлы не становятся общими для нескольких реплик. При необходимости используйте БД или общее хранилище сессий. Для файлов, которые должны сохраняться при замене контейнера, подключите постоянный том.

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

Можно ли разместить NestJS или Fastify?

Их можно запускать как серверные Node.js-приложения. Укажите зависимости, команды сборки и запуска своего проекта, настройте сервер на 0.0.0.0 и выбранный порт. Исполняемый пример на этой странице использует Express.

Где хранить API-ключи?

Используйте переменные окружения приложения и читайте их через process.env. Не включайте серверные секреты в браузерную сборку. Если ключ попал в Git, удалите его из кода и перевыпустите у провайдера.

Почему приложение недоступно по адресу?

Проверьте, что npm start не завершается, процесс слушает 0.0.0.0, а PORT совпадает с портом приложения в настройках. Затем проверьте статус релиза и логи, прежде чем менять DNS.

Сколько стоит размещение?

Актуальные тарифы и доступные предложения оплаты смотрите в разделе «Тариф и оплата». Планируйте ресурсы приложения и его зависимостей в рамках общего пула. Preview-реплики и базы данных тоже расходуют ресурсы; отсутствие запросов не означает бесплатное размещение.