ibrokhimweb.uz

2025 · Engineer

Tourbot, CityMax, UserBot, AiAdminRobot va boshqa 20+ bot uchun yagona Node.js stack. Har bot o'z domeniga ega, lekin umumiy auth, queue, backup va monitoring ulashadi.

Rol
Engineer
Yil
2025
Stack
  • Node.js
  • TypeScript
  • Prisma
  • PostgreSQL
  • Telegraf
  • BullMQ
  • Redis
  • Docker

Qisqacha

Muammo

20+ bot har biri "o'zining stack'i" bilan qurilgan bo'lsa — har yangilanish o'zining pipeline'iga muhtoj bo'ladi. Kichik jamoa uchun bu imkonsiz darajada ko'p texnik qarz. Kerak edi: har bot alohida, lekin infratuzilma umumiy.

Yondashuv

  • Monorepo-stylecyber-step/ibrokhimweb/bots/* — har bot o'z repo'sida, lekin bir xil package.json skeletini ulashadi (CI template, Dockerfile, eslint config).
  • Ulushlangan xizmatlar — centralized API (yuqorida ko'rilgan): user auth, passport, manzil, telegram ma'lumotlari — barcha botlar shu API'dan o'qiydi.
  • Queue — BullMQ + Redis, har bot uchun alohida namespace. Yuborilmagan xabarlar, crash, retry — hammasi kuzatiladi.
  • Deploy — VPS'da bitta PostgreSQL, bitta Redis, har bot uchun alohida container. Nginx Proxy Manager bilan har bot o'z sub-domain/webhook'iga ega.

Texnik tafsilotlar

  • Graceful shutdown — bot container SIGTERM oldida ishlovchi xabarlarni tugatadi, queue'ga qaytaradi.
  • Fail2ban integration — spam yuboruvchi foydalanuvchilar host darajasida ban qilinadi.
  • Admin panel — bull-board orqali queue monitoring, BasicAuth bilan himoyalangan.

Natija

  • 20+ bot yagona deploy pipeline bilan ishlaydi
  • 99%+ uptime oxirgi 90 kunda (Uptime Robot monitoring)
  • Har bot < 150MB RAM avg — containerlar subscribe qoldiqlari ko'p yemaydi
  • Har yangi bot qo'shish — taxminan 30 daqiqa (template + env qo'shish)
20+ Telegram bot — yagona stack va umumiy infratuzilma · Ibrokhim Ergashov