Перейти до вмісту

Abitly Telegram bot

ПолеЗначення
ПродуктAbitly.org
ТипBot
Статус🟢 prod
Власник@Vladbandurin

Telegram-бот Abitly.org — TODO: уточнити сценарії (пошук, сповіщення, прив’язка акаунту, deep-link до Mini App).

Репозиторій та рантайм

Section titled “Репозиторій та рантайм”
Репоabitly-org/abitly-tg-bot-v2 (main)
СтекTelegraf · TypeORM · Postgres (pg) · node-cron · reflect-metadata · dotenv (Node.js + TypeScript)
ХостингRailway, project Abitly-Telegram, service Telegram Bot (environment production)
ДеплойRailway автодеплой з GitHub main
РежимLong polling (bot.launch() без параметрів — Telegraf default)
HTTP healthcheckGET /healthcheck на PORT (для Railway readiness probe)
Cronnode-cron: 0 7 * * *dailyOpenDaysNotification (щодня о 07:00 — нотифікації про дні відкритих дверей)
Bot username@abitlybot
  • Залежить від: Abitly API (бізнес-логіка) · Postgres схема abitly (через TypeORM, ділить з API) · Telegram API
  • Domain entities (з коду): TelegramUser, TelegramUserMonitoringOffer, OfferApplicant, Offer, BaseUser, OpenDay, MonitoringOpenDay, University, TableMetadata
  • Від нього залежать:

Зберігаються у Railway project variables. Перелік підтверджених — TODO: (треба прочитати з Railway dashboard / MCP railway-agent). Очікувані:

ЗміннаПризначення
BOT_TOKENтокен бота (Telegraf зчитує без префіксу TELEGRAM_)
DATABASE_URL / DB_*shared Postgres abitly_prod_db (схема abitly, спільна з API)
PORTпорт HTTP-healthcheck (Railway передає автоматично)
API_BASE_URLURL Abitly APIhttps://api.abitly.org

Деталі → environments, Telegram integration.

Terminal window
npm run dev # локальний запуск
npm run dev:watch # з hot-reload
npm run build && npm run start
npm run lint
npm run db:generate # TypeORM migrations
  • Deploy: Railway автодеплой з main. Логи — mcp__railway__get-logs або Railway dashboard.
  • Rollback: mcp__railway__redeploy на попередній SUCCESS-деплой. Деталі → deploy-rollback.
  • Railway built-in logs (через Railway MCPget-logs, get-status).
  • Помилки потенційно теж у Telegram-logger чат — TODO: підтвердити.
  • Бот не відповідає → service-down + перевірити webhook через getWebhookInfo (Telegram)
  • 409 Conflict → одночасно polling і webhook
  • Помилки БД → db-issues