لماذا تستضيف Lobe Chat ذاتيًا على خادم VPS
يجمّع Lobe Chat عدة مزوّدي LLM (OpenAI وAnthropic وGoogle وMistral وOllama محلي) في واجهة مستخدم واحدة مع سوق إضافات ووكلاء مخصّصين وتعرّف/تركيب صوتي. في نموذج SaaS، تمرّ سجلاتك ومفاتيحك عبر طرف ثالث؛ وباستضافته على خادم VPS الخاص بك، تبقى المحادثات في قاعدة بيانات PostgreSQL الخاصة بك ولا تغادر مفاتيح API خادمك أبدًا. يوفّر خادم VPS أيضًا عنوان IP ثابتًا مفيدًا لإدراج استدعاءاتك الصادرة إلى واجهات برمجة التطبيقات المدفوعة في القائمة البيضاء، وحرية تفعيل وضع قاعدة البيانات (متعدّد المستخدمين مع مصادقة) بدلاً من التخزين البسيط في المتصفح.
الفوائد الملموسة للاستضافة الذاتية
- تمركز جميع مفاتيح API لنماذج LLM على جانب الخادم، دون كشفها للمتصفح أبدًا
- سجلات محادثة محفوظة في PostgreSQL الخاص بك، قابلة للنسخ الاحتياطي والتشفير
- وضع تعدّد المستخدمين عبر المصادقة (Logto وAuth0 وClerk) لفريق بأكمله
- الاتصال بـ Ollama محلي على خادم VPS نفسه للحصول على إجابات خاصة بنسبة 100% دون تكلفة API
- سوق إضافات ووكلاء مخصّصين دون حصة أو حد تفرضه خدمة SaaS
- تحكّم كامل في التكاليف: لا تدفع إلا مقابل الاستهلاك الفعلي لواجهات برمجة التطبيقات التي تربطها
المتطلبات العتادية والبرمجية
Lobe Chat تطبيق Node.js خفيف نسبيًا. في وضع التخزين في المتصفح، يكفي 1 vCPU و1 GB من RAM. لوضع قاعدة البيانات (الموصى به في الإنتاج) مع PostgreSQL مدمجة، خصّص 2 vCPU و2 إلى 4 GB من RAM، إضافةً إلى 10 GB من القرص للصور والمرفقات وقاعدة البيانات. على الجانب البرمجي: Docker وإضافة Docker Compose، واسم نطاق يشير إلى عنوان IP الخاص بخادم VPS (سجل A)، ومفتاح API واحد على الأقل من مزوّد LLM. إذا فعّلت وضع S3 للملفات، فخصّص حاوية bucket متوافقة (يمكن لـ MinIO العمل على خادم VPS نفسه).
نشر Lobe Chat باستخدام Docker
تحضير خادم VPS وDocker
اتصل عبر SSH، وحدّث النظام ثم ثبّت Docker عبر curl -fsSL https://get.docker.com | sh. تحقّق من التثبيت باستخدام docker compose version. أنشئ مجلد عمل: mkdir -p /opt/lobe-chat && cd /opt/lobe-chat.
كتابة ملف compose في وضع قاعدة البيانات
أنشئ docker-compose.yml مع خدمة lobe-chat-database، وخدمة postgres (صورة pgvector/pgvector:pg16) وminio لتخزين S3. أدخِل المتغيّرات DATABASE_URL وKEY_VAULTS_SECRET (المُولَّد باستخدام openssl rand -base64 32) وNEXT_AUTH_SECRET.
حقن المفاتيح ومزوّد المصادقة
أضف مفاتيحك في ملف .env: OPENAI_API_KEY وANTHROPIC_API_KEY وغيرها. هيّئ NEXT_AUTH_SSO_PROVIDERS وبيانات اعتماد Logto أو Clerk لتفعيل مصادقة تعدّد المستخدمين قبل الكشف العلني.
تشغيل الحزمة
ابدأ كل شيء باستخدام docker compose up -d. تابع السجلات باستخدام docker compose logs -f lobe-chat-database حتى ترى الخادم يستمع على المنفذ 3210.
إعداد الوكيل العكسي وشهادة SSL
ضع Caddy أو Nginx أمام الحاوية. باستخدام Caddy، يولّد ملف Caddyfile من ثلاثة أسطر (chat.yourdomain.com { reverse_proxy localhost:3210 }) شهادة Let's Encrypt تلقائيًا ويفرض HTTPS.
التحقق والتأمين
افتح https://chat.yourdomain.com، وأنشئ حساب المسؤول الأول، ثم أغلق المنفذ 3210 في جدار الحماية (ufw deny 3210) للسماح فقط بمرور حركة المرور عبر الوكيل العكسي.
لمحادثات خاصة تمامًا دون تكلفة API، ثبّت Ollama على خادم VPS نفسه وأدخِل OLLAMA_PROXY_URL=http://host.docker.internal:11434/v1 في Lobe Chat. تحصل على مساعد محلي (Llama 3 وQwen وMistral) لا يعتمد على أي مزوّد خارجي. تذكّر زيادة ذاكرة RAM لخادم VPS حسب حجم النموذج المحمّل.