Кейс 05 / 17 · Платформа модерации для Discord · 2026

Veylix

Платформа модерации для Discord: один бот и одна веб-панель на все серверы, на русском и английском. Дела со сроками и лестницей наказаний, апелляции из ЛС и на сайте, автомод с фишинг-фильтром и капчей, общие баны между серверами, тикеты и отчёты. Для команды платформы — HQ и админ-панель: заявки, кураторы серверов, сервер поддержки со своим ботом, формы, каталог серверов и статус-страница.

https://veylix.top

  • Время разработки: 35 дней
  • Команд: 50
  • Строк кода: 44 000+
  • Разделов панели и /admin: 21

Задача

Модерация жила в разрозненных командах и таблицах: кто, кого и за что наказал — не найти, временные наказания снимали руками, апелляции терялись в ЛС. Бот был привязан к одному серверу: чтобы подключить ещё один, приходилось разворачивать отдельную копию, а у владельцев не было ни панели, ни связи с командой. Нужен был единый инструмент — для модераторов любого сервера, для их владельцев и для команды, которая ведёт саму платформу.

Решение

Бот на discord.js 14 и панель на React 18 + Vite (Radix UI, TanStack Query, Tailwind) работают в одном процессе Node.js: Express API и WebSocket видят тот же клиент Discord и ту же базу. Данные — в PostgreSQL с версионными миграциями, у каждой таблицы guild_id, поэтому серверы изолированы. Владелец добавляет бота и настраивает его мастером, а команда платформы работает в /admin с матрицей прав по ролям HQ-сервера: заявки, кураторы, сеть серверов, формы. Права и лимиты проверяются в одной функции — для slash-команд, префиксов и панели. Все тексты бота, панели и сайта вынесены в i18next (RU/EN), лендинг и публичные страницы серверов — на React 19 + TypeScript, второй бот обслуживает сервер поддержки, а база каждую ночь уходит бэкапом в S3.

Ключевое

Многосерверность + HQ + /admin · discord.js 14 + Express + PostgreSQL · 50 команд, RU и EN · Панель в реальном времени

Что сделано

  • Один бот на много серверов: панель по адресу /g/<id сервера>, стартовая страница со всеми серверами, данные изолированы
  • Мастер первой настройки и кнопка «Настроить за меня»: бот сам находит или создаёт роли модераторов, каналы логов и роли мута с запретами в каналах
  • Варн, мут, войс-мут, кик, бан и запрет доступа к каналу — каждое наказание становится делом с номером, автором, причиной и сроком
  • Лестница наказаний «3 варна → мут на час, 5 → бан на день»; временные наказания и временные роли снимаются сами
  • Тонкая настройка ролей модерации: уровни, лимиты в час и день, иерархия, бан и кик с подтверждением старшего
  • Апелляции из ЛС и на сайте — даже после бана; одобренная апелляция сразу снимает наказание; ревью дела другим модератором
  • Доказательства к делу: ссылка на сообщение (бот сохранит текст и вложения в WebP) или скриншот через Ctrl + V
  • Автомод: запрещённые слова, инвайты, капс, спам, фишинг (~22 тыс. доменов и подделки под Discord и Steam), массовые упоминания, антирейд, проверка входа, капча, правила по каналам
  • Общие баны сети: сервер видит, что новичок забанен на других серверах с Veylix, — с причинами, без названий серверов и с кнопками «Забанить» и «Под наблюдение»
  • Пометки участников («под наблюдением», «бывший нарушитель») с предупреждением в мод-лог при входе
  • Панели ролей кнопками или списком: «взять и снять», «только одна», «только взять», роль на срок
  • Тикеты с категориями, приоритетами и транскриптом; в панели переписка выглядит как чат
  • Префиксные команды через общий адаптер: обе раскладки (.ьгеу → .mute), русские алиасы, сроки «7d»
  • Голосовая статистика, отчёты по модераторам с нормой, еженедельная сводка в Discord
  • Публичная страница сервера veylix.top/s/<адрес> и каталог серверов: обложки, теги, языки, правила, команда модерации, статистика
  • Русский и английский: язык бота у каждого сервера, slash-команды с локализацией Discord, панель и сайт по языку браузера
  • Режим одобрения и заявки с лендинга или из панели; в /admin — ответственный, заметки, фильтры и сообщение заявителю
  • Кураторы серверов: здоровье сервера, обращения владельцев с вложениями и шаблонами ответов, напоминания и эскалация
  • Админ-панель /admin: 8 ролей платформы с матрицей прав, сотрудники, чёрный список, объявления на двух языках, рассылка, статистика и журнал
  • Вход сотрудника в панель сервера от имени владельца или только для чтения: с причиной, на час, с журналом каждого действия
  • Сервер поддержки со своим ботом: разметка одной кнопкой, тикеты с диагностикой сервера владельца, подсказки из базы ответов в форумах, роли за помощь, автопостинг анонсов и статуса
  • Формы платформы на двух языках: набор в команду, опросы владельцев; карточка автора, выдача роли и ЛС при решении, итоги и CSV
  • Статус-страница status.veylix.top: аптайм за 90 дней и инциденты, которые бот заводит сам
  • Ночные бэкапы базы в S3-хранилище (подпись SigV4 без SDK) с хранением по дням
  • Уведомления в Telegram: подписки, тихие часы, сводка вместо поштучной отправки
  • Панель обновляется в реальном времени через WebSocket; журнал аудита Discord показывает, какой модератор действовал через панель

Этапы

  1. Аудит и проектирование (2 дня) — Разбор старого бота, модель «дела» и его жизненный цикл, ролевой доступ, схема таблиц
  2. Ядро бота и наказания (4 дня) — Slash-команды, дела, сроки и автоснятие, эскалация варнов, ЛС и логи, проверка иерархии ролей
  3. Автомод, тикеты и апелляции (3 дня) — Модули автомода и антирейд, тикеты с транскриптами, апелляции из ЛС, ревью дел, сохранение доказательств
  4. Веб-панель (4 дня) — Вход через Discord, Express API по разделам, React-интерфейс, WebSocket-обновления, панель действия с предпросмотром ЛС
  5. PostgreSQL и деплой (2 дня) — Схема в нормальных таблицах с версионными миграциями, голосовая статистика и отчёты, pm2 + nginx + HTTPS
  6. Многосерверность и HQ (6 дней) — Контекст сервера во всех роутах и задачах, роли платформы, режим одобрения, /admin, вход от имени владельца с журналом
  7. Лендинг и заявки (2 дня) — Сайт на React 19 + TypeScript, заявка и апелляция с входом через Discord, публичное API
  8. Префиксы, профиль и Telegram (3 дня) — Общий адаптер префиксных команд, русская раскладка и алиасы, профиль, Telegram-бот с подписками
  9. Модерация+ (3 дня) — Лестница наказаний, фишинг-фильтр, массовые упоминания, правила по каналам, капча, апелляции на сайте
  10. Кураторы и онбординг (1 день) — Кураторы серверов и обращения владельцев, мастер первой настройки, пометки участников, стартовая страница панели
  11. Английская версия и живой сайт (1 день) — i18next для бота, панели и лендинга, локализация slash-команд, живые цифры, отзывы, «Что нового», документы
  12. Сервер поддержки (2 дня) — Второй бот: разметка сервера, тикеты с диагностикой, база ответов для форумов, роли за вклад, автопостинг
  13. Сеть и надёжность (2 дня) — Общие баны, каталог и страницы серверов, формы, статус-страница, бэкапы в S3, панели и временные роли

Следующий проект: Digimart