# 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/uk/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/uk/kb/ispmanager6-logi-diagnostika/).

## Підсумок: перелік для запуску застосунку

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

---

Джерело: https://www.zevshost.net/uk/kb/ispmanager6-nodejs-python/
