> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/knowledge-base/servery-i-domeny/overview/process-map.md).

# Карта процессов iEXExchanger

Каноническая карта служб iEXExchanger после чистой автоматической установки

Новая установка использует systemd для постоянных процессов и cron для Laravel Scheduler. Supervisor и отдельный демон PM2 не являются частью основной схемы.

## Что видно в панели

* **«Утилиты» — «Horizon и Pulse» — «Laravel Horizon»**;
* **«Утилиты» — «Horizon и Pulse» — «Laravel Pulse»**;
* **«Утилиты» — «Службы»**.

Для Horizon и Pulse требуется право **«Разрешить доступ к мониторингу данных» из блока «Админпанель»**. Для «Служб» нужны **«Просмотр служб обменника»** и, только для действий, **«Управление службами обменника» из блока «Админпанель»**. Все права выдаются по пути **«Пользователи» — «Список групп пользователей»**.

Экран «Службы» управляет только закрытым списком процессов и расписаний, включая Frontend, Horizon, Reverb, Pulse, PHP-FPM, Redis и Cron. Nginx и PostgreSQL остаются объектами серверной диагностики и не имеют кнопок управления в панели. Полный порядок описан в [«Службах обменника»](/knowledge-base/obsluzhivanie/maintenance-overview/server-services.md).

## Основные службы

| Служба                     | Назначение                            | Публичный доступ                  |
| -------------------------- | ------------------------------------- | --------------------------------- |
| `nginx.service`            | HTTPS и маршрутизация запросов        | Только 80/443 по правилам сервера |
| `php8.5-fpm.service`       | Серверная часть, API и панель         | Нет прямого порта                 |
| `postgresql.service`       | Основные данные и хранилище Pulse     | Нет                               |
| `redis-server.service`     | Очереди, кеш и события                | Нет                               |
| `iex-frontend.service`     | Клиентский SSR через `pm2-runtime`    | Только через Nginx                |
| `iex-horizon.service`      | Обработка Redis-очередей              | Нет                               |
| `iex-reverb.service`       | WebSocket и события реального времени | Только через Nginx                |
| `iex-pulse-work.service`   | Обработка Redis ingest Pulse          | Нет                               |
| `iex-pulse-check.service`  | Серверные показатели Pulse            | Нет                               |
| `iex-update-agent.service` | Операции экрана «Обновления»          | Локальный защищённый канал        |

Автоматические копии запускаются `iex-backup.timer`. Laravel Scheduler вызывается единственной записью `/etc/cron.d/iexexchanger-scheduler` через `/usr/bin/php8.5`.

{% hint style="danger" %}
Не создавайте параллельные `queue:work`, Supervisor-программы, пользовательский PM2 daemon или второй cron для тех же процессов. Дубликаты приводят к повторной обработке, конфликтам портов и разным версиям кода.
{% endhint %}

## Проверка состояния

```bash
systemctl --failed
systemctl --no-pager --full status iex-frontend.service
systemctl --no-pager --full status iex-horizon.service
systemctl --no-pager --full status iex-reverb.service
systemctl --no-pager --full status iex-pulse-work.service
systemctl --no-pager --full status iex-pulse-check.service
systemctl --no-pager --full status iex-update-agent.service
```

Состояние `active` подтверждает процесс, но не конечный результат. Дополнительно проверьте клиентский HTTPS, вход, безопасную задачу очереди, двусторонний чат и данные Pulse.

## Симптом и первый объект проверки

| Проявление                                | Сначала проверить                                  |
| ----------------------------------------- | -------------------------------------------------- |
| Клиентский сайт возвращает 502            | `iex-frontend.service`, внутренний SSR и Nginx     |
| Уведомления задержаны                     | `iex-horizon.service`, Redis и очередь события     |
| Чат обновляется только после перезагрузки | `iex-reverb.service`, WebSocket в Nginx и очередь  |
| Регулярные задачи не выполняются          | `cron.service`, файл Scheduler и Horizon           |
| Pulse не показывает сервер                | `iex-pulse-check.service` и настройки Pulse        |
| Pulse отстаёт                             | `iex-pulse-work.service`, Redis ingest и хранилище |
| Экран обновлений не запускает действие    | `iex-update-agent.service` и право сотрудника      |

Сначала используйте **«Утилиты» — «Службы»** для безопасного просмотра и предусмотренного действия. Приведённые выше команды нужны системному администратору, когда панель или агент недоступны либо требуется более глубокая диагностика.

## Существующая установка с FASTPANEL

На старом сервере процессы могут оставаться под Supervisor и пользовательским PM2. Не переводите их частично на systemd без плана. Отдельная граница и проверки приведены в [«Supervisor и PM2 на существующем сервере»](/knowledge-base/servery-i-domeny/fastpanel-transition/supervisor-and-pm2.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/knowledge-base/servery-i-domeny/overview/process-map.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
