Reefox

Установка

Reefox Panel ставится одной командой. Установщик сам поставит Docker, базу данных, веб-сервер и HTTPS-сертификат, а потом запустит сервис. Обычно это занимает 5–10 минут.

Перед запуском

  • Домен уже указывает на сервер, это видно по dig (раздел Сервер и домен).
  • Под рукой ключ лицензии, токен основного бота и ваш Telegram ID.
  • Вы нажали Start у своего бота с того аккаунта, чей ID будете вводить.

Запуск

Подключитесь к серверу по SSH и выполните команду из бота лицензий (раздел «📘 Как установить»):

curl -fsSL https://store.reefox.ru/install.sh -o tmavpn-install.sh && sudo bash tmavpn-install.sh

Вопросы установщика

Установщик задаёт пять вопросов и каждый ответ сразу проверяет — до того, как что-то ставить:

ВопросЧто ввестиЧто проверяется
Ключ лицензииКлюч из бота. Символы при вводе не видны, так и задумано.Сервер лицензий принимает ключ
ДоменВаш домен без https:// и без слэша в конце.Домен указывает на этот сервер: запись видна у Cloudflare (1.1.1.1) и Google (8.8.8.8)
Токен бота из @BotFatherТокен основного бота.Telegram знает этот токен; с сервера вообще открывается Telegram
Ваш Telegram IDТолько цифры.Бот присылает вам проверочное сообщение
Почта для HTTPS-сертификатаМожно оставить пустой — Enter.—

Если проверка не прошла, установщик скажет, что исправить, и спросит снова:

  • Домен не указывает на сервер — добавьте A-запись с адресом, который назовёт установщик, подождите несколько минут и нажмите Enter. Если уверены, что всё верно, напишите пропустить, но тогда HTTPS может не выпуститься.
  • Telegram не узнал токен — скопируйте токен в @BotFather ещё раз (/mybots → бот → API Token).
  • Бот не смог вам написать — откройте своего бота в Telegram, нажмите «Start» и нажмите Enter в установщике.
  • С сервера не открывается Telegram — установка остановится: бот на таком сервере работать не сможет. Обычно это серверы в России — нужен сервер за рубежом.

Что происходит дальше

Установщик печатает шаги от [1/6] до [6/6]: ставит системные пакеты и Docker, запускает панель и базу данных, настраивает веб-сервер и HTTPS-сертификат, включает обновления одной кнопкой и ждёт, пока панель ответит. Подробный вывод всех программ пишется в журнал /var/log/tmavpn-install.log — если шаг упадёт, установщик покажет его последние строки.

В конце появится итог:

 ✓ Готово! Ваш VPN-сервис работает.

   Админка:  https://vpn.example.com/admin/
   Сайт:     https://vpn.example.com/
   Кабинет:  https://vpn.example.com/lk/

   Токен первого входа — нужен один раз, сохраните его:
   5F2C9A7E1B3D4C6A8E0F2B4D6C8A0E1F…

Бот пришлёт вам в Telegram ссылку на админку. Сохраните токен первого входа — он нужен один раз. Если потеряли, он лежит на сервере:

grep SETUP_TOKEN /opt/tmavpn/app/.env

Своя база PostgreSQL вместо встроенной нужна редко; если нужна, запустите установку с адресом базы: sudo TMAVPN_EXTERNAL_DATABASE_URL='postgresql+asyncpg://…' bash tmavpn-install.sh.

Проверка

curl -sS https://vpn.example.com/health

Должно вернуться {"status":"ok","service":"vpn-api"}.

Если HTTPS не заработал

Установщик не останавливается, если сертификат не выпустился, и в конце всё равно печатает адреса с https://. Браузер в этом случае покажет ошибку сертификата, а curl — SSL certificate problem. Обычно причина в DNS: запись ещё не видна со всех DNS-серверов. Проверьте DNS по разделу про домен и выпустите сертификат повторно:

sudo certbot --nginx -d vpn.example.com --non-interactive --agree-tos -m you@example.com --redirect

Пока нет HTTPS, в админку лучше не заходить: Setup Token и пароль уйдут по открытому каналу. Mini App без HTTPS тоже не работает, Telegram это требование не обходит.

Если установка прервалась

Если лицензия не прошла проверку, установщик покажет причину:

СообщениеЧто делать
Unknown licenseКлюч введён с ошибкой. Скопируйте его ещё раз из «🔑 Мои лицензии».
Лицензия не активна. Продлите её в боте.Срок закончился, продлите в боте.
Ключ привязан к другому доменуКлюч уже установлен с другим доменом. Напишите в поддержку.
Ключ уже используется на другом сервереЭтот ключ работает на другом сервере. Напишите в поддержку.

Если установка упала позже, на шагах [1/6]–[6/6], повторный запуск первой команды скажет, что панель уже установлена. Чтобы продолжить с того же места, выполните:

sudo /opt/tmavpn/app/deploy/install-from-source.sh

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

Чего не делать

  • Не запускайте ./install.sh из папки /opt/tmavpn/app повторно. Он создаст новые настройки с другим паролем базы, и приложение перестанет к ней подключаться.
  • Не запускайте docker compose up вручную. Без служебных файлов он может поднять не ту версию образа. Для перезапуска используйте docker restart vpn-app.

Где что лежит

ЧтоГде
Программа и настройки/opt/tmavpn/app. Главный файл настроек — .env, в нём пароли и ключи, никому его не пересылайте
Данные приложения/opt/tmavpn/app/data
Контейнерыvpn-app (приложение), vpn-postgres (база), vpn-redis (кэш)
Служебная службаvpn-host-cmd: обновления, домены, перенос

Токен бота и ID администратора после установки

Установщик записывает их в базу только при первом запуске. Дальше они меняются в админке: Настройки → Telegram бот. Правка .env на них уже не влияет.

Дальше — первый вход в админку.