Шаг 2: Настройка FastPanel
На этом этапе вы выполните полную подготовку и настройку вашего сервера через панель управления FastPanel. Правильное выполнение каждого пункта обеспечит стабильную, безопасную и корректную работу обменника.
Создание доменов в панели FastPanel
В этом разделе вы узнаете, как правильно создать основной домен и поддомен в панели FastPanel. Чёткое следование инструкции обеспечит корректную работу вашего обменника. Пожалуйста, выполняйте шаги внимательно и последовательно.
Шаг 1. Авторизация в FastPanel

Перейдите в панель управления FastPanel по адресу, предоставленному вашим хостингом (обычно выглядит так: https://ip_адрес:8888 или аналогично).
Введите свой логин и пароль и нажмите кнопку «Войти».
Шаг 2. Создание основного сайта (ваш основной домен)

В меню слева выберите раздел «Сайты».
На странице сайтов нажмите кнопку «Создать сайт».
В открывшемся окне выберите вариант «Создать сайт вручную» (подходит для большинства сайтов).
В открывшейся форме укажите:
В поле «Какой домен подключаем?» введите адрес вашего основного домена (например, ваш_домен).
В поле «К какому IP-адресу?» убедитесь, что указан правильный IP-адрес вашего сервера.
В поле «DNS аккаунт» оставьте значение по умолчанию (обычно это ваш провайдер, например FASTVPS).
Опционально можете включить галочку «Добавить www алиас», если хотите, чтобы сайт был доступен и по адресу www.ваш_домен.
Нажмите кнопку «Следующий шаг», чтобы перейти к настройке конфигураци
Шаг 3. Конфигурация сайта
На этапе конфигурации FastPanel автоматически предложит стандартные настройки сайта, которые подходят в большинстве случаев.

Важно
Пока оставьте эти настройки по умолчанию, без изменений. На следующих этапах инструкции мы подробно рассмотрим и изменим необходимые параметры, чтобы полностью адаптировать сайт для работы обменника.
Нажмите кнопку «Создать сайт» и дождитесь завершения процедуры создания.
После того как сайт будет создан:
Обязательно скачайте предложенный файл конфигурации, который будет доступен рядом с кнопкой «Посмотреть». Он потребуется вам в дальнейшем для настройки соединений.

Шаг 4. Создание поддомена (app.ваш_домен)

Для создания поддомена повторите вышеописанную процедуру:
Снова нажмите кнопку «Создать сайт» в разделе сайтов.
Выберите «Создать сайт вручную».
Укажите поддомен в формате app.ваш_домен.
IP-адрес и DNS оставьте без изменений (как и в основном домене).
Нажмите «Следующий шаг» и снова «Создать сайт» с предложенными по умолчанию настройками.
После создания поддомена также скачайте предложенный файл конфигурации.

Готово! Теперь у вас настроены основной домен и поддомен. Вы скачали два файла конфигурации, которые понадобятся вам для дальнейших шагов настройки обменника.
Загрузка файлов обменника и лицензии в FastPanel
После создания основного домена и поддомена перейдите в раздел файлов для загрузки архивов и лицензии следующим образом:
Шаги загрузки файлов:
В панели FastPanel на странице «Сайты» выберите нужный домен (основной или поддомен).
Перейдите в раздел «Файлы».
В правом верхнем углу файлового менеджера нажмите кнопку «Загрузить» (значок ⬆️).
Для основного домена загрузите архив Frontend и распакуйте его.
Для поддомена загрузите:
архив Backend (распакуйте после загрузки);
архив с лицензией (его тоже нужно распаковать после загрузки; внутри находятся текстовые файлы с лицензией).
После загрузки и распаковки файлов вы будете готовы перейти к следующему этапу настройки обменника.
Настройка файла конфигурации .env для поддомена
После загрузки и распаковки всех файлов обменника и лицензии необходимо обязательно настроить конфигурационный файл .env для поддомена (backend). Это один из самых важных шагов установки.
Внимательно следуйте инструкции ниже:
Открытие файла .env
В файловом менеджере FastPanel откройте папку вашего поддомена.
Найдите и откройте на редактирование файл .env.
Ключ лицензии
Лицензионный ключ вы получите в личном кабинете сайта iEXExchanger.
Авторизуйтесь в личном кабинете.
Перейдите в раздел «Мои лицензии».
Скопируйте ключ лицензии рядом с вашим активным доменом.

Вставьте полученный ключ в параметр:
LICENSE_KEY=ваш_лицензионный_ключ
Параметры соединения с базой данных
Данные для подключения к базе данных вы получаете после создания сайта в панели управления FastPanel. Обычно они отображаются сразу после создания сайта. Эти данные выглядят примерно так:
Пользователь:
- Имя: ваше_имя_пользователя # указан в данных FastPanel после создания сайта
- Пароль: ваш_пароль_пользователя
База данных:
- Имя: имя_вашей_базы
- Логин: ваш_логин_базы
- Пароль: ваш_пароль_базы
Важно:
Подставьте в параметры ниже именно свои данные, которые вам выдала панель управления FastPanel после создания сайта:
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=имя_вашей_базы # ваше имя базы данных
DB_USERNAME=ваше_имя_пользователя # имя пользователя из панели
DB_PASSWORD=ваш_пароль_пользователя # пароль пользователя из панели
Теперь соединение с базой данных настроено корректно, и вы можете переходить к следующему шагу инструкции.
Настройка сессий
Эти параметры регулируют поведение пользовательских сессий, влияя на то, как ваш обменник сохраняет авторизацию пользователей.
Настройте параметры следующим образом:
SESSION_DRIVER=database
SESSION_SECURE_COOKIE=true
SESSION_DOMAIN=.ваш_домен
Подробные пояснения к параметрам:
SESSION_DRIVER=database
Сессии пользователей будут храниться в базе данных, что обеспечивает надёжность работы системы.
SESSION_SECURE_COOKIE=true
Если ваш сайт использует SSL-сертификат (работает по HTTPS), укажите true. Если SSL не используется, укажите false.
SESSION_DOMAIN=.ваш_домен
Если указать домен в таком виде (с точкой впереди), авторизация пользователей будет доступна на основном сайте и на всех его поддоменах (например, app.ваш_домен).
Обязательно указывайте свои реальные домены и проверяйте правильность их написания.
Настройка cookie
Эти параметры отвечают за идентификацию и сохранение авторизации ваших пользователей.
Установите следующие значения в файле .env:
SESSION_COOKIE=название_вашей_сессии
Пояснение:
SESSION_COOKIE — это имя cookie, в котором хранится информация о сессии пользователя.
Если вы не уверены, какое имя выбрать, оставьте значение по умолчанию. Оно не влияет на работоспособность, если не требуется специальных настроек.
Пример настройки:
SESSION_COOKIE=iexexchanger_session
Путь к админке сайта (обязательно)
Это обязательный параметр, задающий уникальный адрес (URL), по которому будет доступна панель администратора вашего обменника. Правильная настройка этого параметра очень важна для безопасности вашего сайта.
Укажите параметр в файле .env:
APP_ADMIN_PATH=ваш_путь_к_админке
Пример правильной настройки:
APP_ADMIN_PATH=iexadmin
После настройки админка станет доступна по следующему адресу: https://app.
ваш_домен
/iexadmin
Рекомендуется:
Используйте уникальный путь (например, комбинацию букв и цифр), чтобы повысить безопасность и предотвратить несанкционированный доступ.
Запишите или запомните указанный путь, так как это единственный способ попасть в админ-панель сайта.
Настройка доменов и безопасности (CORS и Sanctum)
Для обеспечения безопасности и корректного взаимодействия вашего приложения с внешними запросами важно правильно настроить следующие параметры:
Sanctum Stateful Domains (SANCTUM_STATEFUL_DOMAINS):
Список доверенных доменов, с которых разрешено выполнение запросов с поддержкой аутентификации (cookie, авторизационные токены). Обычно это ваш основной домен и поддомены, которые будут взаимодействовать с сервером приложения через API.
CORS Allowed Origins (CORS_ALLOWED_ORIGINS):
Список доменов, с которых разрешено выполнение междоменных (CORS) запросов к API вашего приложения. Добавляйте сюда ваш основной сайт и любые поддомены, с которых будет осуществляться доступ к вашему API.
Frontend URL (FRONTEND_URL):
Основной домен вашего фронтенд-приложения, который используется сервером для формирования ссылок и перенаправлений.
CORS Supports Credentials (CORS_SUPPORTS_CREDENTIALS):
Настройка, разрешающая передачу авторизационных данных (cookies, заголовки аутентификации и прочее) в междоменных запросах.
Убедитесь, что указанные параметры соответствуют вашим актуальным доменам, иначе доступ к приложению и работа его функционала могут быть нарушены.
Рекомендуется проверять и актуализировать эти настройки при изменении или добавлении новых доменов, поддоменов или при переносе приложения на другой сервер.
CORS_ALLOWED_ORIGINS=https://ваш_домен,https://app.ваш_домен
FRONTEND_URL=https://ваш_домен
CORS_SUPPORTS_CREDENTIALS=true
Итоговая конфигурация
APP_URL=https://app.ваш_домен
API_URL=https://app.ваш_домен
CORS_ALLOWED_ORIGINS=https://ваш_домен,https://app.ваш_домен
FRONTEND_URL=https://ваш_домен
CORS_SUPPORTS_CREDENTIALS=true
SESSION_DRIVER=database
SESSION_DOMAIN=.ваш_домен
SANCTUM_STATEFUL_DOMAINS=https://app.ваш_домен
SESSION_SECURE_COOKIE=true
Настройка базы данных для Laravel Pulse
Laravel Pulse — инструмент мониторинга и анализа производительности приложения. Для эффективной работы Pulse рекомендуется создать отдельную базу данных.
Создание базы данных Pulse в FastPanel
В FastPanel перейдите: Управление → Базы данных → «Новая база данных».
Заполните форму:
Имя и логин: одинаковые (например, pulse_db)
Сайт: выберите ваш поддомен
Владелец: выберите пользователя сайта (не root, не fastuser)
Пароль: сгенерируйте и сохраните пароль

Нажмите «Сохранить».
Настройка подключения в файле .env
Откройте файл .env и добавьте настройки для Pulse:
PULSE_DB_CONNECTION=mysql-pulse
PULSE_DB_HOST=127.0.0.1
PULSE_DB_PORT=3306
PULSE_DB_DATABASE=pulse_db
PULSE_DB_USERNAME=pulse_db
PULSE_DB_PASSWORD=сгенерированный_вами_пароль
После этого сохраните изменения. Теперь Laravel Pulse готов к работе.
Загрузка основного файла базы данных
Теперь необходимо загрузить начальные данные в базу данных вашего обменника. Выполните эти шаги внимательно:
Шаг 1. Открытие phpMyAdmin из FastPanel:
Перейдите в панель FastPanel → Управление → Базы данных.
В списке баз данных найдите созданную вами базу (основную, не Pulse) и нажмите на иконку «Открыть phpMyAdmin» (иконка в виде квадрата со стрелкой ↗️).
Шаг 2. Импорт базы данных через phpMyAdmin:

В phpMyAdmin в левом меню выберите именно вашу базу данных.
В верхнем меню нажмите на раздел «Импорт».
Нажмите кнопку «Выберите файл», найдите файл базы данных в распакованном архиве вашего обменника по следующему пути:
database/iex_data.sql
После выбора файла нажмите кнопку «Импорт» (внизу страницы).
Подождите завершения загрузки (это может занять несколько минут).
Теперь база данных загружена и готова к дальнейшей работе обменника.
Изменение директории сайта (важно!)
После того, как вы загрузили архивы на сервер, необходимо указать правильную директорию сайта, чтобы веб-приложение работало корректно и безопасно.

Пошаговая инструкция:
В левом меню нажмите на пункт «Сайты».
Из списка выберите ваш поддомен (например, app.ваш_домен) и нажмите на него.
В открывшемся окне перейдите на вкладку «Настройки».
Найдите и перейдите в раздел «Директория сайта».
В поле «Поддиректория» убедитесь, что указано значение public. Если указано другое значение, обязательно замените его на public.
Корректная настройка должна выглядеть так:
Стартовая страница: index.php
Поддиректория: public
После внесения изменений нажмите кнопку «Сохранить».

Включение SSL-сертификатов (HTTPS) в FastPanel
Эта инструкция позволит вам быстро и корректно настроить SSL-сертификаты для основного домена и поддомена в панели управления FastPanel, что обеспечит безопасное подключение пользователей к вашему сайту через HTTPS.
Шаг 1. Настройка SSL для основного домена
Войдите в панель управления FastPanel.
В левом меню нажмите на вкладку «Сайты» и выберите основной домен.
Найдите раздел «SSL сертификаты» и нажмите на него.
Нажмите кнопку «Новый сертификат» в верхнем правом углу.
В открывшемся окне выберите тип «Самоподписанный».
Заполните форму:
Email — укажите свой почтовый адрес для получения уведомлений.
Длина ключа — выберите рекомендуемое значение 2048.
Основной домен — автоматически указан ваш основной домен.
Алиасы — добавьте алиас для основного домена (например,
www.ваш_домен
).Срок действия — установите рекомендуемый срок действия сертификата 365 дней.
Нажмите кнопку «Сохранить».

Шаг 2: Создание SSL-сертификата для поддомена
Вернитесь на страницу со списком сайтов и выберите ваш поддомен (например,
app.ваш_домен
).Снова откройте раздел «SSL сертификаты».
Нажмите кнопку «Новый сертификат».
Выберите тип сертификата «Самоподписанный».
Заполните форму аналогично предыдущему шагу:
Email — укажите свой почтовый адрес.
Длина ключа — 2048.
Основной домен — автоматически указан ваш поддомен.
Алиасы — добавьте алиас для поддомена (например,
www.app.ваш_домен
).Срок действия — 365 дней.
Нажмите кнопку «Сохранить».
После завершения этих действий вы увидите оба сертификата в списке SSL-сертификатов для ваших сайтов.

Важные моменты:
Самоподписанные сертификаты подходят для тестирования и внутренних ресурсов. Для публичных сайтов рекомендуется использовать сертификаты Let's Encrypt, которые можно выпустить также через FastPanel.
SSL-сертификаты автоматически активируются после создания. Убедитесь, что настройки вашего сайта корректно используют HTTPS-протокол.
Теперь ваши сайты будут работать по защищённому HTTPS-соединению.
Настройка типа бэкенда и версии PHP в FastPanel
Если на вашем поддомене по умолчанию установлен Apache, вам необходимо переключить его на PHP-FPM, чтобы обеспечить корректную работу приложения на Laravel.
Шаг 1. Переход в раздел настроек поддомена:
В главном меню панели управления FastPanel выберите ваш поддомен.
Нажмите на иконку «Настройки» в меню управления сайтом.
Шаг 2. Измените тип бэкенда на PHP-FPM:
В открывшемся меню слева перейдите в раздел «Бэкенд (PHP, Обратный прокси и т.п.)».
В поле «Тип бэкенда» выберите вариант:
PHP-FPM
Шаг 3. Настройте версию PHP:
В поле «Версия» выберите нужную версию PHP, например:
PHP 8.2
Шаг 4. Установите количество воркеров:
В поле «Количество воркеров» рекомендуется указать значение:
2 (оптимальное для большинства стандартных конфигураций).
Шаг 5. Сохраните настройки:
После внесения изменений нажмите кнопку «Сохранить».

Теперь ваш сайт успешно переключен на обработчик PHP-FPM, а версия PHP корректно настроена и готова к работе.
Ручная настройка конфигурации Nginx
Для корректной работы вашего обменника и поддержки всех необходимых функций необходимо вручную настроить веб-сервер Nginx. Настройки отличаются для поддомена и основного домена, поэтому следуйте инструкциям внимательно для каждого из них.
Настройка Nginx для поддомена (Backend)
Порядок действий:
Войдите в панель управления FastPanel → «Сайты».
Найдите свой поддомен (например, app.ваш_домен) и перейдите в его настройки.
Перейдите во вкладку «Ручная настройка», затем выберите раздел «Frontend».
Найдите (или добавьте) стандартный блок конфигурации:
location / {
proxy_pass http://127.0.0.1:81;
proxy_redirect http://127.0.0.1:81/ /;
include /etc/nginx/proxy_params;
}
Сразу после него вставьте следующий блок (для поддержки WebSocket и Reverb):
location /app {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header SERVER_PORT $server_port;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://0.0.0.0:8080;
}
После внесения изменений нажмите кнопку «Сохранить».
Эти настройки обеспечат правильную работу всех realtime-функций вашего приложения на поддомене.
Настройка Nginx для основного домена (Frontend)
Эти настройки позволяют улучшить производительность сайта, настроить редиректы по языкам и связать frontend-приложение с backend-компонентами.
Перейдите в панель управления FastPanel → «Сайты» → ваш основной домен → «Ручная настройка» → «Frontend».

Выполните следующие шаги внимательно:
Шаг 1: Добавьте блок определения языка (map) за пределами блока server
В самый верх конфигурации (за пределами блока server {}) вставьте:
map $http_accept_language $accept_language {
"~*ru" ru;
"~*en" en;
default ru;
}
map $cookie_lang $selected_lang {
"~^(ru|en)$" $cookie_lang;
default $accept_language;
}
Этот блок автоматически определяет язык браузера пользователя и сохраняет его в переменной для дальнейшего перенаправления.

Шаг 2: Gzip сжатие
Замени
gzip_comp_level 1;
на
gzip_comp_level 5;
Будет чуть медленнее на слабых CPU, но даст сильнее сжатие.
Шаг 3: Добавьте проверку языка и перенаправление внутри блока server
Найдите строку: disable_symlinks if_not_owner from=$root_path;
Сразу после неё добавьте:
add_header Vary "Accept-Language, Cookie";
Эти строки направляют пользователя на соответствующую языковую версию сайта по умолчанию (русский язык), если язык браузера не определён.
Шаг 4: Замените блок location / внутри блока server
Если у вас уже есть блок location /
внутри конфигурации nginx, его необходимо удалить и заменить новой конфигурацией, подходящей для Angular SSR (localhost:4000) и отдачи статики.
Удалите старую конфигурацию:
location / {
proxy_pass http://127.0.0.1:81;
proxy_redirect http://127.0.0.1:81/ /;
include /etc/nginx/proxy_params;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
try_files $uri $uri/ @fallback;
}
location @fallback {
proxy_pass http://127.0.0.1:81;
proxy_redirect http://127.0.0.1:81/ /;
include /etc/nginx/proxy_params;
}
Добавьте вместо этого:
location = / {
return 302 /$selected_lang/$is_args$args;
}
location ~ ^/(ru|en)$ {
add_header Set-Cookie "lang=$1; Path=/; Max-Age=31536000; SameSite=Lax";
return 302 /$1/$is_args$args;
}
location ~ ^/(ru|en)/ {
proxy_pass http://localhost:4000;
proxy_redirect http://localhost:4000/ /;
include /etc/nginx/proxy_params;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering on;
proxy_buffers 16 64k;
proxy_buffer_size 128k;
proxy_read_timeout 60s;
proxy_connect_timeout 10s;
proxy_send_timeout 10s;
}
location / {
return 302 /$selected_lang$request_uri$is_args$args;
}
location ^~ /images/ {
alias /var/www/пользователь/data/www/app.ваш_домен/public/images/;
expires 30d;
add_header Cache-Control "public, max-age=2592000, immutable";
autoindex off;
access_log off;
}
location ^~ /exports/ {
alias /var/www/пользователь/data/www/app.ваш_домен/public/static/exports/;
autoindex off;
access_log off;
}
location ^~ /static/ {
alias /var/www/пользователь/data/www/app.ваш_домен/public/static/;
autoindex off;
access_log off;
}
location ^~ /storage/ {
alias /var/www/пользователь/data/www/app.ваш_домен/public/storage/;
expires 30d;
add_header Cache-Control "public, max-age=2592000, immutable";
autoindex off;
access_log off;
}
location /apis {
index index.php index.html index.htm;
alias /var/www/пользователь/data/www/app.ваш_домен/public;
# Laravel routing fallback
try_files $uri $uri/ @apis;
# Защита от скрытых файлов (.env, .htaccess и т.п.)
location ~ /\.(?!well-known).* {
deny all;
}
# PHP-обработка
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/var/run/app.ваш_домен.sock;
}
}
location @apis {
rewrite ^/apis/(.*)$ /apis/index.php?/$1 last;
}
Важно! Обязательно замените все указания:
/var/www/пользователь/data/www/app.ваш_домен
/var/run/app.ваш_домен.sock
Замените эти шаблонные пути на реальные директории, созданные автоматически при добавлении сайта в панели FastPanel.
Last updated
Was this helpful?