[{"data":1,"prerenderedAt":145},["ShallowReactive",2],{"seo-verification":3,"blog-تثبيت-glitchtip-على-vps-تتبع-الأخطاء-بشكل-مستقل-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":26,"intro":29,"sections":30,"ctaTitle":90,"ctaBody":91,"ctaButton":92,"ctaUrl":93,"relatedPosts":94},250,"تثبيت-glitchtip-على-vps-تتبع-الأخطاء-بشكل-مستقل",{"fr":10,"en":11,"ar":8},"self-host-glitchtip-vps","self-host-glitchtip-on-a-vps-a-sovereign-error-tracker","تثبيت GlitchTip على VPS: تتبع الأخطاء بشكل مستقل","انشر GlitchTip v6 على VPS Linux باستخدام Docker Compose. متوافق مع SDK Sentry، يعمل بذاكرة 2 جيجابايت ويتصل بتغيير متغير DSN فقط.",7,0,false,"2026-08-13T00:00:00+00:00",{"id":19,"name":20,"slug":21,"color":22,"icon":23},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[25],{"id":19,"name":20,"slug":21,"color":22,"icon":23},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-glitchtip-vps-poster.svg","يعاني Sentry self-hosted 26.4.x منذ أغسطس 2026 من خمسة انحدارات متزامنة: consumers لـ Snuba في حلقة لا نهائية (issue #4301)، وتوقف monitor_consumer (issue #4306)، وفشل مصادقة relay عبر HTTP\u002F2 (issue #4321). تُوثّق المجتمعات التقنية عمليات الترحيل إلى GlitchTip. إذا كنت قد أضفت فعلاً SDK Sentry إلى تطبيقاتك، فالانتقال لا يمسّ سطراً واحداً من الكود — تغيير متغير بيئة واحد فقط، والنسخة تعمل بذاكرة 2 جيجابايت.",[31,35,46,49,77,80,84,87],{"type":32,"title":33,"body":34},"h2","لماذا الترحيل إلى GlitchTip الآن","يعاني Sentry self-hosted 26.4.x من خمسة انحدارات موثّقة من المجتمع منذ أغسطس 2026. تصف issues رقم #4301 و#4306 consumers لـ Snuba تعيد التشغيل في حلقة لا نهائية دون معالجة أي أحداث، وتوقف في monitor_consumer يمنع تسجيل المراقبة الدورية. تُشير issue رقم #4321 إلى فشل مصادقة relay على اتصالات HTTP\u002F2، مما يوقف استيعاب الأحداث. دفعت هذه الانحدارات عدة فرق إلى توثيق ترحيلها إلى GlitchTip.\n\nالاعتراض الأكثر شيوعاً هو التوافق: لقد أضفت SDK Sentry (‏sentry-python أو ‎@sentry\u002Fnode أو sentry-rails…) إلى تطبيقاتك ولا ترغب في إعادة كتابتها. ينفّذ GlitchTip واجهة برمجة Sentry ويقبل الأحداث المُرسلة من هذه SDKs ذاتها. يتلخّص التبديل في استبدال قيمة متغير البيئة `SENTRY_DSN` بالـ DSN الذي يوفره GlitchTip عند إنشاء مشروع. لا تعديل على كود التطبيق إطلاقاً.",{"type":36,"title":37,"items":38},"ul","ما تحصل عليه مع GlitchTip v6 المُستضاف ذاتياً",[39,40,41,42,43,44,45],"**بصمة صغيرة** — أربعة حاويات فقط (‏Django و‏Celery و‏PostgreSQL و‏Redis)، مقارنةً بعشرين خدمة في Sentry self-hosted.","**توافق SDK Sentry** — جميع SDKs Sentry الرسمية تعمل بدون تعديل؛ المتغير الوحيد المُستبدل هو DSN.","**سيادة البيانات** — تبقى آثار الأخطاء وبيانات المستخدمين على بنيتك التحتية وفق سياسة الاحتفاظ التي تحددها.","**رخصة GPL-3.0** — الكود قابل للمراجعة، بدون مكوّن مغلق أو ميزة مقيّدة بخطة مدفوعة.","**مراقبة الإتاحة** — يشمل GlitchTip مراقبة الاتصال HTTP بدون أي تبعية خارجية.","**واجهة إدارة الأداء** — تتبع المعاملات وآثار N+1 والاستعلامات البطيئة عبر واجهة برمجية متوافقة مع Sentry.","**استهلاك ذاكرة منخفض** — تكفي 2 جيجابايت من RAM للاستخدام الفردي أو الفريق الصغير بدون أي ضبط للإعدادات.",{"type":32,"title":47,"body":48},"المتطلبات قبل البدء","يعتمد GlitchTip v6 على أربع حاويات: Django (خادم الويب والواجهة)، وCelery (معالجة الأحداث بشكل غير متزامن)، وPostgreSQL (قاعدة البيانات الرئيسية)، وRedis (قائمة انتظار المهام). تحتاج إلى:\n\n- خادم VPS يعمل بنظام Linux مع **ذاكرة 2 جيجابايت كحد أدنى** (4 جيجابايت مريحة لفريق من عشرة مطورين).\n- تثبيت **Docker** و**Docker Compose** — متاحان على جميع التوزيعات الحديثة.\n- **اسم نطاق** أو نطاق فرعي يُشير إلى عنوان IP الخادم، لتفعيل HTTPS عبر Let's Encrypt.\n- فتح **المنفذين 80 و443** في جدار الحماية.\n\nعلى خوادم ServOrbit VPS، يأتي Docker مثبتاً مسبقاً. الخطط التي تبدأ من 2 vCPU وذاكرة 2 جيجابايت تغطي هذا الحمل تماماً.",{"type":50,"title":51,"steps":52},"steps","نشر GlitchTip باستخدام Docker Compose",[53,56,59,62,65,68,71,74],{"title":54,"body":55},"إنشاء مجلد العمل","اتصل بخادم VPS عبر SSH، ثم أنشئ مجلداً مخصصاً:\n\n`mkdir -p \u002Fopt\u002Fglitchtip && cd \u002Fopt\u002Fglitchtip`",{"title":57,"body":58},"إنشاء ملف متغيرات البيئة","أنشئ ملف `.env` بقيم الإعداد:\n\n`SECRET_KEY=\u003Cسلسلة-عشوائية-طويلة>` — يمكنك توليدها بالأمر `openssl rand -hex 32`.\n`DATABASE_URL=postgresql:\u002F\u002Fglitchtip:كلمة_المرور@db:5432\u002Fglitchtip`\n`REDIS_URL=redis:\u002F\u002Fredis:6379\u002F0`\n`GLITCHTIP_DOMAIN=https:\u002F\u002Fglitchtip.your-domain.com`\n`DEFAULT_FROM_EMAIL=no-reply@your-domain.com`\n`EMAIL_URL=smtp:\u002F\u002Fuser:password@smtp.your-domain.com:587`\n\nاستبدل القيم ببياناتك الخاصة. يجب أن يتطابق `GLITCHTIP_DOMAIN` تماماً مع النطاق الذي ستؤمّنه بـ HTTPS — يُدمج في الـ DSNs التي ينشئها GlitchTip.",{"title":60,"body":61},"إنشاء ملف docker-compose.yml","أنشئ ملف `docker-compose.yml` بالمحتوى التالي (مستوحى من التوثيق الرسمي لـ GlitchTip):\n\n```yaml\nversion: \"3.8\"\nx-environment: &default-environment\n  env_file: .env\nservices:\n  db:\n    image: postgres:16\n    environment:\n      POSTGRES_DB: glitchtip\n      POSTGRES_USER: glitchtip\n      POSTGRES_PASSWORD: password\n    volumes:\n      - pg_data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n  redis:\n    image: redis:7\n    volumes:\n      - redis_data:\u002Fdata\n  web:\n    image: glitchtip\u002Fglitchtip:latest\n    depends_on: [db, redis]\n    ports:\n      - \"127.0.0.1:8000:8080\"\n    \u003C\u003C: *default-environment\n  worker:\n    image: glitchtip\u002Fglitchtip:latest\n    command: .\u002Fbin\u002Frun-celery-with-beat.sh\n    depends_on: [db, redis]\n    \u003C\u003C: *default-environment\nvolumes:\n  pg_data:\n  redis_data:\n```\n\nلاحظ أن المنفذ 8000 مرتبط بـ `127.0.0.1` فقط: لا يُعرض الخدمة مباشرة بل عبر وسيط عكسي فقط.",{"title":63,"body":64},"تهيئة قاعدة البيانات","شغّل عمليات ترحيل Django لإنشاء المخطط:\n\n`docker compose run --rm web .\u002Fmanage.py migrate`\n\nشغّل هذا الأمر مرة واحدة عند التثبيت، ثم مجدداً في كل مرة تُحدّث فيها GlitchTip إلى إصدار جديد.",{"title":66,"body":67},"إنشاء أول مستخدم مشرف","أنشئ حساب المشرف الخاص بك:\n\n`docker compose run --rm web .\u002Fmanage.py createsuperuser`\n\nأدخل البريد الإلكتروني وكلمة المرور حين يطلبهما المساعد.",{"title":69,"body":70},"تشغيل المجموعة","شغّل جميع الحاويات في الخلفية:\n\n`docker compose up -d`\n\nتحقق من تشغيل الحاويات الأربع بالأمر `docker compose ps`. تستجيب خدمة الويب على `http:\u002F\u002F127.0.0.1:8000`.",{"title":72,"body":73},"إعداد وسيط nginx العكسي مع HTTPS","ثبّت nginx وCertbot إن لم يكونا موجودين:\n\n`apt install -y nginx certbot python3-certbot-nginx`\n\nأنشئ ملف vhost في `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fglitchtip` بكتلة `server` تستمع على المنفذ 80، وتضع `server_name glitchtip.your-domain.com`، وتُعيد توجيه الطلبات إلى `http:\u002F\u002F127.0.0.1:8000` عبر `proxy_pass`. فعّل الإعداد ثم احصل على الشهادة:\n\n`certbot --nginx -d glitchtip.your-domain.com`\n\nيُحدّث Certbot ملف vhost تلقائياً لإعادة توجيه HTTP إلى HTTPS ويضيف كتلة SSL.",{"title":75,"body":76},"توصيل SDK Sentry من تطبيقاتك","في واجهة GlitchTip، أنشئ منظمة ثم مشروعاً. يُنشئ GlitchTip DSN بالتنسيق `https:\u002F\u002F\u003Cمفتاح>@glitchtip.your-domain.com\u002F\u003Cمعرّف-المشروع>`.\n\nفي كل تطبيق من تطبيقاتك، استبدل قيمة `SENTRY_DSN` (أو المعامل `dsn` الممرَّر إلى `Sentry.init()`) بهذا الـ DSN الجديد. أعد تشغيل العمليات. تظهر الأحداث في GlitchTip بدون أي تعديل آخر.",{"type":32,"title":78,"body":79},"الإعداد بعد التثبيت","بعد أول تشغيل، اضبط هذه النقاط في واجهة الإدارة:\n\n**متغيرات بيئة إضافية.** فعّل إرسال التنبيهات بالبريد الإلكتروني بتعريف `EMAIL_URL` في ملف `.env`. أضف `GLITCHTIP_MAX_EVENT_LIFE_DAYS=90` للتحكم في مدة الاحتفاظ بالأحداث وضبط حجم قاعدة البيانات.\n\n**الوصول متعدد الفرق.** يدير GlitchTip منظمات وأعضاء بمستويات صلاحيات مختلفة. أنشئ فرقك من الإعدادات ← الأعضاء وادعُ المطورين بالبريد الإلكتروني.\n\n**مراقبو الإتاحة.** في قسم Monitors لمشروعك، أنشئ مراقب ping لكل خدمة تُعرضها: يُرسل GlitchTip طلب HTTP على فترات منتظمة ويُنشئ issue إذا لم تستجب الخدمة خلال المهلة المحددة.",{"type":81,"title":82,"body":83},"tip","تصليب المجموعة","قيّد الوصول إلى المنفذ 8000 باستخدام ufw: `ufw allow 80\u002Ftcp && ufw allow 443\u002Ftcp && ufw deny 8000\u002Ftcp`. أضف `SECURE_SSL_REDIRECT=True` و`SESSION_COOKIE_SECURE=True` في ملف `.env` لفرض HTTPS على مستوى Django. جدوِل نسخة احتياطية يومية بـ `pg_dump` إلى موقع بعيد — يحتوي volume الـ `pg_data` على جميع بيانات الأخطاء والإعدادات. راجع دليل تصليب خادم Linux الأولي قبل تعريض النسخة لحركة مرور الإنتاج.",{"type":32,"title":85,"body":86},"الأخطاء الشائعة وحلولها","**`Error: relation \"glitchtip_*\" does not exist`** — لم تُشغَّل عمليات الترحيل. شغّل `docker compose run --rm web .\u002Fmanage.py migrate` وتحقق من سلامة الحاوية `db` بالأمر `docker compose ps`.\n\n**`CSRF verification failed. Request aborted.`** — متغير `GLITCHTIP_DOMAIN` لا يتطابق مع النطاق الذي تصل منه إلى الواجهة. تحقق من أنه بدون شرطة مائلة نهائية وأعد تشغيل الحاويات بالأمر `docker compose restart`.\n\n**`Connection refused` عبر DSN من تطبيقك** — المنفذ 8000 غير متاح من الخارج (وهذا مقصود). تحقق من أن nginx يُعيد توجيه حركة HTTPS إلى `127.0.0.1:8000`: يجب أن يُرجع الأمر `curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" http:\u002F\u002F127.0.0.1:8000\u002Fapi\u002F0\u002F` القيمة 200.\n\n**تظهر الأحداث في سجلات Celery لكن ليس في الواجهة** — بدأ worker Celery قبل اكتمال عمليات الترحيل. أعد تشغيله بالأمر `docker compose restart worker`.\n\n**`No such file or directory: '\u002Fetc\u002Fnginx\u002Fsites-enabled\u002Fglitchtip'`** — نسيت إنشاء الرابط الرمزي. شغّل `ln -s \u002Fetc\u002Fnginx\u002Fsites-available\u002Fglitchtip \u002Fetc\u002Fnginx\u002Fsites-enabled\u002F` ثم `nginx -t && systemctl reload nginx`.",{"type":32,"title":88,"body":89},"GlitchTip في الإنتاج على VPS","صدر GlitchTip v6 في فبراير 2026 برخصة GPL-3.0 ويعتمد على أربع حاويات. توافقه مع SDK Sentry يجعله مسار خروج سليم من Sentry self-hosted حين يتراكم الأخير بانحدارات يصعب تجاوزها.\n\nللمزيد، راجع دليلنا حول قائمة تدقيق Docker Compose للإنتاج لتأمين نشرك أكثر، ودليل روتين تصحيح تطبيقات self-hosted للحفاظ على تحديث GlitchTip دون انقطاع الخدمة.\n\nنسخة GlitchTip تعمل ضمن 2 جيجابايت من RAM: خادم VPS بـ 2 vCPU وذاكرة 2 جيجابايت يغطي هذا النمط تماماً، مع وصول root واختيار نظام التشغيل.","متتبع الأخطاء الخاص بك على بنيتك التحتية","يعمل GlitchTip بذاكرة 2 جيجابايت فقط: خادم VPS Power (2 vCPU، 2 جيجابايت RAM، 60 جيجابايت SSD) يناسب هذا الحمل تماماً، مع وصول root واختيار نظام التشغيل — بدون وسيط وبدون إعداد مفروض.","نشر VPS","\u002Fvps-cloud",[95,113,132],{"id":96,"slug":97,"slugs":98,"title":101,"excerpt":102,"readTime":103,"views":15,"isPinned":16,"publishedAt":104,"category":105,"categories":110,"featuredImage":26,"bgImage":27,"posterImage":112,"relatedSolution":26},229,"docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط",{"fr":99,"en":100,"ar":97},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","Docker Compose في الإنتاج: قائمة التحقق من 10 نقاط","‎10 إعدادات Docker Compose يجب التحقق منها قبل أي نشر إنتاجي: إعادة التشغيل والفحوص الصحية والحدود والأسرار والسجلات.",14,"2026-08-06T00:00:00+00:00",{"id":106,"name":107,"slug":108,"color":109,"icon":108},3,"النشر","deploiement","bg-success\u002F10 text-success",[111],{"id":106,"name":107,"slug":108,"color":109,"icon":108},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",{"id":114,"slug":115,"slugs":116,"title":119,"excerpt":120,"readTime":19,"views":121,"isPinned":16,"publishedAt":122,"category":123,"categories":129,"featuredImage":26,"bgImage":27,"posterImage":131,"relatedSolution":26},224,"التطبيقات-المستضافة-ذاتيا-روتين-التصحيحات",{"fr":117,"en":118,"ar":115},"routine-correctifs-apps-self-hosted","self-hosted-apps-the-patching-routine","التطبيقات المستضافة ذاتيًا: روتين التصحيحات","الجرد ونشرات الأمان ونافذة التصحيح والنسخ الاحتياطي والتحقق: الروتين الذي تفتقده معظم المنظومات المستضافة ذاتيًا.",1,"2026-08-05T00:00:00+00:00",{"id":124,"name":125,"slug":126,"color":127,"icon":128},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[130],{"id":124,"name":125,"slug":126,"color":127,"icon":128},"\u002Fblog\u002Fcovers\u002Froutine-correctifs-apps-self-hosted-poster.svg",{"id":133,"slug":134,"slugs":135,"title":138,"excerpt":139,"readTime":140,"views":15,"isPinned":16,"publishedAt":104,"category":141,"categories":142,"featuredImage":26,"bgImage":27,"posterImage":144,"relatedSolution":26},228,"تصليب-الخادم-linux-الأولي",{"fr":136,"en":137,"ar":134},"durcissement-serveur-linux-initial","initial-linux-server-hardening","تصليب الخادم ‎Linux‎ الأولي","أنشئ مستخدم ‎sudo‎، وكوّن ‎SSH‎ بالمفاتيح، وفعّل ‎UFW‎ و‎fail2ban‎ على ‎Ubuntu 22.04‎ أو ‎Debian 12‎ في أقل من ساعة.",10,{"id":124,"name":125,"slug":126,"color":127,"icon":128},[143],{"id":124,"name":125,"slug":126,"color":127,"icon":128},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",1787580948749]