[{"data":1,"prerenderedAt":171},["ShallowReactive",2],{"seo-verification":3,"blog-woodpecker-ci-وforgejo-خط-أنابيب-cicd-على-خادم-vps-ma-ar":6,"promo-bar-likely":170},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-woodpecker-ci-وforgejo-خط-أنابيب-cicd-على-خادم-vps-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":26,"featuredImage":28,"bgImage":29,"posterImage":30,"relatedSolution":28,"intro":31,"sections":32,"ctaTitle":103,"ctaBody":104,"ctaButton":105,"ctaUrl":106,"relatedPosts":107},212,"woodpecker-ci-وforgejo-خط-أنابيب-cicd-على-خادم-vps",{"fr":12,"en":13,"ar":10,"es":14},"woodpecker-ci-pipeline-vps-forgejo","woodpecker-ci-and-forgejo-cicd-pipeline-on-a-vps","woodpecker-ci-forgejo-pipeline-cicd-vps","Woodpecker CI وForgejo: خط أنابيب CI\u002FCD على خادم VPS","نشر Woodpecker CI v3 مع Forgejo على خادم VPS: إعداد Docker Compose، تكوين YAML، الأسرار، أجهزة التشغيل متعددة المعماريات واستكشاف أخطاء OAuth.",12,2,false,"2026-08-02T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":24},"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[27],{"id":18,"name":23,"slug":24,"color":25,"icon":24},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fwoodpecker-ci-pipeline-vps-forgejo-poster.svg","‎Woodpecker CI محرك خطوط أنابيب مفتوح المصدر — تفرّع مجتمعي من Drone CI بترخيص Apache 2.0 — مصمَّم للتكامل الأصيل مع ‎Forgejo. في الإصدار 3.20 (أكتوبر 2026)، تعمل كل خطوة في حاوية Docker معزولة، ويستهلك الخادم في وضع الخمول نحو 100 ميغابايت من الذاكرة والوكيل نحو 30 ميغابايت. على خادم ‎VPS تُنفَّذ عمليات البناء في أقرب نقطة ممكنة من مستودع git: لا قوائم انتظار سحابية، ولا حصة دقائق يجب مراقبتها، ولا يغادر أي سر تكامل شبكتك.",[33,37,48,51,54,82,85,88,91,94,97,100],{"type":34,"title":35,"body":36},"h2","لماذا التخلي عن خدمات CI السحابية لصالح خط أنابيب على خادم VPS","تفوتر خدمات CI السحابية بالدقيقة وتفرض قوائم انتظار مشتركة تطول مع الحجم. حين تكبر المستودعات أو تتضاعف الاختبارات، تتجاوز الفاتورة بسرعة تكلفة ‎VPS مخصص. استضافة ‎Forgejo و‎Woodpecker CI على الخادم ذاته تُلغي هذا الزمن الضائع في الشبكة: يقرأ المشغّل الكود محلياً دون المرور عبر بنية تحتية خارجية. تتحكم أيضاً في دورة التحديث — لا يُطبَّق أي تغيير في التسعير أو سياسة الاحتفاظ بالسجلات دون موافقتك. بالنسبة للفرق الخاضعة لمتطلبات تنظيمية أو سرية، هذه ميزة حاسمة: أسرار التكامل (مفاتيح SSH للنشر، رموز الوصول إلى السجل) لا تتجاوز حدود شبكتك. وأخيراً، يكفل ترخيص Apache 2.0 أن يظل الكود المصدري قابلاً للتدقيق.",{"type":38,"title":39,"items":40},"ul","ما يوفره Woodpecker CI على خادم VPS",[41,42,43,44,45,46,47],"‏**عزل Docker لكل خطوة** — تعمل كل خطوة في حاويتها الخاصة دون حالة مشتركة بين المهام؛ فشل خطوة لا يُفسد ما يليها.","‏**بصمة ذاكرة خفيفة** — يستهلك الخادم في وضع الخمول نحو 100 ميغابايت من الذاكرة والوكيل نحو 30 ميغابايت، مما يُبقي معظم الموارد لعمليات البناء.","‏**صياغة YAML بسيطة** — يكفي ملف ‎`‎.woodpecker.yaml` في جذر المستودع لوصف خط الأنابيب بالكامل؛ الصياغة أوضح من GitHub Actions.","‏**تكامل أصيل مع Forgejo** — بروتوكول OAuth2 الخاص بـ‎Forgejo هو الآلية الوحيدة للمصادقة المطلوبة؛ يُسجَّل الـ‎webhook تلقائياً.","‏**دعم متعدد المعماريات بدون إضافات** — الوسم `platform: linux\u002Farm64` داخل كتلة `labels` يوجّه المهمة إلى وكيل ARM64 دون أي تجريد إضافي.","‏**أسرار مركزية لكل مستودع أو عالمية** — تُحقَن المتغيرات الحساسة وقت البناء ولا تظهر في ملف YAML الخاضع للإصدار.","‏**ترخيص Apache 2.0** — كود مصدري قابل للتدقيق، مجتمع تفرع نشط، بلا اعتماد على موفر خاص.",{"type":34,"title":49,"body":50},"المتطلبات المحددة: خادم VPS وForgejo والشبكة","يمكن تثبيت ‎Woodpecker CI على الخادم ذاته الذي يضم ‎Forgejo أو على خادم مخصص. للخدمتين معاً، خصص 1 غيغابايت من الذاكرة كحد أدنى، و2 غيغابايت للاستخدام المريح مع عدة مستودعات نشطة بالتوازي. على صعيد البرمجيات: ‎Docker Engine 24 أو أحدث، ‎Docker Compose v2 (أمر `docker compose`)، نطاق فرعي مخصص لـ‎Woodpecker — مثلاً ‎`ci.votre-domaine.com` — يشير إلى IP الخادم، والمنفذ 443 مفتوحاً لـ‎HTTPS، وصول SSH. يجب أن يكون ‎Forgejo متاحاً من حاوية ‎Woodpecker: عبر شبكة Docker الداخلية إذا كانا على الخادم ذاته، أو عبر عنوان URL العام لـ‎HTTPS إذا كان ‎Woodpecker على خادم منفصل. ‎Woodpecker CI v3 يتضمن مشغّلًا مخصصًا لـ‎Forgejo (`WOODPECKER_FORGEJO=true`): استخدم إصدارًا من ‎Forgejo لا يزال مدعومًا، وإذا كانت الخدمتان على الخادم ذاته فاسمح بالـ‎webhooks المحلية في ‎Forgejo (`ALLOWED_HOST_LIST=external,loopback` في قسم `[webhook]` من `app.ini`).",{"type":34,"title":52,"body":53},"Woodpecker CI مقابل Forgejo Actions: متى تستخدم أيهما","‎Forgejo Actions — متاح منذ ‎Forgejo v1.19 بصورة تجريبية، ومستقر تدريجياً — يُكرر صياغة ‎GitHub Actions: إذا كانت فرقك تمتلك بالفعل سير عمل ‎`.github\u002Fworkflows\u002F` في الإنتاج، فالانتقال يكاد يكون شفافاً. ‎Forgejo Actions هو الخيار الطبيعي لأسطول مستودعات يتعايش مع ‎GitHub أو يُعيد استخدام إجراءات عامة من السوق. أما ‎Woodpecker CI فيستجيب لاحتياجات مختلفة: صياغة ‎YAML أكثر مباشرة، وبنيته المعتمدة على الخادم-الوكيل تُتيح فصل بيئة git عن محرك CI — مفيد حين تحتاج أسطول من المشغّلات إلى خدمة عدة بيئات git. وهو أيضاً الأنسب لبناء متعدد المعماريات حيث يُوجَّه كل مهمة إلى وكيل محدد. خلاصة: اختر ‎Forgejo Actions إذا كانت توافقية ‎GitHub Actions أولوية، و‎Woodpecker CI إذا أردت صياغة مبسّطة أو نشراً مفصولاً أو أسطولاً متغاير المعماريات.",{"type":55,"title":56,"steps":57},"steps","نشر Woodpecker CI على خادم VPS",[58,61,64,67,70,73,76,79],{"title":59,"body":60},"إنشاء تطبيق OAuth في Forgejo","‏في ‎Forgejo، انتقل إلى الإعدادات ← التطبيقات ← إدارة تطبيقات OAuth2. أعطِ التطبيق اسماً (مثلاً `woodpecker`) وأدخل عنوان إعادة التوجيه: ‏`https:\u002F\u002Fci.votre-domaine.com\u002Fauthorize`. دوّن معرف العميل وسر العميل المُنشأَين؛ ستحتاجهما في متغيرات بيئة خادم ‎Woodpecker.",{"title":62,"body":63},"توليد سر مشترك بين الخادم والوكيل","‏أنشئ سلسلة عشوائية قوية: `openssl rand -hex 32`. ستُعيَّن هذه القيمة كـ‎`WOODPECKER_AGENT_SECRET` في خدمتي الخادم والوكيل؛ وهي تُصادق على الاتصال عبر ‎gRPC بينهما. احفظها في مدير أسرار أو ملف ‎`.env` غير خاضع للإصدار.",{"title":65,"body":66},"إنشاء المجلد وملف docker-compose.yml","‏أنشئ المجلد ‎`\u002Fopt\u002Fwoodpecker\u002F` وضع فيه ملف `docker-compose.yml`. تستخدم خدمة ‎`woodpecker-server` الصورة ‎`woodpeckerci\u002Fwoodpecker-server:v3` وتستمع على المنفذين 8000 (واجهة المستخدم) و9000 (gRPC): لا تنشرهما على عنوان IP العام، إذ يصل إليهما ‎reverse proxy والوكيل عبر شبكة ‎Docker. عيّن المتغيرات: `WOODPECKER_FORGEJO=true`، `WOODPECKER_FORGEJO_URL`، `WOODPECKER_FORGEJO_CLIENT`، `WOODPECKER_FORGEJO_SECRET`، `WOODPECKER_AGENT_SECRET`، و`WOODPECKER_HOST=https:\u002F\u002Fci.votre-domaine.com`. تستخدم خدمة ‎`woodpecker-agent` الصورة ‎`woodpeckerci\u002Fwoodpecker-agent:v3` وتُركّب ‎`\u002Fvar\u002Frun\u002Fdocker.sock` وتستقبل `WOODPECKER_SERVER=woodpecker-server:9000` والـ‎`WOODPECKER_AGENT_SECRET` ذاته.",{"title":68,"body":69},"تكوين الـ reverse proxy بـ HTTPS","‏كوّن ‎Traefik أو ‎Caddy لإنهاء ‎TLS على ‎`ci.votre-domaine.com` وتوجيه الطلبات إلى ‎`woodpecker-server:8000`. مع ‎Caddy كتلة بسيطة كافية: `ci.votre-domaine.com { reverse_proxy woodpecker-server:8000 }`. لا تكشف المنفذ 8000 مطلقاً على الـ‎IP العامة؛ يجب أن يبقى المنفذ 9000 (gRPC) متاحاً فقط على شبكة Docker الداخلية.",{"title":71,"body":72},"تشغيل المكدس","‏في ‎`\u002Fopt\u002Fwoodpecker`، نفّذ `docker compose up -d`. راقب السجلات بـ‎`docker compose logs -f woodpecker-server` حتى ترى ‎`starting http server ...`. من جهة الوكيل، يجب أن يعرض ‎`docker compose logs -f woodpecker-agent` الرسالة ‎`starting Woodpecker agent`، ثم يظهر الوكيل في قائمة الوكلاء بإعدادات إدارة ‎Woodpecker؛ إن لم يظهر هناك خلال ثلاثين ثانية، تحقق من تطابق `WOODPECKER_AGENT_SECRET` في الخدمتين.",{"title":74,"body":75},"تسجيل الدخول وتفعيل أول مستودع","‏افتح ‎`https:\u002F\u002Fci.votre-domaine.com` وسجّل الدخول بحسابك في ‎Forgejo عبر ‎OAuth2. في لوحة التحكم، انقر «إضافة مستودع» واختر المشروع المراد تفعيله. يسجّل ‎Woodpecker تلقائياً ‎webhook في ‎Forgejo لتشغيل عمليات البناء عند كل دفع أو طلب سحب.",{"title":77,"body":78},"إضافة ملف ‎.woodpecker.yaml إلى المستودع","‏في جذر المستودع، أنشئ ‎`‎.woodpecker.yaml`. مثال بسيط بثلاث خطوات: `lint` (صورة ‎`node:24`، أمر ‎`npm run lint`)، `test` (صورة ‎`node:24`، أمر ‎`npm test`) ومرحلة ‎`deploy` مشروطة بالفرع ‎`main` تُشغّل سكربت ‎SSH بعيداً. ادفع الملف: تنطلق عملية بناء فوراً في ‎Woodpecker ويظهر نتيجتها في الواجهة وفي حالة الـ‎commit في ‎Forgejo.",{"title":80,"body":81},"التحقق من استمرارية البيانات","‏بشكل افتراضي، يحفظ ‎Woodpecker قاعدة بيانات ‎SQLite داخل الحاوية. لتثبيت دائم، اربط مجلداً ‎volume باسم على ‎`\u002Fvar\u002Flib\u002Fwoodpecker` في خدمة الخادم واحتفظ بنسخ احتياطية منتظمة. إعادة التشغيل أو تحديث الصورة دون ‎volume يمسح تاريخ عمليات البناء وتكوين المستودعات المُفعَّلة.",{"type":34,"title":83,"body":84},"كتابة أول pipeline في ‎.woodpecker.yaml","‏يصف ملف ‎`‎.woodpecker.yaml` سلسلة خطوات تُنفَّذ بالتتابع في حاويات ‎Docker منفصلة. لكل خطوة اسم وصورة وقائمة أوامر. يمكن للخطوات مشاركة مساحة العمل (المجلد المستنسخ) عبر مجلد ‎volume يُركّبه ‎Woodpecker تلقائياً. لمشروع ‎Node.js، يشمل ‎pipeline أساسي خطوة ‎`lint` (`node:24`، `npm ci && npm run lint`)، وخطوة ‎`test` (`node:24`، `npm test`)، وخطوة ‎`build` (`node:24`، `npm run build`). لمشروع ‎Docker، أضف خطوة تستخدم الإضافة الرسمية ‎`woodpeckerci\u002Fplugin-docker-buildx` لبناء الصورة ودفعها إلى سجل. يُعبَّر عن التشغيل الشرطي بكتلة ‎`when`: `when: { branch: main, event: push }` يُقيّد خطوة النشر بالفرع الرئيسي عند الدفع المباشر فقط.",{"type":34,"title":86,"body":87},"الأسرار ومتغيرات البيئة في خطوط الأنابيب","‏يُميّز ‎Woodpecker بين ثلاثة مستويات من الأسرار: أسرار المستودع (مرئية فقط في ‎pipelines المستودع المعني)، وأسرار المنظمة (مشتركة بين مستودعات المنظمة)، والأسرار العالمية (متاحة لجميع المستودعات، يُنشئها مسؤولو الخادم وحدهم، تُنشأ بحذر). يُعلَن السر في لوحة التحكم — في قسم ‎Secrets للمستودع — ثم يُشار إليه في ‎pipeline بالصياغة ‎`from_secret`. مثلاً، مفتاح ‎SSH للنشر باسم ‎`deploy_key` يُحقَن في خطوة عبر `environment: { SSH_KEY: { from_secret: deploy_key } }`. افتراضيًا، لا تُمرَّر الأسرار إلى ‎pipelines طلبات السحب (ما لم تُفعّل الحدث ‎`pull_request` على السر). للمتغيرات غير الحساسة المشتركة عبر مستودعات متعددة، استخدم `WOODPECKER_ENVIRONMENT` على مستوى الخادم.",{"type":89,"body":90},"tip","‏ضع خادم ‎Woodpecker خلف ‎Traefik أو ‎Caddy بـ‎HTTPS ولا تكشفه مطلقاً مباشرة على المنفذ 8000. أبقِ التسجيل مغلقًا (`WOODPECKER_OPEN=false`، وهي القيمة الافتراضية)، أو إن فتحته فقيّده بمنظمات ‎Forgejo الخاصة بك عبر `WOODPECKER_ORGS`؛ وحدّد المسؤولين عبر `WOODPECKER_ADMIN`. خزّن كل أسرار ‎pipeline (رموز ‎SSH، مفاتيح ‎API، كلمات مرور سجل ‎Docker) في أسرار المستودع بلوحة تحكم ‎Woodpecker — تُحقَن كمتغيرات بيئة أثناء البناء دون ظهورها في ‎`‎.woodpecker.yaml` الخاضع للإصدار. أخيراً، اربط ‎volume باسم لحفظ قاعدة بيانات ‎SQLite.",{"type":34,"title":92,"body":93},"أجهزة التشغيل متعددة المعماريات: x86_64 وARM64","‏يدعم ‎Woodpecker CI v3 أصلاً وكلاء متعددي المعماريات: كل وكيل يُعلن منصته للخادم (`linux\u002Famd64`، `linux\u002Farm64`، `linux\u002Farm\u002Fv7`) والخادم يُوجّه المهام إلى الوكيل المطابق. لتعريف مهمة ‎ARM64، أضف `labels: { platform: linux\u002Farm64 }` (أُزيل المفتاح القديم `platform` من المستوى الأعلى في v3) على مستوى ‎workflow في ‎`‎.woodpecker.yaml`. إذا كان لديك ‎VPS بمعمارية ‎ARM وآخر بـ‎x86_64، ثبّت وكيلاً على كل منهما بنفس `WOODPECKER_AGENT_SECRET` ودع الخادم يوزع عمليات البناء. يصل الوكيل البعيد إلى منفذ ‎gRPC 9000 على الخادم عبر الإنترنت: شفّر هذا الاتصال بـ‎TLS (`WOODPECKER_GRPC_SECURE=true` على الوكيل) ولا تفتح المنفذ إلا لعنوان IP الوكيل. يُفيد هذا في التصليب المتبادل للثنائيات، واختبار توافق صور ‎Docker عبر المعماريات. تذهب الإضافة `woodpeckerci\u002Fplugin-docker-buildx` أبعد بإنتاج صور متعددة المعماريات من وكيل واحد عبر ‎QEMU، لكن البناء الأصيل على المعمارية المستهدفة يظل دائماً أسرع.",{"type":34,"title":95,"body":96},"استكشاف الأخطاء: خمسة أخطاء شائعة","‏تظهر خمسة مشكلات بانتظام أثناء التثبيت أو الاستخدام. الأولى: الوكيل لا يتصل بالخادم (`agent could not auth`). السبب الأكثر شيوعاً: `WOODPECKER_AGENT_SECRET` غير متطابق بين الخدمتين. تحقق بـ‎`docker compose config | grep WOODPECKER_AGENT_SECRET` (صور Woodpecker مبنية على `scratch` دون الأمر `env`). الثانية: تسجيل الدخول عبر ‎OAuth2 يفشل بـ‎`Error while authenticating against OAuth provider`. تحقق من أن عنوان إعادة التوجيه في تطبيق ‎Forgejo OAuth2 يطابق تماماً `WOODPECKER_HOST`. الثالثة: ‎pipelines تبقى عالقة في `pending`. ربما لا تطابق ‎`labels` الخاصة بالـ‎workflow (مثل `platform`) أي وكيل متاح؛ احذف غير الضروري منها. الرابعة: الأسرار لا تُحقَن. افتراضيًا، لا يُمرَّر السر إلا لأحداث ‎`push` و‎`tag` و‎`deployment`، ولا يُمرَّر أبدًا لطلبات السحب. تحقق من أن الحدث المُشغِّل هو ‎`push` أو ‎`tag`. الخامسة: بعد الترقية لـ‎v3.18، سجلات البناء القديمة مفقودة — يتضمن هذا الإصدار ترحيلًا لتخزين السجلات قد يطول حسب عدد الأسطر المخزّنة: خذ نسخة احتياطية من مجلد البيانات قبل الترقية، وتوقّع انقطاعًا في الخدمة، ودع الترحيل يكتمل قبل الحكم بفقدان السجلات.",{"type":34,"title":98,"body":99},"نشر Woodpecker على VPS من ServOrbit","‏يُثبَّت ‎Woodpecker CI يدوياً عبر ‎Docker Compose على ‎VPS سحابي من ‎ServOrbit بعنوان ‎IP ثابت. بعد توفير الـ‎VPS، ما عليك سوى توجيه ‎`WOODPECKER_FORGEJO_URL` إلى بيئة ‎Forgejo الموجودة لديك وإدخال مفاتيح ‎OAuth2 لبدء تشغيل خطوط الأنابيب. هذا التكامل مفيد تحديداً للوكالات والفرق التقنية التي تريد عزل محرك ‎CI عن خادم بيئة ‎git. موارد الـ‎VPS قابلة للتعديل في أي وقت من بوابة العميل — إضافة ‎RAM أو ‎vCPU دون إعادة تثبيت — مما يُتيح تحجيم أسطول المشغّلات وفق حمل البناء الفعلي.",{"type":34,"title":101,"body":102},"من بيئة git إلى النشر المستمر: مكدس سيادي متكامل","‏يدير ‎Forgejo الكود والمشكلات ومراجعات طلبات السحب؛ ينسّق ‎Woodpecker CI خطوط أنابيب الاختبار والنشر. يتواصل الاثنان عبر ‎OAuth2 والـ‎webhooks على شبكتك الخاصة، دون اعتماد على ‎GitHub أو ‎GitLab أو خدمة تكامل سحابية. يستجيب هذا المكدس المستضاف ذاتياً لمتطلبات السيادة للوكالات والفرق التقنية التي لا تريد أن تعبر ملكيتها الفكرية أو أسرار تكاملها عبر منصات خارجية. مع ‎Woodpecker CI v3 وإصدار مدعوم من ‎Forgejo، تحصل على بيئة تطوير متكاملة — بيئة ‎git، CI\u002FCD، سجل ‎Docker إذا لزم — تحت سيطرتك الكاملة، على خادم أو خادمَين، بتكلفة شهرية قابلة للتنبؤ.","أطلق مجموعة CI\u002FCD الخاصة بك على خادم VPS من ServOrbit","يتيح لك خادم VPS Cloud من ServOrbit مع Docker مُعدّ مسبقًا وعنوان IP ثابت نشر Forgejo وWoodpecker CI في دقائق، بموارد قابلة للتعديل مع تزايد خطوط الأنابيب.","النشر على VPS ServOrbit","\u002Fvps-cloud",[108,133,150],{"id":109,"slug":110,"slugs":111,"title":115,"excerpt":116,"readTime":117,"views":118,"isPinned":19,"noindex":19,"publishedAt":119,"updatedAt":120,"category":121,"categories":127,"featuredImage":28,"bgImage":29,"posterImage":129,"relatedSolution":130},74,"استضافة-gitea-على-خادم-vps-الخاص-بك",{"fr":112,"en":113,"ar":110,"es":114},"heberger-gitea","host-gitea-on-your-own-vps","alojar-gitea-en-un-vps","استضافة Gitea على خادم VPS الخاص بك في 2026","انشُر ‏Gitea 1.25‏ على خادم VPS مع Docker وSSL. دليل شامل: CI\u002FCD مع ‏Gitea Actions‏، مقارنة ‏Gitea‏ مقابل ‏Forgejo v16‏، إدارة يومية، استكشاف أخطاء SSH وHTTPS.",13,1,"2026-04-07T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":122,"name":123,"slug":124,"color":125,"icon":126},7,"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[128],{"id":122,"name":123,"slug":124,"color":125,"icon":126},"\u002Fblog\u002Fcovers\u002Fheberger-gitea-poster.svg",{"categorySlug":131,"appSlug":132},"التطوير","gitea",{"id":134,"slug":135,"slugs":136,"title":140,"excerpt":141,"readTime":142,"views":143,"isPinned":19,"noindex":19,"publishedAt":144,"updatedAt":145,"category":146,"categories":147,"featuredImage":28,"bgImage":29,"posterImage":149,"relatedSolution":28},75,"استضافة-forgejo-على-خادم-vps-الخاص-بك",{"fr":137,"en":138,"ar":135,"es":139},"heberger-forgejo","host-forgejo-on-your-own-vps","alojar-forgejo-en-un-vps","استضافة ‎Forgejo‎ على خادم VPS: دليل شامل 2025","انشر ‎Forgejo‎ على خادم ‎VPS‎ باستخدام ‎Docker‎ و‎SSL‎ و‎Actions runners‎ مع تأمين متقدم. دليل خطوة بخطوة لإقامة مخزن ‎Git‎ مستقل.",10,9,"2026-04-06T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":122,"name":123,"slug":124,"color":125,"icon":126},[148],{"id":122,"name":123,"slug":124,"color":125,"icon":126},"\u002Fblog\u002Fcovers\u002Fheberger-forgejo-poster.svg",{"id":151,"slug":152,"slugs":153,"title":157,"excerpt":158,"readTime":159,"views":160,"isPinned":19,"noindex":19,"publishedAt":161,"updatedAt":162,"category":163,"categories":164,"featuredImage":28,"bgImage":29,"posterImage":166,"relatedSolution":167},3,"تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026",{"fr":154,"en":155,"ar":152,"es":156},"installer-n8n-vps","install-n8n-on-vps-with-docker-complete-2026-guide","instalar-n8n-en-vps-con-docker","تثبيت n8n على VPS مع Docker: دليل شامل 2026","انشر n8n على VPS مع Docker والوكيل العكسي وHTTPS. يشمل عطل V8، خطأ 502، الانتقال من npm وأمان التنفيذ (تنبيه GHSA-vrv8-j27g-g7cr، أغسطس 2026).",19,4,"2026-06-05T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":24},[165],{"id":18,"name":23,"slug":24,"color":25,"icon":24},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":168,"appSlug":169},"الأتمتة-وسير-العمل","n8n",true,1794270366328]