[{"data":1,"prerenderedAt":134},["ShallowReactive",2],{"seo-verification":3,"blog-استضافة-grist-على-vps-بديل-airtable-مفتوح-المصدر-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"slugs":9,"title":12,"excerpt":13,"readTime":14,"views":15,"isPinned":16,"publishedAt":17,"category":18,"categories":24,"featuredImage":26,"bgImage":27,"posterImage":28,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":75,"ctaBody":76,"ctaButton":77,"ctaUrl":78,"relatedPosts":79},218,"استضافة-grist-على-vps-بديل-airtable-مفتوح-المصدر",{"fr":10,"en":11,"ar":8},"self-host-grist-vps","self-hosting-grist-on-a-vps-open-source-airtable-alternative","استضافة Grist على VPS: بديل Airtable مفتوح المصدر","انشر Grist على VPS ServOrbit واحصل على بديل Airtable مفتوح المصدر: صيغ Python، واجهة REST تلقائية، وتعاون في الوقت الفعلي، في حاوية Docker واحدة مع SQLite مدمج.",3,1,false,"2026-08-04T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-grist-vps-poster.svg",{"categorySlug":30,"appSlug":31},"التطوير","grist","Google Sheets يخزن القوائم. Airtable يضيف العلاقات بين الجداول لكن بـ 20 دولاراً للمستخدم شهرياً. Grist يجمع الاثنين، مفتوح المصدر، على خادمك الخاص: أعمدة مكتوبة، مراجع بين الجداول، صيغ Python تعمل من جانب الخادم، وواجهة برمجية REST مُولَّدة تلقائياً على كل مستند — أداة نمذجة بيانات متكاملة بدون اشتراك.",[34,38,47,50,72],{"type":35,"title":36,"body":37},"h2","لماذا Grist بدلاً من Google Sheets أو Airtable","Google Sheets جدول بيانات: يخزن البيانات مستوية والحسابات محدودة بدوال الورقة والعلاقات تعتمد على VLOOKUP هشة. Airtable يحل هذا بقواعد علائقية لكن بـ 20 دولاراً للمستخدم شهرياً، تتراكم الفاتورة بسرعة.\n\nGrist يجمع العالمين: واجهة جداول بيانات مألوفة فوق قاعدة بيانات علائقية حقيقية. كل مستند يحتوي على جداول بأعمدة مكتوبة (نص، رقمي، تاريخ، مرجع، مرفق)، علاقات صريحة بين الجداول وصيغ Python تعمل من جانب الخادم. على VPS الخاص بك، Grist يكلف 0 دولار إضافي شهرياً.",{"type":39,"title":40,"items":41},"ul","ما يفعله Grist ولا يستطيع Google Sheets فعله",[42,43,44,45,46],"**علاقات بين الجداول**: عمود مرجع في `الطلبات` يشير إلى `العملاء` — ليس VLOOKUP هشاً بل مفتاح أجنبي حقيقي مع إكمال تلقائي.","**صيغ Python من جانب الخادم**: `import datetime`، `import re`، `import uuid` — وأي مكتبة Python نقية. الصيغ تعمل في صندوق رملي على الخادم.","**واجهة برمجية REST تلقائية**: كل مستند يعرض `\u002Fapi\u002Fdocs\u002F\u003Cid>\u002Ftables\u002F\u003Ctable>\u002Frecords` بلا إعداد. دمج Grist مع n8n أو Make أو أي عميل HTTP.","**طرق عرض متعددة على نفس البيانات**: شبكة، بطاقة، مخطط، تقويم، ودجت مخصص — كل طريقة عرض قابلة للتصفية والإعداد بشكل مستقل.","**قواعد وصول لكل صف وعمود**: قيّد القراءة والكتابة بناءً على سمات المستخدم — دقيق بما يكفي للمستندات متعددة المستأجرين.",{"type":35,"title":48,"body":49},"معمارية Docker بحاوية واحدة","Grist ينتشر في حاوية واحدة `gristlabs\u002Fgrist:latest` تضم Node.js (الخادم) وPython (صندوق الصيغ) وSQLite (تخزين المستندات). حجم مسمى `\u002Fpersist` يخزن ملفات `.grist` — ملف واحد لكل مستند. لا خدمة خارجية مطلوبة.\n\nمتغير بيئة واحد يقود المصادقة الأولية: `GRIST_DEFAULT_EMAIL=admin@localhost.local` يسجّل دخولك تلقائياً بدون SMTP. لعمليات النشر متعددة المستخدمين، Grist يدعم OIDC (`GRIST_OIDC_*`) — Google Workspace أو Authentik أو Keycloak.",{"type":51,"title":52,"steps":53},"steps","نشر Grist على VPS في 4 خطوات",[54,57,60,63,66,69],{"title":55,"body":56},"تحضير VPS وDocker","VPS بـ 1 غيغابايت RAM كافٍ. اتصل بـ SSH، ثبّت Docker (`curl -fsSL https:\u002F\u002Fget.docker.com | sh`)، أنشئ مجلد الستاك: `mkdir -p \u002Fopt\u002Fstacks\u002Fgrist && cd \u002Fopt\u002Fstacks\u002Fgrist`.",{"title":58,"body":59},"إنشاء docker-compose.yml","عرّف الخدمة من الصورة `gristlabs\u002Fgrist:latest`، اربط حجم `\u002Fpersist`، افتح المنفذ 8484، واضبط `GRIST_SESSION_SECRET` عشوائياً (`openssl rand -hex 32`). أضف `GRIST_DEFAULT_EMAIL=admin@localhost.local` للوصول التلقائي بدون SMTP.",{"title":61,"body":62},"الإطلاق والتحقق","ابدأ بـ `docker compose up -d` وانتظر بدء Node.js (~10 ثوانٍ). تحقق بـ `curl -sI http:\u002F\u002Flocalhost:8484\u002F` — يجب أن تحصل على HTTP 200 أو إعادة توجيه 302. Grist يعمل.",{"title":64,"body":65},"إنشاء مستندك الأول","افتح `http:\u002F\u002Fip-vps:8484` — يسجّل Grist دخولك مباشرة. انقر '+ Add document'، عرّف جداولك وأعمدتك، ثم استكشف صيغ Python بكتابة `=` في خلية. لاستيراد بيانات موجودة: File → Import from file (CSV، Excel، ‎.grist).",{"title":67,"body":68},"إضافة reverse proxy وHTTPS","ضع Caddy أمام Grist: `grist.yourdomain.com { reverse_proxy grist:8484 }`. Caddy يحصل على شهادة Let's Encrypt تلقائياً. حدّث `GRIST_ALLOWED_HOSTS=grist.yourdomain.com` وأعد تشغيل الحاوية.",{"title":70,"body":71},"أول تسجيل دخول","يحوّلكم Grist إلى شاشة دخول «boot» تطلب مفتاح التثبيت — أدخلوا المفتاح المزوّد لكم. بعدها ينطلق معالج إعداد سريع، ثم تصلون إلى مستنداتكم بصفة مسؤول بالحساب: admin@localhost.local",{"type":73,"body":74},"tip","لأتمتة النسخ الاحتياطية لمستندات Grist، اربط حجم `\u002Fpersist\u002Fdocs\u002F` بمهمة Backrest (أيضاً في كتالوج ServOrbit): Backrest يأخذ لقطات للمجلد عبر restic ويرسل الزيادات المشفرة إلى S3 أو Backblaze B2 أو SFTP — دون إيقاف Grist. Grist نفسه يحتفظ بتاريخ لقطات لكل مستند (قائمة المستند → History).","Airtable الخاص بك، على خادمك","انشر Grist على VPS ServOrbit ونمذج بياناتك بدون اشتراك ودون ارتباط بمزوّد — واجهة REST وصيغ Python وتعاون في الوقت الفعلي.","نشر Grist","\u002Fmarketplace\u002Fالتطوير\u002Fgrist",[80,97,114],{"id":81,"slug":82,"slugs":83,"title":86,"excerpt":87,"readTime":88,"views":89,"isPinned":16,"publishedAt":90,"category":91,"categories":92,"featuredImage":26,"bgImage":27,"posterImage":94,"relatedSolution":95},188,"استضافة-nocobase-على-vps-منصة-بلا-كود-لأدواتك-الداخلية",{"fr":84,"en":85,"ar":82},"self-host-nocobase-vps","self-host-nocobase-on-a-vps-no-code-platform-for-internal-tools","استضافة NocoBase على VPS: منصة بلا كود لأدواتك الداخلية","انشر NocoBase على خادم VPS — منصة no-code\u002Flow-code لبناء الأدوات الداخلية وCRM وسير موافقات. Apache-2.0، أكثر من 23 ألف نجمة، v2.1.26.",4,0,"2026-07-22T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[93],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fself-host-nocobase-vps-poster.svg",{"categorySlug":30,"appSlug":96},"nocobase",{"id":98,"slug":99,"slugs":100,"title":103,"excerpt":104,"readTime":105,"views":89,"isPinned":16,"publishedAt":106,"category":107,"categories":108,"featuredImage":26,"bgImage":27,"posterImage":110,"relatedSolution":111},157,"كيفية-استضافة-nocodb-ذاتيا-على-خادم-vps",{"fr":101,"en":102,"ar":99},"self-host-nocodb-vps","how-to-self-host-nocodb-on-a-vps","كيفية استضافة NocoDB ذاتيًا على خادم VPS","انشر NocoDB على خادم VPS للحصول على بديل مفتوح المصدر ومستضاف ذاتيًا عن Airtable. حوّل أي قاعدة بيانات إلى جدول بيانات ذكي مع واجهات REST وGraphQL عبر Docker Compose.",2,"2026-01-20T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},[109],{"id":19,"name":20,"slug":21,"color":22,"icon":23},"\u002Fblog\u002Fcovers\u002Fself-host-nocodb-vps-poster.svg",{"categorySlug":112,"appSlug":113},"قواعد-البيانات","nocodb",{"id":115,"slug":116,"slugs":117,"title":120,"excerpt":121,"readTime":88,"views":89,"isPinned":16,"publishedAt":122,"category":123,"categories":129,"featuredImage":26,"bgImage":27,"posterImage":131,"relatedSolution":132},67,"استضافة-meilisearch-على-خادم-vps",{"fr":118,"en":119,"ar":116},"heberger-meilisearch-vps","hosting-meilisearch-on-a-vps","استضافة Meilisearch على خادم VPS","استضِف Meilisearch على خادمك الـVPS: محرك بحث فوري ومتسامح مع الأعطال والأخطاء المطبعية. دليل Docker والمفتاح الرئيسي (master key) وSSL.","2026-04-14T00:00:00+00:00",{"id":124,"name":125,"slug":126,"color":127,"icon":128},6,"قواعد البيانات","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[130],{"id":124,"name":125,"slug":126,"color":127,"icon":128},"\u002Fblog\u002Fcovers\u002Fheberger-meilisearch-vps-poster.svg",{"categorySlug":112,"appSlug":133},"meilisearch",1787580937609]