Посилання скопійовано
Щоденник розробки · а не документація

Як я пишу бота замість вікі

Anbu — це моя сім'я на GTA5 RP сервері ukraine-gta5, зараз на паузі. Поки вона стоїть, я почав робити для неї Discord-бота, а для самого сервера — вікі для гравців. Так було задумано.
Вийшло інакше. Бот виріс у сім модулів, Dev Tools — у чотирнадцять, а вікі досі стоїть на заглушці. Цей журнал — моя спроба не втратити слід.

- записів
ЦЬОГО МІСЯЦЯ
- функції
ФУНКЦІЇ
- виправлення
ВИПРАВЛЕННЯ
Scroll
Останній запис · квітень 2026
feat UI/UX Dev Tools
Steampunk Design System
переробив усі 14 інструментів розробника
Коли сторінок Dev Tools стало багато, а стилі почали розходитись — вирішив зробити єдиний візуальний код. Назвав «Industrial Forge»: кована залізна естетика з brass-акцентами. Пишу dt-steampunk.css, виношу Metal Balka як спільну навігацію, ізолюю через .dev-tools-scope щоб не зачепити решту адмінки.
  • Усі 14 Dev Tools виглядають однаково — тепер це одна сім'я
  • Додав агента ua5-steampunk, щоб не правити кожну сторінку вручну
  • 5 спільних CSS-файлів — правлю в одному місці, змінюється скрізь
  • Адмінка не зачеплена — steampunk живе тільки в .dev-tools-scope
🤖 Агент ua5-steampunk новий
Написав собі помічника: даю йому сторінку і промт — він повертає її в Industrial Forge. Так я не переробляю кожен інструмент рукою.
🔧 dt-components.css shared
Склав бібліотеку: gauges, pipes, bolts, grids. Один файл — всі Dev Tools тягнуть звідси. Дублювання пішло в архів.
📊 Shared CSS 5 файлів
balka, steampunk, components, utils, fonts — п'ять спільних файлів. Правлю в одному місці, зміна проходить крізь усі 14 сторінок.
Як до цього дійшло
Коротка хронологія проекту
До цього
Сім'я Anbu — у GTA5 RP, сервер ukraine-gta5
Заснував сім'ю, прикрутив їй лор з Наруто для Discord-каналу. Керувати людьми в грі виявилось складніше, ніж грати — логістика, дисципліна, моніторинг забирали більше часу за саму гру.
Напередодні
Сім'ю заморозив — пора писати інструмент
Тимчасово вийшов із гри, щоб розібратися з тим, що кипіло. Головна ціль — вікі для всього сервера ukraine-gta5. Побічна — Discord-бот для сім'ї. Думав, бот займе вечір.
Лютий 2026
Перші три модулі — Anbu-бот ожив
Observer, Publisher, Executor — три базові модулі, щоб просто побачити, чи взагалі це працює. Працює. Почав додавати ще «тільки останній».
Лютий — березень 2026
Семеро братів
Applicant, Nexus, Challenger, Paymaster дописав до перших трьох. EventBus зв'язав усіх сімох — тепер один знає, що робить інший.
Березень 2026
Адмінка — щоб не жити в терміналі
Підняв веб-адмінку з Discord OAuth. Планував два-три панелі моніторингу — вийшло 14 Dev Tools. Так у мене завжди.
Березень 2026
Publisher переїхав у MySQL
Перший з братів поміняв JSON-файли на справжню БД. Схема ua5web_pub, UTF8MB4. Приклад для решти.
Квітень 2026
Єдиний візуальний код — Industrial Forge
Перевів всі 14 Dev Tools у steampunk-естетику. dt-steampunk.css, Metal Balka, спільна бібліотека компонентів — сторінки перестали розбігатись.
На черзі
Решта братів — у MySQL
Nexus, Challenger, Executor, Observer по черзі переходять з JSON у БД. Більше надійності, менше файлових замків.
Все ще чекає
Вікі сервера — та сама, з якої все починалось
Головна ціль проекту стоїть на сторінці-заглушці. Повернусь сюди, коли бот і Dev Tools перестануть щодня просити увагу. Обіцяв собі у квітні. Обіцяю далі.
Що всередині

Сім братів і одна адмінка

Anbu — не один бот, а сім модулів-братів. Кожен робить свою справу, але чує інших через спільну шину EventBus. Над ними — бекенд, над бекендом — адмінка, звідки я читаю логи й даю команди з одного місця.

0
Git Комітів
0
Рядків коду
-
Dev Log записів
0
Модулів бота
0
Dev Tools
Хто всередині бота
Сім братів — і 14 інструментів зверху
👁️
-
Observer
Вітаю новеньких. Малюю їм welcome-банер з аватаром.
📣
-
Publisher
Публікую новини в канали. Єдиний з братів на MySQL.
-
Executor
Роздаю завдання й дедлайни. Нагадую тим, хто забуває.
📋
-
Applicant
Приймаю анкети в сім'ю. Збираю голоси адмінів.
APPROVED
🔗
-
Nexus
Пам'ятаю все про кожного. 150+ параметрів на профіль.
🏆
-
Challenger
Рахую XP, стріки й досягнення. Нагороджую наполегливих.
💰
-
Paymaster
Веду внутрішню бухгалтерію. Income → Tax → Direction.
🛠️
14
Dev Tools
14 інструментів — щоб рідше заглядати в термінал.
Знайомство по черзі
Кожен брат — своя справа
👁️
Observer — вхідні двері
Перше, що бачить нова людина на сервері — мій banner. Я знаю її ім'я, кидаю привітання, даю базову роль. Стиль банера підганяю під атмосферу сім'ї: рамка, аватар, маленький штрих у нікнеймі.
3 під-модулі: Avatar, Username, Border
  • Генерація welcome-банерів з Canvas
  • Кастомізація аватарів (3 стилі бордерів)
  • Автоматичне привітання з ім'ям
  • Відстеження входу/виходу учасників
👁️ Anbu Bot сьогодні о 12:00
👁️ Welcome to Anbu! Ласкаво просимо, @Username!
📣
Publisher — рупор
Публікую анонси, новини, апдейти в канали Discord. Шаблони зберігаю, пости вмію відкладати за розкладом, медіа прикріплюю. Єдиний з братів, хто вже повністю живе на MySQL — тому запам'ятовую все надійно.
MySQL-powered, 10+ каналів
  • Публікація в 10+ каналів одночасно
  • Шаблони повідомлень з Markdown
  • MySQL бекенд (єдиний модуль)
  • Авто-posting за розкладом
📣 Anbu Bot сьогодні о 15:30
📣 Опубліковано в #announcements: Оновлення v3.2 - 5 нових функцій!
Executor — секретар
Веду внутрішній список справ сім'ї. Створюю задачі, ставлю дедлайн, знаю, кому вони належать. Коли дедлайн наближається — нагадую особисто. Четверо статусів: pending → in-progress → done, або overdue, якщо хтось забув.
4 статуси, авто-нагадування
  • Створення задач з дедлайнами
  • Призначення відповідальних
  • Автоматичні нагадування
  • Статуси: pending → in-progress → done
Anbu Bot сьогодні о 09:45
⚡ Завдання #47 «Оновити банери» - виконано @Admin за 2 дні
📋
Applicant — анкетна комісія
Коли хтось хоче стати частиною сім'ї — приходить до мене. Заповнює анкету через Discord-модалку, я несу її адмінам, збираю голоси реакціями. Схвалили — одразу видаю роль. Всю історію заявок зберігаю в архіві, нічого не гублю.
Голосування, auto-roles
  • Інтерактивні анкети (Discord modals)
  • Голосування адмінів з реакціями
  • Автоматична видача ролей
  • Архів всіх заявок з історією
📋 Anbu Bot сьогодні о 18:20
📋 Заявку від @NewUser схвалено (4/5 голосів) - роль «Учасник» видано
🔗
Nexus — архіваріус
Все, що знають інші модулі — воно у мене. Applicant закрив заявку — запам'ятав. Challenger нарахував XP — запам'ятав. Executor закрив задачу — теж. Я — довготривала пам'ять сім'ї. Один профіль описує учасника через 150+ параметрів.
150+ параметрів конфігу
  • Уніфіковані профілі учасників
  • Форум-треди в Discord
  • Конфігурація сім'ї (150+ параметрів)
  • Агрегація даних з 6 модулів
🔗 Anbu Bot сьогодні о 11:00
🔗 Профіль @User: Репутація 847 | 12 завдань | Стрік 14 днів | Ранг: Veteran
🏆
Challenger — рахівник
Активність — це не тільки факт. Я переводжу її в число: XP за повідомлення, реакції, голоси. Стрік — скільки днів поспіль людина тут. Рівень — щоб видно було зростання. Двадцять з чимось досягнень, щоденні та тижневі челенджі — нехай буде за що поборотись.
XP, стріки, 20+ досягнень
  • Система репутації (XP + рівні)
  • Стріки активності (до 365 днів)
  • 20+ унікальних досягнень
  • Щоденні та тижневі челенджі
🏆 Anbu Bot сьогодні о 22:15
🏆 @User досяг рівня 5! Стрік: 14 днів. Нове досягнення: «Невтомний»
💰
Paymaster — казначей
Внутрішня бухгалтерія сім'ї. Тримаю баланс кожного, проводжу транзакції, знімаю податок, розкладаю залишок по напрямках. Повний шлях грошей — Income → Tax → Direction → Published — видно в реальному часі. На цьому етапі ще є баги, працюю над ними.
Pipeline: 4 етапи обробки
  • Баланси учасників у реальному часі
  • Транзакції з категоріями
  • Податкова система (авто-списання)
  • Розподіл по напрямках фінансування
💰 Anbu Bot сьогодні о 16:00
💰 Income +1500 обр. → Tax -150 (10%) → Net +1350 → Direction: Events
Маршрут новачка
Від першого повідомлення до повноцінного учасника сім'ї
👤
Новий учасник
👁️
Observer привітав
🔗
Nexus: профіль
🏆
Challenger: XP
📋
Applicant: заявка
Учасник сім'ї
Інструменти, які я собі зробив
14 панелей, щоб рідше заглядати в термінал

Кожна панель — одна функція, зроблена для себе. Все починалось з однієї-двох для тесту бота. Ну, ви зрозуміли, як це буває.

📡
API Health
~25 ендпоінтів, health score, response time
MON
📊
System Monitor
CPU/RAM/PM2, notifications при падінні
MON
🔧
Module Manager
Toggle модулів без рестарту, PM2 контроль
MON
🔔
Alert Center
Агрегація алертів, dismiss/restore, custom
MON
EventBus Monitor
Live feed подій, anomaly detection, simulate
MON
📝
Emoji Reference
SSOT емодзі, автоскан коду, конфлікти
DOC
📋
Log Registry
1538 викликів, 105 категорій, фільтри
DOC
🗺️
Project Map
Граф модулів, EventBus зв'язки, БД таблиці
DOC
📰
Changelog Tool
Хронологія деплоїв, ця публічна сторінка
DOC
🐛
Debug Audit
~150 issues, 8 модулів, severity/status
DEV
🗄️
MySQL Migration
JSON→MySQL план, схеми таблиць
DEV
🧪
Testing Center
106 дій, 24 сценарії, smoke test
DEV
👤
Profile Inspector
Nexus+Challenger+Executor по Discord ID
DEV
💰
Paymaster Dev
Баланси, транзакції, Income→Taxes pipeline
DEV
На чому тримається
Нудний стек, але він не підводить
Node.js
Express
Discord.js v14
MySQL
PM2
Canvas API
EventBus
OAuth 2.0
REST API
HestiaCP
IntersectionObserver
WebSockets
Із польового журналу
Дві записки на полях
🗡️
"Спочатку була сім'я Anbu на сервері ukraine-gta5. Коли керувати нею у грі стало важче, ніж грати — я тимчасово її заморозив і сів робити бота, щоб дисципліну й моніторинг передати йому. Планував за вечір. Минуло кілька місяців. Бот живий, Dev Tools живі, вікі сервера — досі на заглушці. Цей журнал тримає мене чесним."
🗡️
Madara
Засновник сім'ї Anbu
🤖
"Мене мало взагалі не бути. Madara сів писати вікі для сервера, а я мав бути маленькою тимчасовою приблудою на вечір — зо два модулі і десяток команд. Відтоді вікі стоїть, а мене вже сім модулів і чотирнадцять Dev Tools. Ну, буває."
🤖
Anbu Bot
Побічний ефект
Трирівнева архітектура
🤖
Discord Bot
:8765
internal HTTP
Express API
:3001
REST + OAuth
🌐
Admin Panel
ukraine-gta5.tools
💻
0 +
Рядків коду
JS + HTML + CSS + JSON
📁
0 +
Файлів проекту
Модулі, стилі, логіка
🚀
0 +
Git комітів
~18 комітів на день
🔌
0 +
API ендпоінтів
REST API на Express
🧩
0
Модулів бота
Observer, Publisher, Nexus...
🛠
0
Dev Tools
Моніторинг, аудит, тести
0
EventBus подій
Міжмодульна комунікація
📅
0 днів
Час розробки
Від першого коміту до production
Discord Bot :8765
↓ internal HTTP
Express API :3001
↓ REST + OAuth
Admin Panel web
Три поверхи одного дому
Внизу — Discord-бот з сімома модулями, що перекидають сигнали одне одному через EventBus. Посередині — Express-бекенд з 290+ ендпоінтами й Discord-авторизацією. Зверху — адмінка з 14 Dev Tools, звідки я читаю логи, перезапускаю процеси й веду цей журнал.
Що відбувалось нещодавно
Останні рухи в проекті
Стіна з нагородами
Етапи, які минули
Три речі, яких я тримаюсь

Як я тримаю
цю справу в купі

01 / шари
🏗️
Bot → Backend → Admin
Три незалежні поверхи. Падає один — інші живі. Між ними — Internal HTTP і REST API, жодних прямих залежностей. Можу рестартити окремо і не боятись, що весь сервер лежить п'ять хвилин.
7 модулів бота
11 dc-модулів бекенду
EventBus шина між братами
02 / видимість
🔭
14 Dev Tools замість термінала
Логи, статуси PM2, MySQL-таблиці, EventBus-потік, алерти — все у вебі, по кнопці. Моніторити бота з телефона — не через SSH. Побудував це для себе; тепер не уявляю, як було без.
1065 лог-записів
25 API-ендпоінтів
03 / страхувальник
Автоматика, що ловить мої ж помилки
Хуки, що роблять node --check після кожного файлу. Pre-commit, що ловить подвійні коми. Агенти, що перевіряють стиль і бекап перед деплоєм. Коли працюєш один — це і є твій ревʼювер.
15+ помічників
666 комітів
🔍
Тип:
Завантаження записів...