Установка продукта
Эта инструкция описывает первичную установку iEXExchanger на новый Linux-сервер без панели управления. Выполнить её может владелец обменного пункта, системный администратор или технический специалист с доступом к серверу.
Installer — программа установки iEXExchanger. Она подготавливает сервер, устанавливает необходимое окружение, создаёт базы данных, загружает начальные данные и настраивает сайт, HTTPS, фоновые службы и резервное копирование.
Совместимые версии компонентов определяются поставкой. Устанавливать или подбирать их вручную не требуется.
После установки доступны три инструмента:
iexctl— команда для проверки и обслуживания установленной системы.Updater — инструмент применения последующих обновлений iEXExchanger.
Update Agent — фоновая служба, через которую административная панель взаимодействует с системой обновлений на сервере.
Все серверные команды в этой инструкции выполняются от root — администратора сервера. Команды для вашего компьютера отмечены отдельно.
Первичная установка предназначена только для чистого сервера. Не запускайте её поверх действующего iEXExchanger, FASTPANEL, другого сайта, существующих баз данных или настроенного серверного окружения.
Обновление и перенос работающего проекта выполняются по отдельным инструкциям.
Перед началом установки
Обозначения доменов
В инструкции используются два адреса:
https://ваш_домен
https://app.ваш_доменhttps://ваш_домен — основной домен Frontend, на котором открывается клиентский сайт обменного пункта.
https://app.ваш_домен — технический поддомен Backend. На нём находятся административная панель, API и другие серверные функции iEXExchanger.
API — интерфейс, через который клиентский сайт и другие разрешённые приложения обращаются к серверным функциям.
В командах и install.yaml заменяйте эти обозначения фактическими доменами проекта.
Домены в install.yaml указываются без https://, портов и путей:
ваш_домен
app.ваш_доменАдрес административной панели содержит дополнительный путь после домена Backend. Точный адрес для входа Installer сохранит после установки — придумывать или подбирать его самостоятельно не нужно.
Требования к серверу
Системные требованияДля установки необходимы:
поддерживаемая операционная система и архитектура процессора;
достаточные ресурсы процессора, оперативной памяти и свободного места на диске;
полноценный доступ
root;публичный IPv4-адрес;
возможность управлять DNS-записями домена;
доступные порты SSH, HTTP и HTTPS;
доступ сервера к интернету для загрузки необходимых компонентов.
IPv6 используйте только при его полноценной настройке и доступности на сервере.
SSH — защищённое подключение к командной строке сервера. HTTP и HTTPS используются для открытия сайта и работы сертификата.
Разрешите входящие подключения к фактическому SSH-порту и портам 80 и 443 в сетевом экране хостинга. Локальный сетевой экран Installer настроит во время установки.
Installer дополнительно проверит платформу и ресурсы командами checklist и plan. Не продолжайте установку, если платформа отмечена как неподдерживаемая или обязательных ресурсов недостаточно.
Не устанавливайте вручную Nginx, PHP, PostgreSQL, Redis, Node.js, PM2, Supervisor или FASTPANEL. Требуемое серверное окружение создаёт Installer.
Подготовьте данные
До начала установки подготовьте:
IP-адрес сервера;
пользователя
root;порт SSH;
способ авторизации по SSH — пароль или ключ;
основной домен Frontend;
технический поддомен Backend;
архив лицензии;
код лицензии, если он предоставлен отдельно;
контрольные суммы скачанных файлов;
свой email для сертификата Let's Encrypt, если хотите указать его при выпуске.
Email не является обязательным условием выпуска сертификата. Порядок заполнения этого поля описан в разделе «Настройте HTTPS».
Проверьте домены до активации лицензии и установки. Опечатка может привести к ошибке проверки лицензии, DNS или HTTPS.
Подготовьте DNS
DNS-записи связывают доменные имена с сервером. Создайте их в сервисе, который управляет DNS вашего домена, до проверки плана установки.
Для основного домена и поддомена app создайте записи типа A с IPv4-адресом нового сервера.
Запись типа AAAA нужна только при использовании IPv6. Добавляйте её, если этот адрес настроен на сервере и доступен извне.
Устаревшие A- или AAAA-записи могут направлять часть посетителей на другой сервер и мешать проверке HTTPS.
Если нужен дополнительный адрес с www, создайте для него DNS-запись и добавьте имя в spec.domains.frontendAliases. Installer не создаёт DNS-записи и не добавляет www автоматически.
После изменения записей дождитесь, пока новые адреса станут доступны через публичный DNS.
Прямое подключение
При прямом подключении посетители обращаются непосредственно к вашему серверу.
В install.yaml для параметра spec.preflight.dnsMode используется значение:
Installer проверяет, что публичные адреса доменов совпадают с адресами сервера.
Параметр spec.nginx.trustedProxyCidrs в этом случае остаётся пустым:
Cloudflare или другой прокси-сервис
При включённом проксировании посетители сначала обращаются к Cloudflare или другому промежуточному сервису, который передаёт запросы вашему серверу.
Поэтому публичный DNS может показывать адрес сервиса, а не IP вашего сервера.
Для такой схемы используется:
Публичные DNS-записи всё равно обязательны. Этот режим разрешает адреса прокси-сервиса при проверке DNS, но не подтверждает правильность всех его настроек.
В spec.nginx.trustedProxyCidrs укажите актуальные диапазоны IP-адресов используемого сервиса.
CIDR — формат записи диапазона адресов: адрес сети и число после /. Эти диапазоны позволяют Nginx доверять сведениям о посетителе, полученным от вашего прокси-сервиса.
Используйте только официальный список провайдера. IP самого сервера сюда добавлять не нужно.
Для Cloudflare актуальные диапазоны опубликованы на странице IP Ranges.
Порядок первоначальной настройки HTTPS при использовании Cloudflare приведён в разделе «Настройте HTTPS».
Поддержка и услуга установки
В документации приведён порядок самостоятельной первичной установки.
Если вам требуется установка специалистами, повторная установка, перенос системы или подготовка дополнительного сервера, уточните действующие условия перед заказом.
Подробнее: Услуги iEXExchanger.
Установка с помощью ИИ-агента
Этот вариант предназначен для технического ИИ-агента, которому разрешено подключаться к новому серверу, выполнять команды от root, работать с файлами и проверять сайт через браузер.
До запуска подготовьте установочные файлы и данные из раздела «Перед началом установки».
Подготовка установочных файлов
Скачайте файлы
В личном кабинете откройте нужную лицензию и найдите блок «Релизы и файлы лицензии».
Для первичной установки подготовьте:
Backend и Frontend также могут иметь имена:
Переименовывать такие архивы не требуется.
Имя архива лицензии может отличаться. Используйте ZIP, предоставленный для вашей лицензии.
full означает полный комплект для первичной установки. Архив обновления предназначен для уже установленной системы и для этой инструкции не подходит.
Backend и Frontend должны относиться к одному выпуску. Лицензионный архив должен соответствовать вашему домену и быть совместим с выбранным выпуском. Совместимость лицензии нельзя определять только по имени ZIP-файла.
Не распаковывайте Backend, Frontend и архив лицензии самостоятельно.
Отдельно скачивать iexctl, Updater или Update Agent не нужно. Installer проверяет управляющие инструменты, включённые в поставку, и устанавливает совместимый комплект.
Если комплект неполный или несовместимый, установка остановится с пояснением. Не обходите такую проверку ручной заменой файлов.
SHA-256 — контрольная сумма, рассчитанная по содержимому файла. Сравнение с официальным значением позволяет обнаружить повреждение или подмену файла.
Сохраните контрольные суммы, показанные в личном кабинете.
Файл iex-installer-linux.zip.sha256 нужен для внешней проверки архива Installer. Если его нет в загрузках, получите полный официальный комплект.
Не создавайте собственную контрольную сумму вместо отсутствующей официальной: такая проверка не подтвердит происхождение скачанного архива.
Загрузите файлы на сервер
Загрузите все подготовленные файлы в каталог:
Для передачи можно использовать SFTP — защищённую передачу файлов через SSH. Подключитесь к серверу с его IP-адресом, пользователем root и фактическим SSH-портом.
Если используете команду scp, откройте терминал на своём компьютере и перейдите в каталог со скачанными файлами.
Выполните:
Замените:
ПОРТ_SSH— фактическим портом SSH;IP_СЕРВЕРА— IP-адресом сервера;BACKEND_FULL.zip— именем скачанного Backend-архива;FRONTEND_FULL.zip— именем скачанного Frontend-архива;АРХИВ_ЛИЦЕНЗИИ.zip— именем лицензионного архива.
Для стандартного SSH-порта 22 параметр -P ПОРТ_SSH можно убрать.
В команде scp параметр порта -P пишется с заглавной буквы.
Подключитесь к серверу
Откройте терминал на своём компьютере.
Для нестандартного SSH-порта выполните:
Для стандартного порта:
В команде ssh порт задаётся строчной буквой -p.
После подключения проверьте, что вошли на нужный сервер:
hostname покажет имя сервера, а whoami должен вывести:
Все последующие серверные команды выполняются в этой SSH-сессии.
Для команд с read в этой инструкции используется оболочка Bash, стандартная для root на поддерживаемых системах.
Проверьте загруженные файлы
Выведите список ZIP-файлов и файла контрольной суммы Installer:
В /home должны находиться:
архив Installer;
файл
iex-installer-linux.zip.sha256;один полный Backend-архив;
один полный Frontend-архив;
один архив лицензии.
Автоматический поиск не должен выбирать между несколькими архивами одного назначения.
Если в /home находятся старые версии, другой архив лицензии или посторонние ZIP-файлы, переместите их в отдельный каталог. Не удаляйте неизвестные файлы автоматически.
Установите начальные утилиты
На чистом сервере могут отсутствовать необходимые утилиты:
unzipраспаковывает Installer;ca-certificatesпозволяет проверять защищённые HTTPS-соединения;nanoиспользуется для редактирования конфигурации.
Установите их:
Обновите системное хранилище сертификатов:
Проверьте доступность команд:
Команды command -v должны вывести пути к программам. Последняя команда должна завершиться без ошибки; отдельного сообщения об успехе она не выводит.
Проверьте контрольные суммы
Перейдите в каталог загруженных файлов и проверьте архив Installer:
Ожидаемый результат:
Рассчитайте SHA-256 остальных архивов:
Сравните значения с контрольными суммами из личного кабинета.
Не продолжайте установку, если хотя бы одна контрольная сумма отличается. Повторно скачайте и загрузите соответствующий файл.
Не изменяйте файл контрольных сумм ради получения результата OK.
После проверки установите владельца и ограничьте доступ к архивам:
Права 0600 разрешают читать и изменять файлы только владельцу — root.
Проверьте предыдущую распаковку
До распаковки выполните:
При первой подготовке оба каталога должны отсутствовать. В этом случае команда не выведет их список.
Если /home/installer уже существует, не распаковывайте новый Installer поверх него.
Сначала проверьте состояние:
Посмотрите отчёты:
Если ранее запускалась установка, используйте раздел «Продолжение прерванной установки».
Если существует только /home/iex-installer-linux, проверьте его содержимое и выясните, была ли прервана подготовка. Не удаляйте каталог автоматически.
Распакуйте Installer
Если /home/installer и /home/iex-installer-linux отсутствуют, выполните:
Проверьте файлы внутри распакованного комплекта:
Все проверяемые файлы должны получить результат OK.
Разрешите запуск Installer и исполняемых файлов для поддерживаемых архитектур:
Проверьте запуск:
Команда выведет версию Installer.
Запускной файл iex-installer автоматически выбирает исполняемый файл для архитектуры сервера. Выбирать его вручную не нужно.
Настройка Installer
Сохраните код лицензии
Проверьте, предоставлен ли в личном кабинете отдельный код лицензии.

Если код предоставлен отдельно, сохраните его в защищённом файле:
Если этот файл уже существует после предыдущей попытки установки, сначала проверьте состояние операции. Не перезаписывайте его без необходимости.
Выполните команды ниже. После приглашения Введите код лицензии: вставьте код и нажмите Enter.
Вводимые символы не отображаются — это нормально.
umask 077 ограничивает доступ уже в момент создания файла.
Проверьте владельца и права без вывода содержимого:
Ожидаемый результат:
Не записывайте код лицензии непосредственно в install.yaml, историю команд или отчёт.
Если отдельный код не предоставлен и он уже включён в Backend, оставьте spec.license.keyRef закомментированным.
Создайте install.yaml
install.yaml — файл настроек, по которому Installer выполняет установку.
Перейдите в каталог Installer:
Создайте рабочую конфигурацию из полного примера, включённого в поставку:
Если install.yaml уже существует, команда не заменит его новым примером.
Редактируйте полный документ. В YAML вложенность определяется отступами: сохраняйте их и используйте пробелы, а не табуляцию.
Не создавайте второй раздел spec и не заменяйте весь install.yaml сокращённым примером из документации.
Примеры ниже показывают отдельные части файла. Изменяйте соответствующие существующие поля, сохраняя остальные настройки.
Для сохранения файла в nano нажмите Ctrl + O, подтвердите имя клавишей Enter, затем нажмите Ctrl + X.
Укажите параметры установки
Все параметры ниже находятся внутри существующего раздела spec.
Обозначение spec.domains.frontend означает: найти spec, внутри него domains, затем изменить поле frontend.
Домены и название проекта
В разделе spec.domains укажите свои домены:
Не добавляйте https://, порт или путь административной панели. Остальные поля раздела domains сохраните.
В spec.application.name укажите название проекта. Обычно здесь используется основной домен:
В этом же разделе находится adminPath — часть адреса административной панели после домена Backend.
Если менять её не требуется, оставьте значение из поставки. Готовый адрес для входа Installer сохранит после установки.
Режим проверки DNS
При прямом подключении в существующем разделе spec.preflight должны быть значения:
Если используется Cloudflare или другой прокси-сервис, замените dnsMode на proxy.
resourceMode: enforce означает, что Installer остановит установку при нехватке обязательных ресурсов.
Оставьте это значение. Перевод ошибки в предупреждение не устраняет нехватку памяти или места на диске.
Для прямого подключения поле в существующем разделе spec.nginx должно оставаться пустым:
При использовании прокси-сервиса заполните этот список его официальными диапазонами адресов, как описано в разделе подготовки DNS.
SSH и сетевой экран
В spec.firewall.sshPort укажите порт, через который вы подключились к серверу.
Для стандартного порта:
Firewall — сетевой экран, ограничивающий входящие подключения. Installer настроит его с учётом указанного SSH-порта.
spec.firewall.sshPort должен совпадать с фактическим портом SSH. Неверное значение может заблокировать последующее подключение.
Этот параметр разрешает порт в сетевом экране, но не меняет настройки самой службы SSH.
Код лицензии
Если вы создали /root/iex-license/license-key, найдите в разделе spec.license закомментированное поле keyRef и раскомментируйте его:
Префикс file: означает, что Installer должен прочитать код из указанного файла. Сам код в YAML не вставляется.
Если отдельный код не предоставлен и он уже включён в Backend, оставьте поле закомментированным.
Файлы поставки
Оставьте каталог входных файлов в разделе spec.artifacts:
У источников Backend, Frontend и архива лицензии сохраните значение:
auto означает автоматический поиск подходящих архивов в /home. Прописывать версии и имена архивов вручную не требуется.
Данные для входа администратора
Параметр spec.admin.credentialsExportPath задаёт файл, в который Installer запишет адрес панели, email и новый пароль администратора:
Можно оставить стандартный путь.
Если путь изменяется, файл должен находиться непосредственно внутри /home, без вложенного каталога. Символические ссылки вместо файла не допускаются.
Сохраните:
Это позволяет Installer сформировать новый пароль администратора.
Поле spec.admin.expectedEmail при заполнении проверяет ожидаемый email существующего администратора. Оно не создаёт новый аккаунт и не изменяет его адрес.
Если такая проверка не нужна, оставьте значение из примера.
Остальные настройки
Оставьте без изменений штатные версии окружения и значения автоматического подбора ресурсов. Installer использует совместимые настройки из поставки.
Сохраните включёнными:
HTTPS;
сетевой экран;
резервное копирование;
создание нового пароля администратора.
Не меняйте значения вида:
Это ссылки на секреты, которые Installer создаст для вашей установки, например пароли баз данных и ключи приложения. Они не являются адресами сайтов и не требуют ручного заполнения.
spec.host.applicationUser задаёт отдельного пользователя Linux, от имени которого работает приложение. Он отличается от root.
Оставьте штатное значение, если нет технической необходимости выбрать другое до первой установки. После установки эта учётная запись закрепляется за системой.
Настройте HTTPS
HTTPS обеспечивает защищённое соединение браузера с сайтом. Для него нужен сертификат, соответствующий доменам проекта.
Автоматический сертификат Let's Encrypt
Для стандартной установки используйте Let's Encrypt. Installer получит сертификат и настроит его автоматическое продление.
В существующем разделе spec.tls должны быть следующие параметры:
В email можно указать свой действующий адрес или оставить пустую строку "".
Email не является обязательным условием выпуска сертификата. Адрес-заглушку из install.example.yaml необходимо заменить своим адресом или пустой строкой.
redirectHttp: true включает перенаправление посетителей с HTTP на HTTPS.
До установки оба домена и все добавленные дополнительные имена должны иметь правильные DNS-записи.
Порт 80 должен быть доступен извне для проверки владения доменом, а порт 443 — для HTTPS.
Проверке по пути:
не должны мешать парольная защита, CAPTCHA или правила прокси-сервиса.
Первоначальный выпуск сертификата с Cloudflare
Настройка SSL/TLSЕсли сертификата на новом сервере ещё нет, первоначальный выпуск можно выполнить с записями Cloudflare в режиме DNS only.
В этом режиме запросы идут напрямую на сервер. Дождитесь обновления DNS перед запуском Installer.
Если после установки планируется включить проксирование, задайте:
до первого запуска установки. Временно включённый DNS only этому не мешает.
После успешного выпуска сертификата выберите в Cloudflare режим Full (strict) и включите проксирование нужных записей.
Затем обязательно выполните verify --public-endpoints, описанную ниже. Она проверяет итоговую доступность проекта через публичные адреса.
Если используется готовый сертификат
Этот вариант нужен при наличии собственного действующего сертификата и соответствующего приватного ключа. Для обычной установки оставьте Let's Encrypt.
Подготовьте сертификат с полной цепочкой в формате PEM и приватный ключ.
Сертификат должен:
покрывать оба домена и дополнительные имена из конфигурации;
соответствовать приватному ключу;
быть доверенным системой;
иметь запас срока действия более 30 дней.
Создайте защищённый каталог:
Загрузите в него файлы:
Ограничьте доступ:
В существующем разделе spec.tls используйте:
Поле email для этого варианта удалите.
Installer проверит сертификат и ключ перед использованием.
Продление собственного сертификата организуется отдельно. Автоматическое продление Let's Encrypt к этому варианту не относится.
Проверьте итоговую конфигурацию
Покажите настройки в безопасном виде:
Проверьте структуру файла:
Проверьте готовность сервера, DNS и входных файлов:
Сформируйте план установки:
Назначение команд:
config show
Показывает итоговые настройки в безопасном виде
config validate
Проверяет структуру и допустимость конфигурации
checklist
Показывает готовность сервера и разрешённое следующее действие
plan
Формирует последовательность установки и проверяет её условия
Эти команды не устанавливают серверное окружение.
Устраните ошибки ERROR. Каждое предупреждение WARN изучите до запуска установки.
На чистом сервере часть пунктов может иметь статус:
Это означает, что компонент ещё не установлен и будет подготовлен Installer. Такой статус не равен ошибке.
Статус:
означает, что проверка станет доступна позже.
Для первой установки строка Следующее действие должна разрешать команду install.
Если указан другой вариант, используйте раздел «Продолжение прерванной установки».
Количество и порядок этапов определяются полученной поставкой. Ориентируйтесь на названия и результаты этапов, а не на их номера.
Установка системы
Запустите Installer
После успешного выполнения config validate, checklist и plan запустите:
Параметры команды:
--configуказывает файл настроек;--non-interactiveотключает интерактивные вопросы;--yesподтверждает выполнение установки.
Эти параметры не отключают обязательные проверки.
Не закрывайте SSH-сессию до завершения команды.
Не запускайте одновременно вторую установку, resume, обновление или ручные операции с базами данных.
Что выполняет Installer
Во время первичной установки Installer:
проверяет платформу, ресурсы, DNS, системное время и занятые порты;
проверяет отсутствие конфликтующего окружения;
устанавливает необходимые системные компоненты и ionCube Loader;
настраивает swap — резервную область на диске на случай нехватки оперативной памяти;
создаёт отдельного пользователя приложения;
создаёт каталоги приложения и сохраняемых данных;
создаёт уникальные секреты установки;
распаковывает Backend, Frontend и архив лицензии;
настраивает базы данных, Nginx, Redis, сетевой экран и HTTPS;
импортирует начальные данные;
создаёт и проверяет начальную резервную копию;
выполняет Product Updates;
создаёт новый пароль администратора;
делает подготовленный выпуск приложения текущим;
запускает службы приложения и задачи по расписанию;
включает регулярное резервное копирование;
устанавливает
iexctl, Updater и Update Agent;выполняет итоговые проверки;
сохраняет состояние и отчёт установки.
Product Updates — предусмотренная выпуском последовательность изменений базы данных и настроек приложения. Во время установки её выполняет Installer.
Приложение работает от отдельного пользователя Linux. Фоновые службы выполняют свои задачи:
Horizon обрабатывает очередь заданий.
Reverb передаёт события в реальном времени.
Pulse собирает диагностические данные.
Scheduler запускает действия по расписанию.
Открывать внутренние порты баз данных и фоновых служб в интернет для установки не требуется.
Импорт баз данных
Основная база заполняется из файла Backend:
Вторая база используется Pulse для диагностических данных. Она заполняется из:
Не импортируйте эти файлы вручную.
Не запускайте отдельно php artisan migrate, Product Updates, установку зависимостей через Composer или npm и сборку приложения.
Штатную последовательность импорта и подготовки приложения выполняет Installer.
Статусы в терминале
Во время установки могут отображаться следующие статусы:
ПРОВЕРКА
Проверяется текущее состояние
ВЫПОЛНЯЕТСЯ
Выполняется изменение сервера
КОНТРОЛЬ
Проверяется результат изменения
ПОДТВЕРЖДЁН
Результат этапа подтверждён
ПОВТОР
Этап ожидает повторного выполнения
ГОТОВО
Этап успешно завершён
ПРОПУЩЕН
Изменение не требуется или этап не применяется к этой конфигурации
ОШИБКА
Установка остановлена из-за ошибки
ПРОПУЩЕН сам по себе не означает ошибку. Читайте пояснение этапа и проверяйте итоговый отчёт.
Успех всей установки определяется итоговым статусом и последующими проверками.
Статусы в отчёте
Команда reports show install использует отдельные названия:
ОЖИДАЕТ
Этап ещё не выполнен
ВЫПОЛНЯЕТСЯ
Этап выполняется
УСПЕШНО
Этап выполнен
УЖЕ ГОТОВО
Требуемое состояние существовало ранее
ОШИБКА
Этап завершился ошибкой
Для обязательного завершённого этапа допустимы:
Продолжение прерванной установки
Проверьте состояние
Если команда завершилась ошибкой или SSH-соединение было потеряно, не запускайте новую установку сразу.
Проверьте состояние:
Посмотрите список отчётов:
Откройте последний отчёт:
Отчёт содержит:
Run ID — идентификатор запуска;
итоговый статус;
идентификатор этапа с ошибкой;
путь к журналу;
пути установки;
результаты выполненных этапов.
Если процесс установки ещё работает, дождитесь его завершения. Потеря SSH-соединения сама по себе не подтверждает остановку процесса.
После просмотра состояния и отчёта выполните:
Найдите строку Следующее действие.
install
Проверить актуальный план и выполнить разрешённую установку
resume
Устранить причину ошибки и продолжить совместимый незавершённый запуск
verify
Установка уже завершена; проверить её результат
ручная диагностика
Автоматическое продолжение заблокировано; изучить указанную причину
Продолжите тот же запуск
Используйте resume, только если в строке Следующее действие команда checklist предлагает resume и не изменялись:
Installer;
/home/installer/install.yaml;Backend-архив;
Frontend-архив;
архив лицензии.
После устранения причины ошибки выполните:
Installer сверит файлы и настройки с сохранённым планом, затем продолжит незавершённые этапы того же запуска.
Не удаляйте каталоги установки, базы данных, состояние установки или журналы ради повторного запуска.
Не импортируйте SQL повторно и не запускайте Product Updates вручную.
Если изменились конфигурация или архивы
Если изменились install.yaml, Installer или хотя бы один ZIP-файл, не используйте resume старого запуска.
Повторите проверки:
Продолжайте только способом, разрешённым Installer после проверки нового плана.
Если ошибка относится к Product Updates, SQL или содержимому поставки, не исправляйте установленную базу вручную.
Сохраните Run ID и отчёт. Дальнейшие действия выполняйте с исправленной официальной поставкой или по инструкции технической поддержки.
Если Let's Encrypt сообщил о лимите
Если в ошибке указано retry after, сохраните тот же Installer, install.yaml и архивы.
Дождитесь указанного времени UTC с небольшим запасом, затем повторите checklist.
Если следующим действием предложен resume, продолжите тот же запуск.
Не запускайте новые установки подряд ради повторного запроса сертификата и не заменяйте рабочий HTTPS самоподписанным сертификатом.
Проверка установленной системы
Проверьте итоговый статус
Выполните:
Откройте отчёт:
Итоговый статус установки должен быть:
Если итоговый статус отличается, сначала устраните причину по отчёту и рекомендациям Installer.
Выполните внутреннюю проверку
Проверьте установленную систему:
Команда должна завершиться без ошибки.
Эта проверка оценивает установленное окружение и работу компонентов системы.
Выполните публичную проверку
После направления доменов на установленный сервер и завершения настройки прокси, если он используется, выполните:
Команда проверяет доступность Frontend и Backend через публичные домены.
Успешная внутренняя проверка не заменяет публичную: ошибочная настройка DNS или Cloudflare может мешать посетителям, даже если службы на самом сервере работают.
Проверьте управляющие инструменты
Проверьте постоянную команду управления:
Первая команда должна показать путь к iexctl, вторая — установленную версию.
Проверьте общее состояние системы и служб:
Назначение команд:
iexctl doctor
Общая диагностика установленной системы
iexctl services status
Просмотр состояния управляемых служб
iexctl services verify
Проверка работоспособности обязательных служб
Проверьте Updater:
Проверьте версии Updater и Update Agent:
Эти команды проверяют доступность инструментов и показывают их версии. Обновление приложения они не запускают.
iexctl doctor может показать предупреждение, например о хранении резервных копий на том же диске или временной недоступности внешнего сервиса.
Предупреждение нужно изучить, но оно не равно ошибке основной службы. Ошибку iexctl services verify необходимо устранить до ввода системы в работу.
Проверьте Update Agent и системные службы
Проверьте автоматический запуск и текущее состояние агента:
Ожидаемые значения:
enabled означает, что служба включена в автоматический запуск. active означает, что она работает сейчас.
Дополнительно проверьте механизм контроля зависания агента — watchdog:
Ожидается:
Type=notify;NotifyAccess=main;ненулевое значение
WatchdogUSec.
Это означает, что служба сообщает системе о своей готовности и поддерживает контроль зависания. Эти параметры настраивает Installer; редактировать их вручную не нужно.
systemd управляет запуском системных служб. Проверьте, есть ли службы с ошибкой:
В списке не должно быть служб в состоянии failed — завершившихся с ошибкой.
Подтвердите базы, Product Updates и начальную копию
Следующая команда отбирает нужные строки из отчёта. Она не запускает импорт или изменения повторно:
Проверьте наличие этапов:
Их значения:
host.postgresql.import.main
Импорт начальных данных основной базы
host.postgresql.import.pulse
Импорт начальных данных базы Pulse
backup.initial-verified
Создание и проверку начальной резервной копии
artisan.product-updates.apply
Выполнение штатной последовательности Product Updates
controltools.install
Установку проверенного комплекта управляющих инструментов
Каждый обязательный этап должен иметь статус:
Если необходимое состояние было подтверждено при продолжении установки, также допустим:
Проверьте Scheduler
Scheduler запускает задачи приложения по расписанию.
При стандартной установке служба CRON каждую минуту вызывает schedule:run, а приложение определяет, какие задачи пора выполнить.
Проверьте CRON:
Ожидаемые значения:
Проверьте файл расписания, созданный Installer:
В файле должна быть одна созданная Installer ежеминутная команда schedule:run, выполняемая от пользователя приложения, а не от root.
Проверьте результат установочного запуска Scheduler:
Ожидаемый результат:
iex-scheduler.service выполняет одно задание и завершается. Поэтому inactive при результате success является нормальным состоянием.
Отдельный iex-scheduler.timer при такой схеме не нужен: расписанием уже управляет CRON.
Проверьте отсутствие старого таймера, чтобы задачи не запускались дважды:
Если найден старый таймер, сохраните результат диагностики и выясните причину. Не создавайте параллельное расписание вручную.
Проверьте продление сертификата
При использовании Let's Encrypt проверьте автоматический запуск продления:
Ожидаемые значения:
Посмотрите ближайший запуск:
Таймер — расписание, по которому systemd запускает задачу.
Для сертификата, переданного через provider: files, наличие certbot.timer не требуется. Продление такого сертификата организуется отдельно.
Проверьте регистрацию сервера
Выполните синхронизацию с официальным сервисом:
Первая команда синхронизирует сведения об установке, вторая показывает результат.
При ошибке изучите её причину.
Временная недоступность внешнего сервиса отличается от отказа из-за лицензии или домена. Отказ регистрации, связанный с данными проекта, нельзя оставлять без исправления.
Проверьте клиентский сайт
Откройте в браузере:
Проверьте:
сайт открывается;
используется HTTPS;
браузер не предупреждает об ошибке сертификата;
страница повторно открывается после обновления;
не отображается ошибка связи с Backend;
сайт не остаётся в режиме обслуживания.
Проверку административной панели выполните по следующему разделу.
Доступ к административной панели
Где хранятся реквизиты
Пользовательская копия находится по пути из параметра:
Стандартное значение:
Installer также сохраняет внутренний защищённый файл:
Команда:
показывает путь к внутреннему файлу в строке:
Эта строка не показывает изменённый пользовательский credentialsExportPath.
Если вы меняли путь пользовательской копии, найдите его через:
Внутренний файл управляется Installer и используется для безопасного продолжения операции. Не изменяйте и не удаляйте его.
Как посмотреть реквизиты
Проверьте владельца и права пользовательского файла:
Ожидаемый результат:
Если вы изменили credentialsExportPath, используйте свой путь.
Откройте файл только в своей закрытой SSH-сессии от root:
Файл содержит:
точный адрес административной панели;
email администратора;
автоматически созданный пароль;
путь к внутренней защищённой копии.
Команда просмотра выводит пароль в терминал.
Не отправляйте содержимое файла в чат, обращение поддержки или общедоступное хранилище.
Проверьте вход
Скопируйте точный адрес из строки
Адрес.Откройте его в браузере.
Введите email и пароль из файла.
Убедитесь, что открылась административная панель.
Обновите страницу.
Откройте другой раздел административной панели.
Проверка считается успешной, если после обновления страницы авторизация сохраняется и разделы открываются без ошибок.
Если пользовательский файл не создан
Проверьте состояние и отчёт:
Если установка не имеет итогового статуса УСПЕШНО, сначала определите разрешённое следующее действие:
Продолжайте установку через resume только тогда, когда это предлагает Installer. Порядок приведён в разделе «Продолжение прерванной установки».
Если установка имеет статус УСПЕШНО, но пользовательский файл отсутствует:
Найдите путь в строке
Файл реквизитов администратораотчёта.Проверьте владельца и права внутреннего файла.
Получите Backend-домен и
adminPathчерезconfig show.Просмотрите внутренний файл только в своей закрытой SSH-сессии от
root.Сохраните реквизиты в менеджере паролей.
Сохраните Run ID и сообщение об ошибке создания пользовательской копии для диагностики.
Не запускайте ручной сброс пароля во время незавершённой установки. При resume Installer использует уже сформированные реквизиты и не создаёт новый пароль без необходимости.
Сохраните реквизиты
После успешной проверки входа:
Сохраните адрес, email и пароль в защищённом менеджере паролей.
Ограничьте доступ к записи ответственными сотрудниками.
Проверьте вход с сохранёнными данными.
После подтверждённого входа удалите пользовательскую копию
/home/iexexchanger-admin-access.txt, если она больше не нужна на сервере.
Не удаляйте внутренний файл из /var/lib/iexexchanger/installer.
Резервная копия после установки
Installer создаёт начальную резервную копию до выполнения Product Updates.
После завершения установки создайте ещё одну копию. Она сохранит состояние уже подготовленного приложения, включая изменения базы и новый пароль администратора.
Создайте копию установленной системы
Выполните:
Дождитесь завершения без ошибки.
Проверьте состояние и время последней копии:
По умолчанию зашифрованные копии сохраняются локально:
Для хранения и проверки копий система использует Restic — программу резервного копирования.
Проверьте целостность и извлечение файлов
Проверьте все сохранённые данные хранилища:
Затем проверьте извлечение последней копии:
--timeout 12h задаёт максимально допустимое время команды. Это не длительность проверки и не расписание её запуска.
restore-test выполняет следующие действия:
извлекает последнюю копию в отдельный временный каталог;
проверяет наличие сохранённых файлов и конфигурации;
проверяет читаемость структуры дампов обеих баз;
удаляет временные данные после проверки.
Дамп — файл с сохранённым содержимым базы данных.
Рабочие базы при этой проверке не изменяются.
Обе команды должны завершиться без ошибки.
Наличие копии или активного расписания само по себе не подтверждает, что сохранённые данные можно прочитать.
Проверьте регулярное копирование
В стандартной конфигурации резервное копирование выполняется ежедневно.
Проверьте таймер:
Ожидаемые значения:
Посмотрите следующий запуск:
Служба, создающая копию, может быть inactive между запусками. Постоянно активным должно быть её расписание — iex-backup.timer.
Настройте хранение вне сервера
Локальная копия помогает при ошибках приложения, но теряется вместе с сервером или его диском.
До начала работы с реальными данными настройте хранение резервных копий вне этого сервера и сохраните ключ восстановления отдельно.
Проверка после перезагрузки
Проверьте автоматический запуск служб до начала работы с клиентами.
Сначала откройте второе SSH-подключение с теми же данными. Убедитесь, что после настройки сетевого экрана сервер по-прежнему разрешает вход.
Затем перезагрузите сервер:
SSH-соединение будет разорвано, а сайт временно станет недоступен. Дождитесь загрузки сервера и подключитесь снова.
После подключения выполните:
Ожидается состояние системы:
В списке служб с ошибкой не должно быть записей.
Если система ещё загружается, дождитесь завершения запуска служб.
Повторите проверки:
Повторно откройте клиентский сайт и административную панель.
Войдите в административную панель, обновите страницу и откройте другой раздел. Убедитесь, что система работает после перезагрузки без ручного запуска служб.
После установки
Сохраните установочные материалы
Сохраните:
/home/installer;/home/installer/install.yaml;/root/iex-license/license-key, если он создавался;Run ID успешной установки;
отчёт установки;
контрольные суммы архивов;
реквизиты администратора в менеджере паролей.
Installer остаётся в /home/installer для проверки состояния, просмотра отчётов и обслуживания установочной операции.
Не копируйте Installer в /usr/local/sbin.
После установки постоянная команда iexctl доступна из любого каталога:
Постоянные iexctl, iex-updater и iex-update-agent устанавливаются из проверенной поставки. Не заменяйте их вручную.
Не удаляйте настройки, сведения о выполненных операциях и журналы. Они нужны для диагностики и последующего обслуживания.
Служебные данные находятся в каталогах:
Не удаляйте входные архивы до завершения всех проверок, включая проверку после перезагрузки.
Подготовьте данные для диагностики
Если возникла проблема, сначала сохраните Run ID и отчёт:
Если отчёта недостаточно, создайте диагностический комплект:
Команда выводит пути к диагностическому архиву и его контрольной сумме.
Передавайте архив вместе с созданной для него контрольной суммой. Файл должен иметь права 0600.
Перед передачей проверьте содержимое. В диагностические материалы не должны попадать:
пароль
root;приватный SSH-ключ;
код лицензии;
пароль администратора;
содержимое
.env;приватные ключи и токены;
cookie;
дампы баз данных.
Полный журнал передавайте только после проверки содержимого и по защищённому каналу.
Когда установка завершена
Перед переходом к настройке обменного пункта подтвердите:
итоговый статус Installer —
УСПЕШНО;внутренняя и публичная проверки завершились без ошибки;
базы данных импортированы, Product Updates выполнен;
обязательные службы и Scheduler работают;
Updater доступен, Update Agent включён и активен;
проверены HTTPS и автоматическое продление сертификата, если используется Let's Encrypt;
создана копия завершённой установки;
проверены целостность резервных данных и извлечение последней копии;
включено регулярное резервное копирование;
проверен результат регистрации сервера;
клиентский сайт открывается;
вход в административную панель сохраняется после обновления страницы;
необходимые проверки повторно пройдены после перезагрузки.
Не оставляйте необъяснённые ошибки перед вводом системы в работу.
Успешная установка подтверждает готовность серверного окружения. Настройка направлений обмена, платёжных модулей и остальных функций проекта выполняется отдельно.
Последнее обновление
Это было полезно?