Skip to content

Установка одной командой

Никаких .env руками. Скрипт задаёт пять вопросов, всё остальное делает сам: ставит Docker, генерирует секреты, поднимает весь стек и отдаёт ссылку на кабинет. Дальнейшая настройка — тарифы, платёжки, меню бота — целиком в веб-UI.

На чистом VPS (Ubuntu/Debian):

bash
bash <(curl -fsSL https://raw.githubusercontent.com/STEP-CORP/StepBot/main/scripts/install.sh)

То же из клона репозитория:

bash
git clone https://github.com/STEP-CORP/StepBot.git && cd StepBot
./scripts/install.sh

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

ЧтоСколько
CPU / RAM1 vCPU / 1–2 GB (на 1 GB скрипт сам поднимет swap)
ОСUbuntu/Debian (git ставится через apt-get, Docker — через get.docker.com)
Праваroot — для установки Docker и создания swap
Доменопционально: с доменом кабинет получает HTTPS автоматически, без — работает по http://IP

Что спросит скрипт

ВопросОбязательноЕсли нажать Enter
Токен бота из @BotFatherда
Домен для кабинетанеткабинет на http://IP, без HTTPS
E-mail для Let's Encryptтолько если указан домен
URL панели Remnawaveнетподнимется встроенная мок-панель — стек можно пощупать целиком
API-токен панелитолько если указан URL панели
Ваш Telegram ID (узнать — @userinfobot)нетбез личных уведомлений владельцу (панель упала, бэкап, споры)

Что скрипт делает сам

  1. При запуске через curl — ставит git (если нет) и клонирует репозиторий в папку StepBot (старый клон HUB-BOT тоже подхватит).
  2. Ставит Docker через get.docker.com, если его нет; проверяет наличие docker compose v2.
  3. Проверяет память: если RAM меньше ~1.8 GB и swap отсутствует — создаёт swap-файл 2 GB (/swapfile, с записью в /etc/fstab), чтобы сборка образов не упала по OOM.
  4. Генерирует секреты (ключ шифрования, JWT, пароль БД, пароль админа, вебхук-секрет) и пишет .env с правами 600.
  5. Если панель не указана — включает профиль мок-панели (COMPOSE_PROFILES=mock в .env).
  6. Собирает и запускает стек: postgres · redis · web · bot · worker · scheduler · caddy (плюс mockpanel, если панели нет). Первая сборка — несколько минут.
  7. Ждёт /health до 3 минут — миграции БД web-контейнер применяет сам при старте.

С доменом HTTPS поднимается автоматически: Caddy получает сертификат Let's Encrypt на указанный e-mail.

Что выдаст в конце

  • Кабинетhttps://ваш-домен/admin/ (или http://IP/admin/), логин admin и сгенерированный пароль.
  • Мини-аппа…/app/.
  • Пароль шифрования бэкапов — им зашифрованы бэкапы БД, пока вы не зададите свой в кабинете → Обслуживание.

Пароль бэкапов — сохранить отдельно

Запишите пароль шифрования бэкапов ОТДЕЛЬНО от сервера. Без него бэкап БД не расшифровать — сервер умер вместе с паролем, значит умерли и бэкапы. Подробнее — Бэкапы.

Повторный запуск

Если .env уже существует, скрипт использует его и не задаёт вопросов — установку можно безопасно перезапускать. Для чистой установки удалите .env.

Если что-то пошло не так, скрипт печатает хвост лога и путь к полному логу; логи стека — ./scripts/dc.sh logs web.

Дальше: настройка до первых продаж — Запуск в прод, обновление — ./scripts/update.sh. Кто хочет без Docker — деплой на VPS через systemd.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов