# Node.js и Python в ISPmanager 6: запуск приложений

> Node.js и Python-приложения в ISPmanager 6: создание приложения через модуль, выбор версии рантайма, проксирование через Nginx и просмотр логов.

ISPmanager 6 умеет не только раздавать статику и PHP-сайты, но и запускать приложения на Node.js и Python как отдельные веб-сервисы со своим доменом. Разберём, как создать такое приложение, выбрать версию рантайма и настроить проксирование через веб-сервер.

## Чем приложение отличается от обычного сайта

Обычный сайт в ISPmanager 6 — это набор файлов, которые обрабатывает PHP-FPM или отдаёт веб-сервер напрямую. Node.js и Python-приложение — это отдельный процесс, который слушает свой локальный порт, а Nginx проксирует к нему внешние запросы по домену. Панель сама поднимает и перезапускает процесс через systemd-юнит.

## Создание приложения Node.js

Откройте «WWW-домены» → «Создать приложение», выберите тип Node.js, укажите домен и путь к точке входа, например app.js в корне каталога сайта. ISPmanager 6 предложит список установленных версий Node.js, а недостающую версию можно доставить через менеджер версий рантайма.

```
npm install --production
npm run build
```

После установки зависимостей панель запускает процесс автоматически. Проверить, что приложение слушает нужный порт, можно из консоли:

```
ss -tlnp | grep node
```

## Создание приложения Python

Для Python-приложений ISPmanager 6 поддерживает WSGI-совместимые фреймворки: Django, Flask, FastAPI за uvicorn. При создании укажите версию Python, путь к виртуальному окружению и модуль с точкой входа, например app:application для Flask.

```
python3 -m venv /var/www/httpd-cts/site_py/venv
source /var/www/httpd-cts/site_py/venv/bin/activate
pip install -r requirements.txt
```

Панель создаёт systemd-юнит, который запускает приложение через gunicorn или uvicorn в указанном виртуальном окружении и перезапускает процесс при падении.

## Проксирование через Nginx

| Параметр | Значение по умолчанию | Где менять |
| --- | --- | --- |
| Локальный порт приложения | Назначается автоматически | Настройки приложения в панели |
| Таймаут проксирования | 60 секунд | Шаблон Nginx для приложений |
| Максимальный размер запроса | 10 МБ | client\_max\_body\_size в шаблоне |

Если сайт использует связку Nginx и Apache, приложение всё равно проксируется напрямую через Nginx, минуя Apache — это быстрее для API и WebSocket-соединений. Подробности о связке веб-серверов есть в статье про [Nginx и Apache в ISPmanager 6](https://www.zevshost.net/ru/kb/ispmanager6-nginx-apache/).

## Логи и перезапуск приложения

Логи Node.js и Python-приложений пишутся в отдельные файлы в каталоге сайта и дублируются в журнал systemd. Посмотреть последние записи и статус процесса можно так:

```
journalctl -u app-site_ru -n 100
systemctl restart app-site_ru
```

Если приложение постоянно падает после старта, сначала проверьте ошибки импорта зависимостей в логе — это самая частая причина. Общий подход к разбору ошибок панели описан в статье про [логи и диагностику ISPmanager 6](https://www.zevshost.net/ru/kb/ispmanager6-logi-diagnostika/).

## Итог: чек-лист запуска приложения

- Выбрать нужную версию Node.js или Python до создания приложения
- Указать правильный путь к точке входа и виртуальному окружению
- Установить зависимости через npm install или pip install перед первым запуском
- Проверить, что процесс слушает порт и проксируется через Nginx
- Настроить чтение логов systemd для быстрой диагностики сбоев

---

Источник: https://www.zevshost.net/ru/kb/ispmanager6-nodejs-python/
