iEXExchanger 10.x
Официальный сайт
  • 10.x
  • История версий
  • Введение
  • Журнал изменений
  • Общая информация
    • Полезные советы
      • Технические требования к серверу
        • Сервер на FastVPS
        • Сервер на Timeweb
      • Домен для обменника
      • От мониторингов
        • Как попасть в BestChange
        • Рекомендации к обменникам
      • Защита от DDoS-атак
    • Центр безопасности
      • Настройка Google Authenticator
      • Изменение URL панели управления
      • Доступ к панели по IP-адресу
      • Управление группами пользователей
      • CSP Безопасность
      • Защита от CSRF-атак
      • Код безопасности для автовыплат
      • Ограничение доступа по IP в Cloudflare
      • Настройка защиты Fail2ban
      • Советы по безопасности от BestChange
      • Конфигурация брандмауэра UFW
      • Блокировка нежелательных email-адресов
  • Обучение
    • Изучение продукта
      • Введение
      • Начало работы
      • Главы
        • 1. Основные настройки
        • 2. Настройки интерфейса
        • 3. Коды валют и платежные системы
        • 4. Создание валют
        • 5. Настройка курсов
        • 6. Создание направлений
        • 7. Настройка заявок
    • Видеоматериалы
      • Быстрый запуск с нуля
      • Начало работы
        • Настройка планировщика задач
      • Главы
  • УСТАНОВКА И НАСТРОЙКА
    • Установка системы
      • Установка ПО
        • Шаг 1: Подготовка
        • Шаг 2: Настройка FastPanel
        • Шаг 3: Команды терминала
        • Шаг 4: Запуск процессов
          • Настройка Supervisor
          • Настройка PM2
        • Шаг 5: Финальные настройки
      • Интеграция с Cloudflare
        • Подключение сайта к Cloudflare
        • Включение HTTPS
        • Режим защиты (Under Attack Mode)
        • Настройка DNS
        • Установка SSL-сертификата
        • Белый и чёрный список IP
        • Очистка кэша Cloudflare
      • Настройка конфигурации
    • Обновление продукта
      • Обновление до 10.0.3
      • Обновление до 10.0.2
      • Переход на версию 10.0.0
      • Обновления внутри 9.x
        • Инструкция с 9.2.1 до 9.2.2
        • Инструкция с 9.2 до 9.2.1
        • Инструкция с 9.1 до 9.2
      • Инструкция по загрузке архивов и лицензии
    • Файлы лицензии
    • CRON: настройка задач
  • Заявки
    • Работа с заявками
      • Статусы заявок
      • Этапы для Заявок
      • Лимиты для операторов
      • Причины для заявок
      • Настройка Live заявок
    • Верификация
      • Верификация карт
        • Категория верификаций
        • Инструкция верификаций
      • Верификация личности (KYC)
  • Меню
    • Основное
      • Добавить код валюты
      • Добавить платежную систему
      • Валюты
        • Добавить новую валюту
        • Сети для валют
        • Фильтры для валют
        • Метки для валют
        • Быстрые команды
      • Направление
        • Добавить новое направление
        • Режимы направлений
        • Сортировка направлений
        • Групповая комиссия
        • Сумма обмена
        • Уведомления
      • Резервы
        • Стандартный резерв
        • Резерв из сервера
        • Резерв из файла
      • Платежные реквизиты
        • Добавить реквизит
        • Информационные поля
        • Дополнительные поля
        • Как настроить систему выдачи реквизитов по запросу?
      • Уведомления
        • Настройка уведомлений в направлениях
        • Настройка уведомлений в валютах
      • Дополнительные поля
        • Доп. поля для валют
        • Доп. поля для направлений
      • Шаблоны
        • Шаблоны для валют
        • Шаблоны для направлений
    • Внешний вид
      • Кастомизация главной страницы
      • Кастомизация окна оплаты заявки
      • Настройка текста
      • Виды отображения направлений обмена на главной странице
      • Уведомление на сайте
      • Цветовая палитра и стили оформления сайта
      • Вопросы и Ответы
        • Как настроить модальное окном "Подтверждение обмена"?
        • Как изменить шрифт на сайте?
        • Как вывести QR-Код при оплате заявки?
        • Как вывести галочку "Не запоминать введенные данные"?
        • Как настроить иконку и логотип?
        • Как установить свой фон на сайте?
        • Как настроить смену стилей?
    • Парсер курсов
      • Типы курсов
        • Курсы из источников
        • BestChange API парсер
          • Как получить ключ BestChange API?
          • Где находятся все созданные пары из BestChange API?
          • Настройка BestChange API парсера
          • Теги и формулы для расчёта курсов BestChange
        • Курсы из файла
        • Курсы по формуле
          • Теги и формулы для расчёта курсов валют
          • Стандартные формулы для расчёта курсов
        • Курсы конкурентов
      • CoinMarketCap API Keys
      • Дата последнего обновления курсов
      • Ускоренное обновление курсов
    • Партнерам и скидки
      • Партнерам
        • Баннеры партнеров
        • Другие разделы
        • Настройка партнерских процентов
        • Настройка партнерской программы для направлений обмена
        • Настройки партнерской программы
        • Настройка валюты для партнёрской программы
        • Почему не начисляются бонусы партнерам?
        • Почему в реферальной программе, неправильно отображается символ валюты?
      • Скидки
    • Пользователи
      • Группы прав пользователей
      • Фильтр по: IP или E-Mail
      • Лог авторизаций
  • Вопросы и ответы
    • Заявки
      • Где можно смотреть прибыль от заявок?
      • Почему создаются заявки, когда нет резерва?
      • Почему заявка автоматически отклоняется через минуту?
      • Как прикрепить файл к заявке, чтобы клиент увидел?
      • Как добавить комментарий к заявке пользователя?
      • Как отключить поле E-mail при для новых клиентов?
      • Как клиенты могут привязать чек к заявке?
      • Почему клиенты при открытии заявки получают сообщение "Нет доступ к заявке"?
      • Могут ли главные менеджеры выполнять любые заявки?
      • Почему клиенты не видят заявки в личном кабинете?
    • Направление обмена
      • Как настроить сумму обмена и установить направление по умолчанию на главной?
      • У меня большое кол-во направлений, как удобнее вывести их на главном?
    • Инфраструктура
      • Как сделать перенос с поддомена на основной домен?
      • Почему IP-адрес клиента отображается некорректно?
      • Как восстановить доступ в панель управления, если забыли пароль?
      • Как сбросить путь доступа к админке?
      • Где расположена корневая директория вашего сайта?
      • Где найти путь к проекту и имя пользователя?
      • (Важно) Что нужно знать перед тем как обновиться?
      • Как открыть терминал и подключиться к серверу по SSH?
      • Можно ли использовать имя файла без указания полного пути в URL?
    • Другие вопросы
      • Как попробовать демо-версию админки перед покупкой?
      • Почему в курсе обмена отображаются только целые числа?
      • Как изменить e-mail или пароль администратора?
      • Как включить Технический перерыв?
      • Где найти список XML кодов валют?
      • Почему администратору на E-mail не приходят сообщения?
      • Как сменить тип начисления вознаграждений для определенных клиентов?
      • Как настроить на blockchain ссылку?
      • Настройка AML, правил сервиса и согласия пользователей
  • Автоматизация
    • Мерчанты и API
      • Мерчанты
        • Предупреждение о рисках
        • Общие настройки
        • Rapira
        • AlfaBit (Pay)
        • Exnode
        • Heleket
        • WestWallet
        • Merchant001
        • PayScrow
        • Volet (ex.ADVCash)
        • Payeer
        • PerfectMoney
        • ePayCore
        • Firekassa
        • Tron
        • Ripple
        • WhiteBit
        • Garantex
        • RPC Connection
        • LuckyPay
        • IvanPay
        • B2BWallet
        • ABCEX
      • Автовыплаты
        • Предупреждение о рисках
        • Общие настройки автовыплат
        • Rapira
        • AlfaBit (Pay)
        • Exnode
        • Heleket
        • WestWallet
        • Garantex
        • Merchant001
        • Volet (ex.ADVCash)
        • Payeer
        • Firekassa
        • Ripple
        • Tron
        • WhiteBit
        • ePayCore
        • PerfectMoney
        • PayScrow
        • RPC Connection
        • LuckyPay
        • IvanPay
        • B2BWallet
        • ABCEX
        • GoldEx
      • Автоматизация валют с разными сетями
      • Как включить автовыплату без участия оператора?
      • Почему не выводится инструкция к оплате?
      • Стратегия обработки ошибок мерчантов
    • AML сервисы
      • Провайдеры
        • GETBlock
        • Rapira
        • AMLBot
        • BitOK
      • Как включить галочку о соглашении с правилами AML?
      • Как привязать AML сервис к валюте?
  • Настройки
    • Уведомления
      • E-mail уведомление
        • Настройка SMTP Yandex
        • Resend
      • Telegram уведомление
      • Всплывающее уведомление
    • Онлайн Чаты
      • Подключение JivoSite
        • Опции для JivoSite
      • Онлайн чат в заявке
    • Настройки
      • Логирование
        • Настройка логирования
      • Архивация заявок
    • Экспорт курсов
  • Модули
    • Контент
      • Меню
      • Страницы
      • Новости
      • Вопросы и Ответы
    • Утилиты
      • Промо-коды
      • Конкурсы
      • Баннеры
      • Контакты
      • Отзывы
      • Статистика
      • Преимущество
      • Статус работы сервиса
    • Работа с наличными
      • Где найти список кодов городов для работы с наличными?
    • Черный список
      • Черный список BestChange
    • Другие модули
      • Модуль "Ссылки для Footer"
      • Модуль "Внутренний счет"
        • Внутренний счет (Мерчант)
        • Внутренний счет (Автовыплата)
      • Модуль "Информация по банковским картам"
      • Модуль "Proxy менеджер"
      • Модуль "Счета пользователей"
      • Модуль "Правила сайта"
  • Прочие
    • Диагностика ошибок
    • Загрузка статического файла
    • Подключение Google reCaptcha
Powered by GitBook

Основное

  • Требования к серверу

iEXExchanger — это профессиональное решение для создания обменника валют.

On this page
  • Шаг 1: Подготовка сервера
  • ШАГ 2: Установка NodeJS 22 и npm 11
  • ШАГ 3: Установка pm2
  • ШАГ 4: Подготовка проекта на основном домене (через FastPanel)
  • ШАГ 5: Создание файла конфигурации pm2
  • Как переключиться с root на нужного пользователя сайта?
  • Создание файла конфигурации:
  • ШАГ 6: Запуск проекта
  • ШАГ 7: Настройка автозапуска pm2
  • Полезные команды pm2

Was this helpful?

  1. УСТАНОВКА И НАСТРОЙКА
  2. Установка системы
  3. Установка ПО
  4. Шаг 4: Запуск процессов

Настройка PM2

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

Большинство команд в этой инструкции необходимо выполнять от имени пользователя с правами администратора (root). Чтобы переключиться в режим администратора, используйте команду:

sudo -l root

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

su -l имя_пользователя

Шаг 1: Подготовка сервера

Сначала обновите все необходимые пакеты на сервере. Выполните команды одну за другой:

sudo apt update
sudo apt upgrade -y
sudo apt install curl gnupg git -y

ШАГ 2: Установка NodeJS 22 и npm 11

Node.js – это среда выполнения JavaScript, которая необходима для работы веб-приложений на стороне сервера.

1. Выполните следующие команды в терминале:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install nodejs -y

2. Обновите npm до последней доступной версии (рекомендуется):

sudo npm install -g npm@latest

Проверьте, что Node.js установлен правильно:

node -v
npm -v

Если версия npm устарела, обязательно выполните команду из шага №2 выше, чтобы обеспечить совместимость с последними библиотеками и инструментами.

ШАГ 3: Установка pm2

pm2 – это программа, которая следит, чтобы ваш сайт всегда работал.

Выполните команду:

sudo npm install pm2@latest -g

Проверьте установку:

pm2 -v

ШАГ 4: Подготовка проекта на основном домене (через FastPanel)

Эти шаги помогут вам загрузить и правильно расположить файлы вашего проекта на основном домене через панель управления FastPanel.

Как разместить проект:

  1. Откройте панель управления FastPanel.

  2. Перейдите в раздел «Сайты» → «Файлы» вашего основного сайта.

  3. Если вы ещё не распаковали проект на сервере:

    • Загрузите архив с проектом с вашего компьютера в корневой каталог вашего сайта через встроенный файловый менеджер FastPanel.

    • Распакуйте архив непосредственно в этом же каталоге.

  4. Проверьте, что структура файлов проекта после распаковки выглядит именно так:

ваш_проект/
├── dist/
│   └── exchanger/
│       └── server/
│           └── server.mjs
├── logs/ (если папки нет, создайте её через панель)
└── (другие файлы)

Важно

Убедитесь, что папка logs присутствует в корневом каталоге проекта. Если её нет, создайте её прямо здесь же через файловый менеджер FastPanel.

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

ШАГ 5: Создание файла конфигурации pm2

Важно:

  • Не запускайте и не создавайте конфигурационный файл PM2 от имени пользователя root.

  • Используйте только обычного пользователя сайта (тот, под которым загружены файлы через панель управления FastPanel).

  • Это необходимо для предотвращения возможных проблем с правами доступа и корректной работы вашего проекта.

  • Запуск PM2 под правильным пользователем обеспечивает стабильную и безопасную работу приложения, сохраняя корректные права доступа к файлам и папкам проекта.

Как переключиться с root на нужного пользователя сайта?

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

su -l имя_пользователя

Пример:

Если ваш пользователь называется siteuser, выполните:

su -l siteuser

После переключения убедитесь, что вы теперь работаете под нужным пользователем (команда для проверки):

whoami

Вывод должен быть именем вашего пользователя, например: siteuser

Создание файла конфигурации:

  1. Авторизуйтесь в панели управления FastPanel.

  2. В боковом меню перейдите в раздел «Сайты».

  3. Выберите ваш основной домен и перейдите в раздел «Файлы».

  4. В открывшейся директории сайта откройте папку вашего проекта, обычно это:

Перейдите в директорию сайта (пример):

/var/www/<имя_пользователя>/data/www/<ваш_домен>
  1. Создайте новый файл прямо в этой папке и назовите его:

ecosystem.config.cjs
  1. Скопируйте в этот файл следующий конфиг:

module.exports = {
  apps: [
    {
      name: 'iexexchanger',
      script: 'dist/exchanger/server/server.mjs',
      cwd: __dirname,
      instances: 'max',
      exec_mode: 'cluster',
      autorestart: true,
      watch: false,
      max_memory_restart: '1G',
      env: {
        NODE_ENV: 'production',
        PORT: 4000,
        PM2: true,
      },
      log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
      error_file: 'logs/err.log',
      out_file: 'logs/out.log',
      merge_logs: true,
      time: true,
      wait_ready: false,
      listen_timeout: 3000,
      kill_timeout: 2000,
      exp_backoff_restart_delay: 100
    },
  ],
};
  1. Сохраните файл (нажмите кнопку «Сохранить» в FastPanel).

ШАГ 6: Запуск проекта

Теперь файл конфигурации создан, вам нужно запустить его через терминал от имени пользователя сайта.

  1. Перейдите в директорию проекта командой:

cd www/<ваш_домен>
  1. Запустите PM2, используя ранее созданный файл конфигурации:

pm2 start ecosystem.config.cjs
  1. Для того чтобы процессы запускались автоматически при перезагрузке сервера, выполните команду:

pm2 startup && pm2 save

ШАГ 7: Настройка автозапуска pm2

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

Настройте автоматический запуск pm2 после перезагрузки сервера:

Эти действия выполните под пользователем root или с помощью sudo:

Перейдите в режим администратора:

su -l root

Выполните команду настройки автозапуска pm2 для вашего пользователя FastPanel:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u <имя_пользователя> --hp /var/www/<имя_пользователя>

Пример:

Если ваш пользователь называется siteuser, команда будет выглядеть так:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u siteuser --hp /var/www/siteuser

После выполнения вы получите подтверждение о правильной настройке автозапуска.

Рекомендуется убедиться в том, что всё настроено корректно:

  • Перезагрузите сервер:

sudo reboot
  • После перезагрузки снова проверьте статус pm2:

pm2 status

Приложение должно автоматически запуститься и иметь статус online.

Полезные команды pm2

  • Остановить приложение:

pm2 stop iexexchanger
  • Перезапустить приложение:

pm2 restart iexexchanger
  • Просмотр логов в реальном времени:

pm2 logs iexexchanger
PreviousНастройка SupervisorNextШаг 5: Финальные настройки

Last updated 2 days ago

Was this helpful?