> 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/ustanovka-i-obnovlenie/ustanovka/nastroika-fastpanel/nastroika-backend.md).

# Настройка Backend

Backend — это серверная часть iEXExchanger. Она отвечает за работу API, административной панели, PostgreSQL, авторизации, очередей, уведомлений, платёжных модулей и внутренних системных процессов.

Backend устанавливается на технический поддомен:

```
https://app.ваш_домен
```

На этом этапе необходимо загрузить файлы Backend и лицензии, настроить файл `.env`, подключить PostgreSQL 18, импортировать начальную базу данных, установить обязательные PHP-модули и настроить сайт в FastPanel.

## Перед началом

Перед выполнением данного этапа убедитесь, что:

* технический поддомен `app.ваш_домен` уже создан в FastPanel;
* SSL-сертификат для поддомена настроен;
* архив Backend скачан из личного кабинета iEXExchanger;
* архив лицензии скачан из личного кабинета iEXExchanger;
* файл конфигурации FastPanel для поддомена сохранён;
* Frontend уже установлен и настроен;
* у вас есть доступ к панели управления FastPanel.

***

## Подготовка файлов проекта

На данном этапе необходимо загрузить Backend и файлы лицензии на сервер.

{% stepper %}
{% step %}

### Загрузка файлов Backend

В панели управления FastPanel перейдите в раздел **«Сайты».**

Выберите технический поддомен: `app.ваш_домен`

Перейдите в раздел **«Файлы».**

<figure><img src="/files/qmoFUlqU5AhdLCwYrtKN" alt="" width="563"><figcaption></figcaption></figure>

Откроется корневая директория сайта.

{% content-ref url="/spaces/uyjsNtEAtO6Sby8CHWyD/pages/MDuqJRjp8L1cHG9i4sRB" %}
[Файлы сайта в FastPanel](/help-center/upravlenie-serverom/panel-fastpanel/faily-saita-v-fastpanel.md)
{% endcontent-ref %}

Загрузите архив Backend, полученный в личном кабинете iEXExchanger, используя кнопку **«Загрузить»** в верхней части файлового менеджера.

<figure><img src="/files/pvgNVWL1y2wcPMNe4eRN" alt=""><figcaption></figcaption></figure>

После завершения загрузки распакуйте архив непосредственно в корневую директорию поддомена.

Если после распаковки появилась дополнительная вложенная папка, перенесите содержимое архива в корень сайта.
{% endstep %}

{% step %}

### Загрузка файлов лицензии

После загрузки Backend необходимо загрузить лицензионные файлы.

В корневую директорию Backend загрузите архив лицензии.

После завершения загрузки распакуйте архив лицензии.

Не переименовывайте лицензионные файлы и не изменяйте их содержимое.
{% endstep %}

{% step %}

### Проверка структуры Backend

После распаковки в корневой директории поддомена должны присутствовать основные файлы и директории Laravel-проекта:

```
app/
bootstrap/
config/
database/
public/
resources/
routes/
storage/
vendor/
artisan
composer.json
composer.lock
.env
```

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

Особенно важно наличие директории: `public`

Именно она будет указана в FastPanel как рабочая директория сайта.

Также убедитесь, что в корне проекта присутствует файл: `artisan`

Он потребуется на следующих этапах установки для выполнения служебных команд Laravel.
{% endstep %}
{% endstepper %}

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

На данном этапе производится настройка основных параметров Backend, лицензии и доменной конфигурации системы.

{% stepper %}
{% step %}

### Настройка файла .env

В корневой директории проекта найдите файл: `.env`

Откройте его для редактирования.
{% endstep %}

{% step %}

### Основные параметры приложения

Проверьте и настройте основные параметры приложения:

```
APP_NAME=iEXExchanger

APP_ENV=production
APP_DEBUG=false

APP_URL=https://app.ваш_домен

API_URL=https://app.ваш_домен
FRONTEND_URL=https://ваш_домен
```

Где:&#x20;

* **https\://**<mark style="color:red;">**ваш\_домен**</mark> — основной домен обменного пункта.
* **<https://app>.**<mark style="color:red;">**ваш\_домен**</mark> — технический поддомен Backend.
  {% endstep %}

{% step %}

### Настройка ключа лицензии

Для корректной работы системы необходимо указать лицензионный ключ в файле `.env`.

Лицензионный ключ можно получить в личном кабинете iEXExchanger.

**Получение лицензионного ключа**

1.

```
<figure><img src="/files/BbpRwpA2hGhwuhgAYaHF" alt=""><figcaption></figcaption></figure>
```

2. Авторизуйтесь в личном кабинете на официальном сайте iEXExchanger.
3. В левом меню откройте раздел **«Лицензия обменника».**
4. При первом открытии раздела подтвердите доступ с помощью Google Authenticator или резервного секретного кода.
5. В списке лицензий найдите лицензию, привязанную к вашему домену.
6. Скопируйте значение из поля **«Код лицензии».**

**Добавление ключа в .env**

Откройте файл `.env` и укажите полученный ключ: `LICENSE_KEY=ваш_лицензионный_ключ`

Пример: `LICENSE_KEY=K5044-67606-U7684-36813`
{% endstep %}

{% step %}

### Настройка пути к административной панели

Путь к административной панели задаётся через файл `.env`.

Укажите параметр: `APP_ADMIN_PATH=ваш_путь_к_админке`

Пример: `APP_ADMIN_PATH=iexadmin`

После настройки административная панель будет доступна по адресу:&#x20;

`https://app.ваш_домен/iexadmin`

Рекомендуется использовать уникальный путь.
{% endstep %}

{% step %}

### Итоговый пример доменных настроек .env

После настройки основные параметры должны выглядеть следующим образом:

```dotenv
APP_URL=https://app.ваш_домен
API_URL=https://app.ваш_домен
FRONTEND_URL=https://ваш_домен
APP_ADMIN_PATH=iexadmin
```

{% endstep %}
{% endstepper %}

## Настройка PostgreSQL

PostgreSQL 18 должен быть установлен, подключён к FastPanel и подготовлен до настройки Backend.

Если этот этап ещё не выполнен, сначала перейдите к инструкции:

{% content-ref url="/pages/nTV8YubEHpIQWlwePofG" %}
[Подключение PostgreSQL](/server-i-dannye/rabota-s-postgresql/podklyuchenie-postgresql.md)
{% endcontent-ref %}

В результате должны быть созданы:

* отдельная основная база PostgreSQL для iEXExchanger;
* отдельный пользователь основной базы;
* база `pulse_pg` для Laravel Pulse;
* пользователь `pulse_pg`.

Административная роль `fastuser` используется только для подключения PostgreSQL к FastPanel.

{% hint style="danger" %}
Не указывайте `fastuser` в файле `.env` и не используйте эту роль для подключения iEXExchanger. Backend и Laravel Pulse должны работать через отдельных пользователей своих баз данных.
{% endhint %}

## Настройка баз данных

На данном этапе производится настройка всех баз данных проекта.

{% stepper %}
{% step %}

### Настройка основной базы данных

Используйте реквизиты основной базы, созданной при подключении PostgreSQL 18.

Пример:

```
Сервер баз данных: PostgreSQL 18 local
Хост: 127.0.0.1
Порт: 5432
Имя базы: app_example_com_pg
Пользователь: app_example_com_pg
Пароль: пароль основной базы
```

Добавьте параметры подключения в файл `.env`:

```
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432

DB_DATABASE=app_example_com_pg
DB_USERNAME=app_example_com_pg
DB_PASSWORD="ПАРОЛЬ_ОСНОВНОЙ_БАЗЫ"
DB_SSLMODE=disable
```

{% endstep %}

{% step %}
Замените имя базы, имя пользователя и пароль реальными значениями из FastPanel.

Параметр `DB_SSLMODE=disable` используется для локального подключения, когда PostgreSQL и Backend находятся на одном сервере.

### Импорт основной базы данных&#x20;

После настройки подключения необходимо импортировать начальную структуру и системные данные iEXExchanger.

В панели управления FastPanel откройте технический поддомен: `app.ваш_домен`

В блоке **«Управление сайтом»** перейдите в раздел **«Базы данных».**

<figure><img src="/files/Y9tzFb9z0JbGgLBFmAOD" alt="" width="563"><figcaption></figcaption></figure>

В списке баз данных найдите базу, привязанную к вашему техническому поддомену.

<figure><img src="/files/6fpFH4k1vZqvE2eprb7S" alt=""><figcaption></figcaption></figure>

Справа от базы данных нажмите кнопку меню **«⋮».**&#x20;

В открывшемся меню выберите пункт: **Загрузить SQL-дамп**

После этого выберите файл базы данных из распакованного архива Backend:

`database/iex_data.sql`

Дождитесь завершения импорта.

{% hint style="warning" %}
Используйте файл `database/iex_data.sql` из того же архива Backend, который устанавливается на сервер. Не импортируйте дамп от другой версии iEXExchanger и не используйте старый дамп MySQL.
{% endhint %}
{% endstep %}

{% step %}

### Настройка базы данных Laravel Pulse

Laravel Pulse используется для мониторинга производительности приложения, очередей, запросов к базе данных и других внутренних показателей.

<figure><img src="/files/0qW9ATzqcXYa9FAnsLWt" alt="" width="375"><figcaption></figcaption></figure>

Для Pulse используется отдельная база PostgreSQL:

```
Имя базы: pulse_pg
Пользователь: pulse_pg
Порт: 5432
```

Добавьте параметры подключения в файл `.env`:

```
PULSE_DB_CONNECTION=pgsql-pulse
PULSE_DB_HOST=127.0.0.1
PULSE_DB_PORT=5432

PULSE_DB_DATABASE=pulse_pg
PULSE_DB_USERNAME=pulse_pg
PULSE_DB_PASSWORD="ПАРОЛЬ_БАЗЫ_PULSE"
PULSE_DB_SSLMODE=disable
```

Замените пароль реальным значением.

Пароль базы Pulse не должен совпадать с паролем основной базы. База `pulse_pg` также не должна использовать пользователя основной базы или административную роль `fastuser`.
{% endstep %}
{% endstepper %}

## Настройка авторизации и безопасности

На данном этапе производится настройка взаимодействия Frontend и Backend.

{% stepper %}
{% step %}

### Настройка сессий

Укажите следующие параметры:

```
SESSION_DRIVER=database
SESSION_SECURE_COOKIE=true
SESSION_DOMAIN=.ваш_домен
SESSION_COOKIE=iexexchanger_session
```

Пример: `SESSION_DOMAIN=.example.com`

Обратите внимание на точку перед доменом.

Она необходима для корректной работы авторизации между основным доменом и техническим поддоменом.
{% endstep %}

{% step %}

### Настройка CORS и Sanctum

Для корректной работы Frontend и Backend настройте следующие параметры:

```
CORS_ALLOWED_ORIGINS=https://ваш_домен,https://app.ваш_домен
CORS_SUPPORTS_CREDENTIALS=true
SANCTUM_STATEFUL_DOMAINS=https://app.ваш_домен
```

Пример:

```
CORS_ALLOWED_ORIGINS=https://example.com,https://app.example.com
CORS_SUPPORTS_CREDENTIALS=true
SANCTUM_STATEFUL_DOMAINS=https://app.example.com
```

Не используйте пробелы между доменами.
{% endstep %}

{% step %}

### Настройка Laravel Reverb

Laravel Reverb используется системой для работы WebSocket-соединений, realtime-уведомлений, онлайн-статусов и других событий в реальном времени.

Добавьте в файл `.env` следующие параметры:

```
REVERB_HOST=app.ваш_домен
REVERB_PORT=443
REVERB_SCHEME=https
```

Пример:

```
REVERB_HOST=app.example.com
REVERB_PORT=443
REVERB_SCHEME=https
```

{% endstep %}
{% endstepper %}

## Настройка окружения сервера

Для работы Backend необходимо подготовить программное окружение сервера.

{% stepper %}
{% step %}

### Установка PHP 8.4

Перейдите: **«Настройки» — «Приложения»**

<figure><img src="/files/c32prQmmuBMOhsj77M5C" alt=""><figcaption></figcaption></figure>

В поиске укажите: `php84`

Найдите приложение **«PHP 8.4».**

Установите его и дождитесь завершения установки.

После установки приложение должно иметь статус: <mark style="color:green;">**Установлен**</mark>
{% endstep %}

{% step %}

### Установка Redis

Redis используется системой для кеширования, очередей и внутренних процессов.

Перейдите: **«Настройки» — «Приложения»**

<figure><img src="/files/gMfBvb9MVLid97VSuVT9" alt=""><figcaption></figcaption></figure>

Найдите приложение: `redis`

Установите его.

После установки сервис должен иметь статус: <mark style="color:green;">**Установлен**</mark>
{% endstep %}

{% step %}

### Установка PHP-расширений

После установки PHP 8.4 необходимо установить обязательные расширения.

Перейдите: **«Управление» — «PHP» — «Модули PHP»**

Выберите PHP 8.4.

<figure><img src="/files/uQ9ECVob1DFPgjHMCqAP" alt=""><figcaption></figcaption></figure>

Установите следующие модули:

```
gmp
imagick
redis
yaml
sodium
pdo_pgsql
pgsql
```

{% hint style="warning" %}
Модули `pdo_pgsql` и `pgsql` необходимы для подключения PHP 8.4 к PostgreSQL.
{% endhint %}

После установки убедитесь, что каждый модуль имеет статус **«Установлен».**

Проверить драйверы PostgreSQL через SSH можно командами:

{% content-ref url="/spaces/uyjsNtEAtO6Sby8CHWyD/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

```
/opt/php84/bin/php --ri pdo_pgsql
/opt/php84/bin/php --ri pgsql
```

{% endstep %}
{% endstepper %}

## Настройка сайта в FastPanel

После подготовки окружения необходимо настроить технический поддомен для работы Laravel.

{% stepper %}
{% step %}

### Настройка типа Backend и версии PHP

Перейдите: **«Сайты» — «app.ваш\_домен» — «Настройки»**

<figure><img src="/files/HKm36UztSmZjjfG1fAGa" alt="" width="563"><figcaption></figcaption></figure>

Откройте раздел: Бэкенд (PHP, обратный прокси и т.п.)

Укажите:

<figure><img src="/files/w1qxeuxVpoo9w0gbrGdA" alt="" width="563"><figcaption></figcaption></figure>

```
Тип бэкенда: PHP
Обработчик: PHP-FPM
Версия PHP: 8.4
Количество воркеров: 2
```

{% hint style="warning" %}

## Важно

Для большинства стандартных установок рекомендуется использовать значение 2.

При необходимости количество воркеров можно увеличить.

Чем мощнее сервер и больше доступных ресурсов (CPU и оперативной памяти), тем большее количество воркеров может использоваться для обработки запросов.

\
Если вы не уверены в выборе значения, оставьте рекомендуемое значение 2. Его всегда можно изменить позже в зависимости от нагрузки на проект.
{% endhint %}

Сохраните настройки.
{% endstep %}

{% step %}

### Настройка рабочей директории

В настройках сайта обязательно укажите:&#x20;

* Рабочая поддиректория: **public**
* Файл приложения: **index.php**

Это обязательная настройка для Laravel.

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

После внесения изменений сохраните настройки.
{% endstep %}
{% endstepper %}

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

Перед переходом к следующему этапу установки рекомендуется выполнить финальную проверку.

Убедитесь, что:

* Backend загружен и распакован;
* файлы лицензии загружены;
* файл `.env` настроен;
* лицензионный ключ добавлен;
* домены настроены корректно;
* база данных подключена;
* база данных импортирована;
* Laravel Pulse настроен;
* PHP 8.4 установлен;
* Redis установлен;
* обязательные PHP-модули установлены;
* сайт работает через PHP-FPM;
* рабочая директория указана как `public`.


---

# 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/ustanovka-i-obnovlenie/ustanovka/nastroika-fastpanel/nastroika-backend.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.
