ACLClouds
ACLClouds

Хостинг бота Discord 24/7 без простоев

·

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

Бот, который выключается, когда вы выключаете компьютер, — это не бот, а демо. Вот как разместить его правильно, для реальной доступности круглосуточно.

  • Храните токен в переменной окружения, никогда в коде.
  • Доверьте перезапуск менеджеру процессов с нарастающей задержкой.
  • Следите за задержкой шлюза Discord и долей ошибок команд.
  • Храните данные на постоянном томе и делайте ежедневную резервную копию базы.

Закреплённая версия окружения и секреты вне кода

Классическая первая проблема: токен бота попал в GitHub и был отозван Discord посреди ночи. Храните его в переменной окружения, зафиксируйте версию Node.js или Python и добавьте файл-пример (.env.example) без значений.

  • Никогда не коммитьте токен: только переменные окружения.
  • Зафиксируйте версию среды (например, Node 22 LTS) для воспроизводимых развёртываний.
  • Документируйте каждую обязательную переменную в README.
  • Чтобы выбрать хостинг, сравните бесплатные тарифы для Discord-ботов.

Менеджер процессов, который перезапускает сервис с умом

PM2, systemd или Docker с политикой перезапуска: важна политика, а не инструмент. Перезапускайте автоматически при сбое, но с возрастающей задержкой (backoff), чтобы не зацикливаться на ошибке конфигурации, и сохраняйте логи, чтобы разобраться в причине.

  • Настройте автоматический перезапуск с экспоненциальной задержкой.
  • Храните логи вне контейнера, чтобы разбирать причины сбоев.
  • Добавьте проверку работоспособности (healthcheck): отвечает ли бот на команды?

Следите за тем, что действительно важно

Быть онлайн недостаточно: бот, который подключён, но больше не отвечает на взаимодействия, — это сломанный бот. Следите за задержкой шлюза Discord, долей ошибок команд и памятью. Простое оповещение (webhook, email) полезнее панели мониторинга, который никто не смотрит.

  • Следите за задержкой шлюза Discord и долей ошибок команд.
  • Оповещайте о повторных отключениях и утечках памяти.
  • Храните логи за 7 дней для анализа после инцидента.

Разделяйте данные и код

Как только бот начинает что-то хранить (уровни, экономику, модерацию), эти данные должны переживать повторное развёртывание. Для старта достаточно базы SQLite на постоянном томе, а по мере роста бота её заменит PostgreSQL; в обоих случаях делаются регулярные резервные копии. Чтобы бот был онлайн постоянно без включённого ПК, посмотрите хостинг ботов Discord.

  • Храните данные на постоянном томе, никогда в образе.
  • Ежедневно сохраняйте базу во внешнее хранилище.
  • Проверяйте восстановление до того, как оно понадобится.
  • Применять правило 3-2-1 к резервным копиям базы.

Часто задаваемые вопросы

Нужно ли оставлять мой компьютер включённым?

Нет. Бот работает на инфраструктуре ACLClouds и остаётся онлайн независимо от вашего компьютера или интернет-соединения.

Какие языки программирования поддерживаются?

Доступны Node.js, Bun, Python, C#, Go, Java, Rust и Lua, а также MariaDB для проектов, которым нужна база данных.

Где хранить токен моего бота?

В переменных запуска панели. Вы меняете конфигурацию, не публикуя токен в исходном коде.

Перезапускается ли мой бот самостоятельно после сбоя?

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