Skip to content

Установка ​

Одной командой скоро ​

Установщик одной командой сейчас готовится. Он будет:

  1. Проверять сервер: система, память, диск, свободные порты 80 и 443, время, DNS домена и admin. поддомена.
  2. Активировать лицензию по ключу и домену.
  3. Готовить сервер: Docker, firewall (SSH, 80, 443), fail2ban, автообновления безопасности.
  4. Создавать папку установки и файл настроек .env со случайными паролями (права 600).
  5. Скачивать подписанные образы, применять миграции базы и запускать сервисы.
  6. Закрывать админку для всех, кроме адреса, с которого запущена установка.
  7. Создавать владельца с 2FA и в конце показывать сводку: адреса сайта и админки, пароль владельца, куда сохранить пароль бэкапов.

Повторный запуск не ломает установку, а продолжает её. Команда появится здесь и в кабинете покупателя вместе с выходом установщика — до этого ставьте пошагово.

Пошагово ​

Пока установщика нет, движок ставится из архива выпуска, который выдаёт команда OneSwaper. Скрипты лежат в архиве в папке infra/server/ и запускаются по порядку.

1. Подготовить сервер ​

Под root на чистом сервере. Скрипт выключает старые веб-сервер и базу, если они есть (не удаляет), и добавляет 2 ГБ подкачки:

bash
bash infra/server/00-prepare.sh

Посмотреть систему, порты и сервисы — ничего не меняет:

bash
bash infra/server/01-inspect.sh

2. Защитить сервер ​

Под root. Создаёт пользователя deploy с вашими SSH-ключами, включает вход только по ключу, firewall (SSH, 80, 443), автообновления безопасности, fail2ban и ставит Docker. Ничего не удаляет.

bash
bash infra/server/02-harden.sh

Сначала проверьте вход

Откройте новое окно терминала и войдите как deploy. Только когда вход работает, закройте вход под root:

bash
bash infra/server/03-close-root.sh

3. Направить домен на сервер ​

В DNS — записи A для домена и admin. на IP сервера (см. Требования). Если домен за Cloudflare — сначала настройте его по этой странице, иначе Caddy не получит сертификат.

4. Запустить движок ​

Под deploy, из папки установки (куда распакован архив выпуска), с вашим доменом:

bash
bash infra/server/04-deploy.sh example.com

Скрипт сам:

  • создаёт .env со случайными паролями базы, сессий, ключом шифрования секретов, паролем бэкапов и секретом ворот админки;
  • ставит адрес админки admin.example.com и закрывает её для всех (ADMIN_ALLOWED_IPS=127.0.0.1/32);
  • поднимает базу, проверяет конфиг Caddy, применяет миграции и переводит приложение на роль базы без права менять журналы;
  • запускает API, воркер и Caddy и печатает адреса сайта и админки и команду создания владельца.

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

5. Открыть админку для себя ​

Узнайте свой IP (например, на сайте 2ip.ru) и впишите его в .env в папке установки:

bash
ADMIN_ALLOWED_IPS=203.0.113.10/32

Несколько адресов или подсетей — через пробел. Перезапустите Caddy:

bash
docker compose up -d caddy

Адреса операторов потом добавляются в самой админке — правка сервера для них не нужна (см. Безопасность сервера).

6. Создать владельца ​

Выполните команду создания владельца, которую напечатал 04-deploy.sh в конце, со своей почтой. Она покажет пароль и ссылку для приложения-аутентификатора (Google Authenticator и т. п.) — один раз. Сохраните пароль в менеджере паролей и добавьте код в приложение.

7. Проверить ​

bash
curl -s https://example.com/api/health

Ответ {"ok":true,"version":"…","status":"ok"} — движок работает. Откройте https://admin.example.com/admin/login, войдите и переходите к первому запуску.

Сохраните пароль бэкапов

Без него резервную копию не открыть. Посмотреть: grep ^BACKUP_PASSWORD= .env в папке установки. Положите его в менеджер паролей сразу.

Документация движка обменника OneSwaper