Размещение Tribute Assistant на клауд-хостинге Railway для автоматизации платежей в Telegram

Размещение Tribute Assistant на клауд-хостинге Railway для автоматизации платежей в Telegram

В предыдущем посте я описывал принцип работы Tribute-ассистента, который автоматизирует платежи в Телеграм, без необходимости ручной обработки через бота. Главная проблема решения была в том, что скрипт запускался с ноутбука. Это делало сервис нестабильным и приводило к задержкам в обработке платежей. Клиенты были недовольны, что в результате негативно влияло на продажи.

Нестабильный Wi-Fi, спящий режим, случайные перезагрузки приводили к задержкам, стрессу и лишней ручной работе, а также к извинениям перед клиентами.

Поиск площадок для хостинга Python ассистента дал два результата:

Вариант 1. PythonAnywhere

Первым претендентом был PythonAnywhere. Настройка проста, платформа дружелюбна к начинающим, в интернете полно инструкций. Однако, для простого Telegram-проекта условия не самые выгодные:

  • Бесплатный тариф не поддерживает постоянные фоновые процессы
  • Коммерческие тарифы начинаются от $10 в месяц

Вариант 2. Railway

Railway оказался более подходящим:

  • Непрерывные сервисы с автоматическим перезапуском при сбое
  • Тариф $5 в месяц, включающий все необходимое для работы ассистента (первый месяц бесплатно)

Оптимизация кода под Railway

При переносе проекта потребовалось небольшое упрощение кода. Дело в том, что Railway сам делает перезапуск процессов, поэтому мы убрали все лишнее: циклы для переподключения, авто-рестарты и обработку ошибок связи.

Работа с ключами без SSH

Railway не предоставляет SSH-доступ: все ключи и параметры задаются в панели управления через переменные окружения. На практике это даже удобнее – не нужно настраивать ручной доступ, и никакого хардкодинга.

Проект, готовый к запуску на Railway, доступен на GitHub:

После запуска необходимо задать в системе следующие переменные:

  • BACKEND_URL – URL вашего сайта, который активирует платную услугу
  • BACKEND_KEY – необязательный ключ для защиты передачи данных
  • TRIBUTE_ID – Ваш API ID в Трибьют
  • TRIBUTE_HASH – Ваш API hash в Трибьют
  • TG_HASH – сессия Telethon (о ней - ниже)
  • CHAT_TRIBUTE – tribute
  • CHAT_ADMIN – ID чата администратора для уведомлений об ошибках

Генерация Telegram-сессии

Для авторизации ассистента необходимо сначала создать сессию Telethon локально. Запустите local_auth.py на своём компьютере. После успешной авторизации скрипт выведет на экран строку сессии. Эту строку нужно добавить в Railway как переменную TG_HASH.

Результат и дальнейшие шаги

На Railway ассистент работает непрерывно и значительно стабильнее, чем на десктопе. При этом, многое можно улучшить:

  • Расширить локализацию (сейчас доступны английский и русский языки)
  • Автоматическая генерация ответов службы поддержки, если детали заказа не были указаны при оплате

Буду рад вашим предложениям и участию в проекте на GitHub. В случае проблем с настройкой – пишите комментарии, постараюсь помочь!

1
Начать дискуссию