تلگرام سرورلس: بات بدون سرور
خلاصهٔ کاملتر
تلگرام سرویسی به اسم Telegram Serverless رو معرفی کرده که باهاش میشه کد بکاند یه بات یا مینیاپ رو مستقیم روی زیرساخت خود تلگرام اجرا کرد. تو مستندات رسمی اومده که دیگه لازم نیست سرور اجاره کنی، کانتینر بالا نگه داری یا نگران اسکیل شدن باشی؛ کد تو یه ایزولهٔ سبک V8 و درست کنار Bot API اجرا میشه و به دیتابیس داخلی و HTTP خروجی هم دسترسی داره.
مدل ذهنی کار سهتیکهست: یه پوشهٔ پروژه روی سیستم خودت، نسخهٔ دیپلویشده تو ابر، و یه CLI به اسم tgcloud که این دو رو با هم سینک میکنه. پروژه فقط سه جور کد داره: هندلرها تو پوشهٔ handlers (هر فایل برای یه نوع آپدیت تلگرام)، کد مشترک تو lib و تعریف جدولها تو schema.js. هر آپدیتی که هندلر نداشته باشه ساده نادیده گرفته میشه. جدولها هم با یه DSL تایپدار و آشنا تعریف میشن:
import { table, integer } from 'sdk/db';
export const counters = table('counters', {
chatId: integer('chat_id').primaryKey(),
seen: integer('seen').notNull().default(0),
});هر بات یه دیتابیس SQLite اختصاصی میگیره که بین اجراها باقی میمونه، و DSL و کوئریبیلدرش عملاً همون Drizzle ORM هست. یه نکتهٔ مهم اینه که فارینکی پشتیبانی نمیشه — PRAGMA foreign_keys خاموشه و references() موقع تعریف خطا میده، پس رابطهها رو باید با ستون ساده مدل کنی و یکپارچگی داده رو خودت نگه داری. دیپلوی کد و تغییر دیتابیس هم عمداً از هم جدا شدن: push فقط کد رو بالا میبره و migrate بعد از تأیید خودت اسکیما رو اعمال میکنه.
محیط اجرا خیلی بستهست: نه npm، نه فایلسیستم، نه شبکه به جز fetch خود SDK — و ایمپورتها هم فقط با نام ماژول کار میکنن نه مسیر نسبی. در عوض tgcloud run اجازه میده یه هندلر رو با پیلود دلخواه و بدون دیپلوی تست کنی. تلگرام همین پروژه رو تو BotFather هم آورده تا از روی گوشی بشه هندلر و اسکیما رو ویرایش کرد، و هر پروژهٔ جدید با یه AGENTS.md و رفرنس SDK ساخته میشه تا ابزارهای کدنویسی هوش مصنوعی زودتر با قوانینش کنار بیان.
نکات کلیدی:
- اجرای کد بات و مینیاپ روی زیرساخت تلگرام، بدون سرور و بدون کانتینر
- هر بات یه دیتابیس SQLite داره که با DSLی شبیه Drizzle تعریف میشه
- دیپلوی کد و اعمال تغییر اسکیما دو مرحلهٔ کاملاً جدا هستن
- فارینکی پشتیبانی نمیشه و رابطهها رو باید دستی مدیریت کنی
- ویرایش و تست پروژه از داخل BotFather روی موبایل هم ممکنه




