[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-golang-vps-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":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":72,"ctaBody":73,"ctaButton":74,"ctaUrl":75,"relatedPosts":76},51,"deployer-golang-vps","نشر تطبيق Go (Gin) على خادم VPS","انشر واجهة Go (Gin) على خادم VPS Cloud: ملفّ ثنائي ساكن، وDocker scratch، ووكيل عكسي، وSSL. درس تعليمي لمطوّري Go.",7,287,false,"2026-04-30T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-golang-vps-poster.svg",{"categorySlug":18,"appSlug":27},"golang","تُصرّف لغة Go إلى ملفّ ثنائي ساكن واحد دون تبعيات: إنّها اللغة المثالية للاستضافة الذاتية. تتّسع واجهة Gin في بضعة ميجابايت من الذاكرة وتبدأ فورًا. إليك كيفية نقلها إلى بيئة الإنتاج على خادم VPS، من الملفّ الثنائي إلى شهادة SSL.",[30,34,44,47,69],{"type":31,"title":32,"body":33},"h2","لماذا الاستضافة الذاتية لواجهة Go على خادم VPS","على خلاف Java أو Node، يُصرَّف تطبيق Go (مع إطار العمل Gin) إلى ملفّ ثنائي ساكن واحد لا يحتاج إلى مفسّر ولا إلى بيئة تشغيل ولا إلى مكتبة مشتركة. يمكنك حرفيًا وضع الملفّ الثنائي على خادم VPS وتشغيله. تغيّر هذه الخفّة كلّ شيء بالنسبة للاستضافة الذاتية: تعمل واجهة Gin في 15 إلى 30 ميجابايت من الذاكرة، وتتحمّل آلاف الطلبات في الثانية على نواة واحدة، وتبدأ في بضع مللي ثوانٍ. على خادم VPS، تستغلّ هذه الكفاءة إلى أقصى حدّ: يكفي خادم من الفئة الأساسية لخدمة حمل تتطلّبه اللغات المفسَّرة على آلة أكبر بكثير. كما تتجنّب تعقيد صور Docker الضخمة: تكفي صورة `scratch` بحجم 10 ميجابايت.",{"type":35,"title":36,"items":37},"ul","الفوائد الملموسة",[38,39,40,41,42,43],"ملفّ ثنائي ساكن واحد: لا بيئة تشغيل لتثبيتها، والنشر بمجرّد نسخ ملفّ","بصمة ذاكرية ضئيلة (15-30 ميجابايت) تتيح إغراق خادم VPS صغير بالطلبات","صورة Docker باسم `scratch` أو `distroless` بحجم 10-15 ميجابايت: عمليات بناء وسحب شبه فورية","بدء التشغيل في مللي ثوانٍ: عمليات إعادة نشر وإعادة تشغيل دون انقطاع ملحوظ","تزامن أصلي عبر goroutines: معالج افتراضي واحد يدير آلاف الاتصالات المتزامنة","سطح هجوم مُقلّص: لا مفسّر ولا حزم نظام لترقيعها",{"type":31,"title":45,"body":46},"المتطلّبات العتادية والبرمجية","هنا تتألّق Go: تتّسع واجهة Gin دون قاعدة بيانات على خادم VPS بمعالج افتراضي واحد (1 vCPU) و1 جيجابايت من الذاكرة، وتبقى مرتاحة. ومع PostgreSQL في الموقع نفسه، استهدف 2 جيجابايت للراحة. لست بحاجة حتى إلى Go على الخادم إذا صرّفت في CI أو بالتصريف المتقاطع محليًا (`GOOS=linux GOARCH=amd64 go build`). ثبّت Docker إذا حوسبت في حاوية، أو لا شيء على الإطلاق إذا شغّلت الملفّ الثنائي مباشرةً تحت systemd. وجّه نطاق `api.mydomain.com` نحو عنوان IP الخاص بخادم VPS عبر سجلّ A. تكفي 5 جيجابايت من القرص بسهولة.",{"type":48,"title":49,"steps":50},"steps","النشر خطوة بخطوة",[51,54,57,60,63,66],{"title":52,"body":53},"التصريف المتقاطع للملفّ الثنائي من أجل Linux","من جهازك، شغّل `CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app .`. تضمن الراية `CGO_ENABLED=0` ملفًّا ثنائيًا ساكنًا بنسبة 100%، وهو أمر لا غنى عنه لصورة `scratch`. تحصل على ملفّ تنفيذي باسم `app` جاهز للعمل على أيّ نظام Linux.",{"title":55,"body":56},"بناء صورة Docker مصغّرة","اكتب ملفّ Dockerfile متعدّد المراحل: مرحلة `golang:1.22-alpine` للتصريف، ثمّ `FROM scratch` التي تنسخ الملفّ الثنائي وشهادات CA فقط (`COPY --from=builder \u002Fetc\u002Fssl\u002Fcerts ...`). يبلغ وزن الصورة النهائية نحو عشرة ميجابايت. اكشف المنفذ 8080.",{"title":58,"body":59},"إعداد Gin لبيئة الإنتاج","حوّل Gin إلى وضع الإصدار (release) باستخدام `gin.SetMode(gin.ReleaseMode)` أو المتغيّر `GIN_MODE=release` لتعطيل سجلّات التنقيح المطوّلة. اقرأ المنفذ والأسرار من البيئة (`os.Getenv`)، ولا تُضمّنها أبدًا في الشيفرة مباشرةً.",{"title":61,"body":62},"تشغيل الحاوية","ابدأ بـ `docker run -d --restart unless-stopped -p 127.0.0.1:8080:8080 -e GIN_MODE=release monapp:latest`. بالربط على `127.0.0.1`، تكشف Gin للوكيل العكسي المحلّي فقط، وليس للإنترنت مباشرةً.",{"title":64,"body":65},"وضع Nginx أو Caddy في المقدّمة","اضبط وكيلًا عكسيًا نحو `http:\u002F\u002F127.0.0.1:8080`. يُعدّ Caddy مناسبًا بشكل خاص هنا: بتوجيه بسيط `reverse_proxy localhost:8080`، يوفّر شهادة HTTPS تلقائيًا دون Certbot.",{"title":67,"body":68},"التأمين باستخدام TLS","مع Caddy، يكون HTTPS تلقائيًا بمجرّد توجيه النطاق نحو خادم VPS. ومع Nginx، شغّل `certbot --nginx -d api.mydomain.com`. ثمّ تحقّق من سلسلة TLS باستخدام `curl -I https:\u002F\u002Fapi.mydomain.com`.",{"type":70,"body":71},"tip","فعّل تنميط (profiling) `pprof` الخاص بـ Go خلف نقطة نهاية محمية: `import _ \"net\u002Fhttp\u002Fpprof\"` مكشوفة على منفذ داخلي لا يمكن الوصول إليه إلّا عبر نفق SSH. تحصل على مخطّطات لهب (flame graphs) للمعالج والذاكرة في بيئة الإنتاج الحقيقية دون حمل زائد يُذكر. فكّر أيضًا في التصريف باستخدام `-ldflags=\"-s -w\"` لتقليص حجم الملفّ الثنائي بنسبة 30% عبر إزالة جداول التنقيح.","شغّل واجهة Go الخاصة بك على خادم VPS فعّال","يوفّر خادم VPS Cloud من ServOrbit أنوية مخصّصة وشبكة عالية الأداء: بالضبط ما يلزم للاستفادة من خفّة ملفّ Go الثنائي وخدمة حركة مرور كثيفة على موارد متواضعة.","اكتشف خادم VPS Cloud","\u002Fvps-cloud",[77,90,104],{"id":78,"slug":79,"title":80,"excerpt":81,"readTime":11,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":23,"bgImage":24,"posterImage":87,"relatedSolution":88},5,"deployer-laravel-vps","نشر Laravel على خادم VPS: دليل الإنتاج","انقل Laravel إلى بيئة الإنتاج على خادم VPS: PHP وworkers والذاكرة المؤقتة وقاعدة البيانات وreverse proxy وHTTPS مُهيّأة بشكل نظيف.",2840,"2026-02-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[86],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":20,"appSlug":89},"laravel-stack",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":95,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":23,"bgImage":24,"posterImage":101,"relatedSolution":102},43,"deployer-nodejs-vps","نشر تطبيق Node.js على VPS","انشر تطبيق Node.js في بيئة الإنتاج على VPS: PM2 وبروكسي عكسي Nginx وشهادة SSL من Let's Encrypt وبدء تشغيل تلقائي عند الإقلاع.",8,591,"2026-05-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[100],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":103},"nodejs",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":95,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":23,"bgImage":24,"posterImage":114,"relatedSolution":115},44,"deployer-django-vps","نشر تطبيق Django على VPS","انشر Django على VPS: Gunicorn وNginx وPostgreSQL وDocker وSSL. دليل كامل لمطوّري Python الراغبين في الاستضافة الذاتية.",628,"2026-05-07T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":18,"appSlug":116},"django",1785097281586]