لماذا تستضيف AnythingLLM ذاتيًا على خادم VPS
AnythingLLM هو قبل كل شيء محرك RAG متكامل: استيعاب المستندات وتقطيعها وتحويلها إلى متجهات والبحث الدلالي والتوليد، كل ذلك ضمن واجهة متعددة المستخدمين. جوهر الموضوع هو البيانات: التقارير المالية والعقود ووثائق المنتج وقاعدة معرفة الدعم. على خادم VPS، يبقى مُضمِّن المستندات وقاعدة البيانات المتجهية (LanceDB المدمجة افتراضيًا) والمحادثات ضمن وحدات التخزين الخاصة بك. أنت تتحكّم في من يصل إلى أي مساحة عمل، وتختار نموذج LLM (واجهة برمجة تطبيقات سحابية أو نموذج محلي)، وتتجنّب حصص الاستيعاب في عروض SaaS. بالنسبة إلى وكالة تدير عدة عملاء، تصبح كل مساحة عمل صومعة محكمة على بنية تحتية تتحكّم بها.
الفوائد الملموسة لاستضافة AnythingLLM ذاتيًا
- مستندات سرية مفهرسة محليًا، لا تُرسَل أبدًا إلى خدمة استيعاب خارجية.
- مساحات عمل مقسّمة حسب العميل أو الفريق، مع إدارة الأدوار.
- قاعدة بيانات متجهية حسب اختيارك: LanceDB مدمجة، أو Chroma/Qdrant خارجية على خادم VPS نفسه.
- الاتصال بأي مزوّد LLM، بما في ذلك Ollama محلي من أجل انعدام الاعتماد على السحابة.
- لا حدود على عدد المستندات أو الصفحات المُستوعَبة.
- نسخ احتياطي بسيط: تتّسع الحالة بأكملها في وحدة تخزين
storageواحدة لأرشفتها.
المتطلبات العتادية والبرمجية
حاوية AnythingLLM معقولة، لكن تضمين المجموعات الكبيرة يستهلك المعالج وذاكرة RAM. استهدف 2 vCPU / 2 GB من RAM للبدء، و4 vCPU / 8 GB إذا كنت تفهرس آلاف المستندات أو تستخدم نموذج تضمين محليًا. خصّص 15 إلى 20 GB من القرص، لأن المتجهات وذاكرة التخزين المؤقت للمستندات تنمو بسرعة. Docker وDocker Compose مطلوبان، إضافةً إلى نطاق فرعي (مثل chat.your-domain.com) والمنفذ 443 مفتوحًا. إذا بقيت على واجهات برمجة التطبيقات السحابية للاستدلال، فاحتفظ بمفاتيحك في متناول اليد؛ أما للتشغيل المحلي بنسبة 100%، فخصّص ذاكرة RAM إضافية للنموذج.
نشر AnythingLLM باستخدام Docker وHTTPS
تهيئة البيئة
عبر SSH، أنشئ mkdir -p /opt/anythingllm/storage && cd /opt/anythingllm. اضبط أذونات مجلد storage الذي سيستضيف قاعدة البيانات المتجهية والمستندات: chmod -R 777 storage (تعمل الحاوية بمعرّف UID مخصّص).
كتابة docker-compose وملف .env
استخدم صورة mintplexlabs/anythingllm، وربط المنفذ الداخلي 3001، وركّب ./storage:/app/server/storage، ووجّه المتغيّر STORAGE_DIR. في ملف .env، عرّف JWT_SECRET ومزوّد LLM المختار (LLM_PROVIDER والمفاتيح المرتبطة به).
البدء وإنشاء حساب المسؤول
شغّل docker compose up -d. عند أول وصول محلي على المنفذ 3001، يرشدك AnythingLLM إلى إنشاء حساب المسؤول وتهيئة نموذج التضمين ونموذج LLM.
إعداد الوكيل العكسي
باستخدام Nginx Proxy Manager أو Caddy، وجّه chat.your-domain.com إلى localhost:3001 وفعّل Let's Encrypt. تذكّر زيادة client_max_body_size على جانب الوكيل للسماح برفع المستندات الكبيرة.
إنشاء أول مساحة عمل
في الواجهة، أنشئ مساحة عمل، واسحب بعض ملفات PDF، وشغّل التضمين ثم اختبر سؤالاً. تحقّق من أن الإجابات تستشهد فعلاً بالمصادر المستخرجة من ملفاتك.
تفعيل وضع تعدّد المستخدمين
في الإعدادات، انتقل إلى وضع تعدّد المستخدمين، وادعُ زملاءك وعيّن الأدوار. قيّد كل مستخدم بمساحات العمل التي تخصّه فقط.
بالنسبة إلى المجموعات الكبيرة، لا تبقَ على LanceDB المدمجة: انشر Qdrant في حاوية مجاورة ووجّه AnythingLLM إليها عبر شبكة Docker الداخلية. يتعامل Qdrant بشكل أفضل مع ملايين المتجهات، ويوفّر التصفية حسب البيانات الوصفية ويبقى قابلاً للاستعلام بشكل مستقل، ما يسهّل تصحيح عمليات البحث الدلالي لديك.