ساخت بکاند برای هر پروژهٔ جدید — حتی پروژههای کوچک — معمولاً به تنظیم دیتابیس، ساخت API، پیادهسازی احراز هویت و مدیریت فایلها نیاز دارد. این کارها بهقدری تکراری هستند که خیلی از توسعهدهندگان در جستجوی راهی برای حذف کامل آنها هستند.
PocketBase دقیقاً همین راه است: یک فایل اجرایی واحد که همهٔ زیرساخت بکاند را در خود دارد. در این مقاله با نسخهٔ PocketBase 0.37 آشنا میشویم.
PocketBase چیست؟
PocketBase یک بکاند متنباز همهکاره (All-in-one) است که توسط Gani Georgiev توسعه داده میشود. کل پروژه به زبان Go نوشته شده و به صورت یک باینری واحد توزیع میشود — یک فایل که هم سرور، هم دیتابیس، هم API، هم احراز هویت و هم رابط مدیریتی را شامل میشود.
نسخهٔ ۰.۳۷ با بهبودهای چشمگیر در عملکرد، امکانات جدید جستجو و فیلتر، و پشتیبانی بهتر از افزونهها (JSMigrations، Hooks) منتشر شده است.
امکانات اصلی PocketBase 0.37
یک فایل، همهچیز
بعد از دانلود و اجرای فایل باینری، یک رابط مدیریتی وب روی http://localhost:8090 بالا میآید که از همان لحظهٔ اول میتوانید جداول (Collections) بسازید، فیلدها را تعریف کنید و API آماده بگیرید. بدون نصب، بدون پیکربندی، بدون وابستگی.
پایگاه دادهٔ SQLite
PocketBase از SQLite استفاده میکند؛ دیتابیسی که به صورت یک فایل ذخیره میشود و هیچ سرویس جداگانهای نمیخواهد. با پشتیبانی از ایندکسها، جستجوی full-text و تراکنشها.
احراز هویت داخلی
ثبتنام و ورود کاربران، مدیریت نشستها، احراز هویت با ایمیل/رمز عبور، OAuth2 (گوگل، گیتهاب و ...) و قوانین دسترسی (Access Rules) بر اساس نقشها — همه آماده و قابل تنظیم از رابط مدیریتی.
API خودکار و Real-time
برای هر Collection، یک REST API کامل به صورت خودکار تولید میشود: CRUD، فیلتر، مرتبسازی، pagination و اشتراک بلادرنگ (Realtime) با WebSocket — بدون نوشتن حتی یک خط کد سمت سرور.
ذخیرهسازی فایل
آپلود فایل به صورت داخلی پشتیبانی میشود؛ با امکان تعریف ابعاد مختلف برای تصاویر (Thumbnail) و ذخیرهٔ فایلها در دیسک.
افزونهپذیری با Go
اگر به منطق سفارشی نیاز دارید، میتوانید با Hooks (مثل onRecordBeforeCreateRequest) و حتی توسعهٔ یک برنامهٔ Go کامل بر پایهٔ PocketBase، هر قابلیتی را اضافه کنید.
مقایسه PocketBase با رقبا
رقبای اصلی PocketBase، Supabase به عنوان پلتفرم متنباز مبتنی بر PostgreSQL و Firebase محصول گوگل هستند:
| ویژگی | PocketBase | Supabase | Firebase |
|---|---|---|---|
| پایگاه داده | SQLite (فایل واحد) | PostgreSQL | NoSQL (Firestore) |
| استقرار | یک باینری — فوقالعاده ساده | Self-hosted یا ابری | فقط ابری |
| احراز هویت | بله، داخلی | بله، با Auth | بله، با Firebase Auth |
| Real-time | بله (WebSocket) | بله (Realtime) | بله (Firestore) |
| پیچیدگی راهاندازی | بسیار پایین | متوسط | کم (اما فقط ابری) |
| مناسب برای | پروژههای کوچک و متوسط، ابزارهای داخلی | پروژههای جدی با نیاز به SQL کامل | اپهای موبایل و وب گوگلمحور |
موارد استفاده
- MVP و پروتوتایپ سریع — بالا آوردن بکاند کامل در چند دقیقه برای تست ایده
- ابزارهای داخلی سازمان — داشبوردها، پنلهای مدیریتی و ابزارهای میزکار با دادهٔ مشترک
- بازیها و اپهای موبایل — احراز هویت و دادهٔ بلادرنگ بدون پیچیدگی سرور
- فروشگاههای کوچک و فرمها — ثبت داده، مدیریت سفارش و آپلود فایل
- آموزش و یادگیری — آموزش مفهوم بکاند و API بدون درگیر شدن با زیرساخت
- پروژههای ساید و شخصی — بکاند سبک با هزینهٔ تقریباً صفر
چه زمانی PocketBase انتخاب مناسبی است؟
- به دنبال سادهترین مسیر ممکن برای داشتن بکاند هستید
- پروژه شما به PostgreSQL و پرسوجوهای SQL پیشرفته نیاز ندارد و SQLite کافی است
- به خودمیزبانی رایگان با یک فایل نیاز دارید — بدون Docker و بدون وابستگی
- ترافیک شما متوسط است و نیاز به خوشهبندی چند سروره ندارید
- میخواهید کنترل کامل روی دادهها داشته باشید و به ابر گوگل وابسته نباشید
برای چه چیزهایی مناسب نیست؟
- پروژههای بزرگ و پرترافیک — SQLite مناسب چند سرور و بار سنگین همزمان نیست؛ Supabase با PostgreSQL انتخاب بهتری است
- نیاز به کوئریهای پیچیده و گزارشگیری سنگین — دیتابیس رابطهای کامل با قابلیتهای پیشرفتهٔ PostgreSQL لازم دارید
- اکوسیستم گوگل — اگر به Firebase Auth، Cloud Messaging، Analytics و ... نیاز دارید، Firebase یکپارچگی طبیعیتری دارد
- منطق سمت سرور پیچیده — اگر به میکروسرویسها و منطق تجاری سنگین نیاز دارید، یک بکاند اختصاصی (Node.js، Go و ...) شفافتر است
- دیتابیس توزیعشده و replication — PocketBase برای سناریوی تکنودی طراحی شده است
لکسویا این ابزار را به عنوان برنامهٔ آماده (QuickApp) ارائه میدهد — با یک کلیک نمونهٔ تکنمونهای یا کلاستر راه بیندازید و در چند دقیقه، بکاند پروژهٔ خود را بدون درگیر شدن با نصب و نگهداری بالا بیاورید.
نتیجهگیری
PocketBase 0.37 بهترین نمونهٔ «سادگی مهندسیشده» است: یک فایل، یک دیتابیس، یک API کامل. برای MVP ها، ابزارهای داخلی و پروژههای کوچک تا متوسط، سریعترین راه رسیدن به یک بکاند کارا و قابل اعتماد است.
اما هر ابزاری محدودیت دارد. وقتی پروژه بزرگ شد، ترافیک بالا رفت یا به SQL پیشرفته نیاز پیدا کردید، مهاجرت به Supabase یا یک بکاند اختصاصی گام طبیعی بعدی است. با این حال، برای شروع، هیچ ابزاری به سادگی PocketBase نیست.