[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-woodpecker-ci-pipeline-vps-forgejo-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":22,"intro":25,"sections":26,"ctaTitle":68,"ctaBody":69,"ctaButton":70,"ctaUrl":71,"relatedPosts":72},212,"woodpecker-ci-pipeline-vps-forgejo","Woodpecker CI وForgejo: خط أنابيب CI\u002FCD على خادم VPS","انشر Woodpecker CI مع Forgejo على خادم VPS لخط أنابيب CI\u002FCD مفتوح المصدر، مستضاف ذاتيًا وخفيف وسيادي. دليل Docker خطوة بخطوة.",7,0,false,"2026-08-02T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},2,"الأتمتة","automatisation","bg-brand-action\u002F10 text-brand-action",[21],{"id":16,"name":17,"slug":18,"color":19,"icon":18},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fwoodpecker-ci-pipeline-vps-forgejo-poster.svg","‏Woodpecker CI محرّك خطوط أنابيب مفتوح المصدر، وهو fork مجتمعي لـ ‏Drone CI بموجب رخصة Apache 2.0، مصمَّم للتكامل الأصلي مع ‏Forgejo. كل خطوة تعمل في حاوية ‏Docker معزولة، ويستهلك الخادم والعميل معًا أقل من 50 ميغابايت من ‏RAM. على خادم ‏VPS، تنفَّذ عمليات البناء بالقرب من مستودع ‏git: بلا طابور انتظار سحابي، وبلا حصص دقائق تحتاج إلى مراقبة.",[27,31,40,43,62,65],{"type":28,"title":29,"body":30},"h2","لماذا تتخلى عن CI السحابي لصالح خط أنابيب على VPS الخاص بك","تُفوتر عروض CI السحابية بالدقيقة وتفرض طوابير انتظار مشتركة يزداد وقتها مع الحجم. ما إن تكبر المستودعات أو تتضاعف الاختبارات، حتى تتجاوز الفاتورة بسرعة تكلفة خادم VPS مخصّص. باستضافة Forgejo وWoodpecker CI على نفس الخادم، تختفي زمن الاستجابة الشبكي: يقرأ الـ runner الكود محليًا دون عبور بنية تحتية طرف ثالث. كما تختار أنت توقيت كل تحديث لخط الأنابيب، ولا يغادر أي سرّ من أسرار التكامل جهازك.",{"type":32,"title":33,"items":34},"ul","ما يضيفه Woodpecker CI على خادم VPS",[35,36,37,38,39],"**عزل Docker لكل خطوة** — تعمل كل خطوة في حاويتها الخاصة دون حالة مشتركة بين الوظائف.","**بصمة ذاكرة صغيرة** — يعمل خادم Woodpecker والعميل بأقل من 50 ميغابايت من RAM مجتمعَين.","**إعداد YAML بسيط** — يكفي ملف `‎.woodpecker‎.yaml` واحد في جذر المستودع لوصف خط الأنابيب كاملًا.","**تكامل أصلي مع Forgejo** — نظام OAuth2 في Forgejo هو الآلية الوحيدة للمصادقة المطلوبة، دون أي إضافة.","**رخصة Apache 2.0** — الكود المصدري قابل للتدقيق، والمجتمع fork نشط، دون اعتماد على مورّد مغلق.",{"type":28,"title":41,"body":42},"المتطلبات المسبقة: خادم VPS مع Forgejo جاهز","يمكن تثبيت Woodpecker CI على نفس خادم VPS الذي يحتضن Forgejo أو على خادم مخصّص. للخدمتين معًا، خصّص 1 غيغابايت من RAM كحد أدنى و2 غيغابايت لاستخدام مريح مع عدة مستودعات نشطة. على الجانب البرمجي: Docker وDocker Compose، ونطاق فرعي مخصّص لـ Woodpecker (مثل `ci‎.your-domain‎.com`) يشير إلى عنوان IP الخادم، والمنفذ 443 مفتوح لـ HTTPS، ووصول SSH. يجب أن يكون Forgejo متاحًا من حاوية Woodpecker عبر الشبكة الداخلية لـ Docker أو عبر عنوانه العام.",{"type":44,"title":45,"steps":46},"steps","نشر Woodpecker CI على خادم VPS",[47,50,53,56,59],{"title":48,"body":49},"إنشاء تطبيق OAuth في Forgejo","في Forgejo، انتقل إلى الإعدادات ← التطبيقات ← إدارة تطبيقات OAuth2. أعطِ التطبيق اسمًا (مثل `woodpecker`) وأدخل عنوان إعادة التوجيه: `https:\u002F\u002Fci‎.your-domain‎.com\u002Fauthorize`. دوّن معرّف العميل وسرّه المُولَّدَين.",{"title":51,"body":52},"كتابة ملف docker-compose‎.yml لـ Woodpecker","أنشئ `\u002Fopt\u002Fwoodpecker\u002Fdocker-compose‎.yml` بخدمتين: `woodpecker-server` (صورة `woodpeckerci\u002Fwoodpecker-server`) و`woodpecker-agent` (صورة `woodpeckerci\u002Fwoodpecker-agent`). على الخادم، اضبط `WOODPECKER_GITEA_URL` و`WOODPECKER_GITEA_CLIENT` و`WOODPECKER_GITEA_SECRET` (قيم OAuth2 التي نسختها)، و`WOODPECKER_AGENT_SECRET` (سلسلة عشوائية مشتركة بين الخادم والعميل)، و`WOODPECKER_HOST=https:\u002F\u002Fci‎.your-domain‎.com`. يتلقّى العميل `WOODPECKER_SERVER=woodpecker-server:9000` ونفس `WOODPECKER_AGENT_SECRET`.",{"title":54,"body":55},"تشغيل المجموعة","في `\u002Fopt\u002Fwoodpecker`، نفّذ `docker compose up -d`. تحقّق من السجلات بـ `docker compose logs -f woodpecker-server` حتى ترى الخادم جاهزًا. تستمع الخدمة داخليًا على المنفذ 8000 (واجهة المستخدم) والمنفذ 9000 (gRPC للعميل).",{"title":57,"body":58},"تفعيل المستودع في Woodpecker","افتح `https:\u002F\u002Fci‎.your-domain‎.com` (خلف الوكيل العكسي) وسجّل دخولك بحسابك في Forgejo عبر OAuth2. في لوحة التحكم، انقر على «إضافة مستودع» وحدّد المشروع المراد تفعيله. يسجّل Woodpecker تلقائيًا webhook في Forgejo لتشغيل عمليات البناء.",{"title":60,"body":61},"إضافة ملف ‎.woodpecker‎.yaml إلى المستودع","في جذر المستودع، أنشئ `‎.woodpecker‎.yaml`. مثال بسيط: خطوة `lint` تشغّل `npm run lint` في صورة `node:20`، وخطوة `test` تشغّل `npm test`، وخطوة `deploy` مشروطة بالفرع `main` وتنفّذ `ssh deploy@your-domain‎.com .\u002Fdeploy‎.sh`. ادفع الملف: يُطلَق build فوري في Woodpecker.",{"type":63,"body":64},"tip","ضع خادم Woodpecker خلف Traefik أو Caddy مع HTTPS ولا تكشفه مباشرةً على المنفذ 8000. خزّن جميع أسرار خط الأنابيب (رموز SSH، مفاتيح API للنشر) في قسم **الأسرار** الخاص بالمستودع في لوحة Woodpecker — تُحقَن كمتغيرات بيئة أثناء البناء دون أن تظهر في ملف `‎.woodpecker‎.yaml` المُضمَّن في الإصدار.",{"type":28,"title":66,"body":67},"من forge git إلى النشر المستمر: مجموعة سيادية كاملة","يدير Forgejo الكود والمشكلات ومراجعات pull request؛ بينما يُنسّق Woodpecker CI خطوط أنابيب الاختبار والنشر. يتواصل الاثنان عبر OAuth2 والـ webhooks على شبكتك الخاصة، دون أي اعتماد على GitHub أو GitLab أو خدمة تكامل سحابية. تستجيب هذه المجموعة المُستضافة ذاتيًا لمتطلبات السيادة لدى الوكالات والفرق التقنية التي لا ترغب في مرور ملكيتها الفكرية أو أسرار تكاملها عبر منصات خارجية.","أطلق مجموعة CI\u002FCD الخاصة بك على خادم VPS من ServOrbit","يتيح لك خادم VPS Cloud من ServOrbit مع Docker مُعدّ مسبقًا وعنوان IP ثابت نشر Forgejo وWoodpecker CI في دقائق، بموارد قابلة للتعديل مع تزايد خطوط الأنابيب.","النشر على VPS ServOrbit","\u002Fvps-cloud",[73,91,104],{"id":74,"slug":75,"title":76,"excerpt":77,"readTime":11,"views":78,"isPinned":13,"publishedAt":79,"category":80,"categories":85,"featuredImage":22,"bgImage":23,"posterImage":87,"relatedSolution":88},74,"heberger-gitea","استضافة Gitea على خادم VPS الخاص بك","انشُر Gitea على خادم VPS مع Docker وreverse proxy وSSL. منصة Git خفيفة وسريعة وتحت سيطرتك بنسبة 100%.",538,"2026-04-07T00:00:00+00:00",{"id":11,"name":81,"slug":82,"color":83,"icon":84},"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[86],{"id":11,"name":81,"slug":82,"color":83,"icon":84},"\u002Fblog\u002Fcovers\u002Fheberger-gitea-poster.svg",{"categorySlug":89,"appSlug":90},"developpement","gitea",{"id":92,"slug":93,"title":94,"excerpt":95,"readTime":11,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":22,"bgImage":23,"posterImage":101,"relatedSolution":102},75,"heberger-forgejo","استضافة Forgejo على خادم VPS الخاص بك","ثبّت Forgejo، التفريعة المجتمعية لـGitea، على خادم VPS الخاص بك مع Docker وSSL. منصة Git سيادية وحرّة بنسبة 100%.",575,"2026-04-06T00:00:00+00:00",{"id":11,"name":81,"slug":82,"color":83,"icon":84},[100],{"id":11,"name":81,"slug":82,"color":83,"icon":84},"\u002Fblog\u002Fcovers\u002Fheberger-forgejo-poster.svg",{"categorySlug":82,"appSlug":103},"forgejo",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":109,"views":12,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":22,"bgImage":23,"posterImage":114,"relatedSolution":115},149,"heberger-n8n-vps","كيفية استضافة n8n على VPS","انشر n8n على VPS الخاص بك لأتمتة سير عملك بين التطبيقات، مُستضاف ذاتيًا 100%، مع Docker ووكيل عكسي وHTTPS. دليل خطوة بخطوة.",8,"2026-01-27T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Fheberger-n8n-vps-poster.svg",{"categorySlug":18,"appSlug":116},"n8n",1785671428954]