مرحبًا! اسمي ديما، أنا قائد فني لفريق SysOps في Wrike. سأخبرك في هذه المقالة بكيفية إنشاء موقع ويب قريب من المستخدم قدر الإمكان في 10 دقائق و5 دولارات شهريًا وأتمتة نشره. لا علاقة للمقال تقريبًا بالمشكلات التي نحلها داخل فريقنا. هذه بالأحرى تجربتي الشخصية وانطباعاتي في التعرف على تكنولوجيا جديدة بالنسبة لي. حاولت وصف الخطوات بأكبر قدر ممكن من التفاصيل حتى تكون التعليمات مفيدة للأشخاص ذوي الخبرة المختلفة. ط نتمنى أن تستمتعوا. يذهب!

لذا، ربما تكون قد وجدت بالفعل طريقة بسيطة ورخيصة لاستضافة موقع ويب. ربما حتى مجانا، كما هو موضح في هذا.
ولكن فجأة مازلت تشعر بالملل وتريد أن تلمس عالم التكنولوجيا الجديد والشجاع؟ لنفترض أنك تفكر في أتمتة النشر وترغب في تسريع موقعك قدر الإمكان؟ في هذه المقالة سوف نستخدم، ولكن هذا اختياري.
نحن نستخدم Gitlab CI/CD للتشغيل الآلي، ولكن ماذا عن التسريع؟ دعونا ننشر الموقع مباشرة على Cloudflare باستخدام.
ما هو المطلوب للبدء:
Gitlab (الخاص بك أو )
على كلاودفلير
المثبتة
الجزء 1: تثبيت هوغو
إذا كان لديك Hugo مثبتًا بالفعل، أو إذا كنت تفضل مولد موقع ثابت مختلفًا (أو لا تستخدم واحدًا على الإطلاق)، فيمكنك تخطي هذا الجزء.
تحميل هوغو من
نضع ملف Hugo القابل للتنفيذ وفقًا لأحد الملفات المحددة في طرق
إنشاء موقع جديد:
hugo new site blog.example.comقم بتغيير الدليل الحالي إلى الدليل الذي تم إنشاؤه حديثًا:
cd blog.example.comحدد موضوع التصميم ( أو أيا كان)
لنقم بإنشاء المشاركة الأولى:
hugo new posts/my-amazing-post.mdإضافة محتوى إلى الملف الذي تم إنشاؤه: content/posts/my-amazing-post.md.
عند الانتهاء من كل شيء، قم بتغيير قيمة المسودة إلى زائفتوليد ملفات ثابتة:
hugo -D
الآن يقع موقعنا الثابت داخل الدليل ./عام وجاهز للنشر اليدوي الأول.
الجزء 2: إعداد Cloudflare
الآن دعونا نلقي نظرة على الإعداد الأولي لـ Cloudflare. لنفترض أن لدينا بالفعل نطاقًا للموقع. لنأخذ كمثال blog.example.com.
الخطوة 1: إنشاء إدخال DNS
أولا، حدد المجال الخاص بنا، ثم عنصر القائمة DNS. نقوم بإنشاء مدونة A-record ونشير إلى بعض عناوين IP الوهمية لها (هذا هو الملف الرسمي، لكن كان بإمكانهم جعلها أجمل قليلاً).

الخطوة 2: رمز Cloudflare
ملفي الشخصي -> رموز API علامة التبويب-> قم بإنشاء رمز -> إنشاء رمز مخصص

هنا سوف تحتاج إلى قصر الرمز المميز على الحسابات والمناطق، ولكن اترك خيار التحرير للأذونات المدرجة في الصورة.
احفظ الرمز للمستقبل، سنحتاجه في الجزء الثالث.
الخطوة 3: الحصول على accountid وzoneid
نطاق → نظرة عامة → [الشريط الجانبي الأيمن]
هذه ملكي، لا تستخدمها من فضلك :)
احفظهم بجوار الرمز، سنحتاجهم أيضًا في الجزء الثالث.
الخطوة 4: تفعيل العمال
نطاق → العمال → إدارة العمال
نختار اسمًا فريدًا وتعريفة العمال → غير محدود (5 دولارات شهريًا اليوم). إذا كنت ترغب في ذلك، يمكنك الترقية لاحقًا إلى الإصدار المجاني.
الجزء 3: النشر الأول (النشر اليدوي)
لقد قمت بأول عملية نشر يدوية لمعرفة ما يحدث بالفعل هناك. على الرغم من أن كل هذا يمكن القيام به بشكل أسهل:
تثبيت رانجلر:
npm i @cloudflare/wrangler -gدعنا نذهب إلى دليل مدونتنا:
cd blog.example.comإطلاق رانجلر:
wrangler init — site hugo-workerقم بإنشاء تكوين لـ wrangler (أدخل الرمز المميز عند سؤالك):
wrangler config
الآن دعونا نحاول إجراء تغييرات على الملف الذي تم إنشاؤه حديثًا رانجلر ( القائمة الكاملة للإعدادات الممكنة):
حدد accountid وzoneid
نحن نتغير الطريق إلى شيء مثل *blog.example.com/*
حدد زائف إلى com.workersdev
قم بتغيير الدلو إلى ./public (أو حيث يقع موقعك الثابت)
إذا كان لديك أكثر من مجال واحد في المسار، فيجب عليك تصحيح المسار في البرنامج النصي العامل: موقع العمال/index.js (انظر الوظيفة HandleEvent)
رائع، لقد حان الوقت لنشر الموقع باستخدام الفريق wrangler publish.
الجزء 4: أتمتة النشر
تمت كتابة هذا الدليل خصيصًا لـ Gitlab، لكنه يجسد جوهر النشر الآلي وسهولة النشر بشكل عام.
الخطوة 1: إنشاء وتكوين مشروعنا
قم بإنشاء مشروع GitLab جديد وقم بتحميل الموقع: الدليل blog.example.com مع كافة المحتويات يجب أن تكون موجودة في الدليل الجذر للمشروع
وضعنا عامل كفابيتوكين هنا: الإعدادات → CI / CD → المتغيرات
الخطوة 2: قم بإنشاء ملف .gitlab-ci.yml وقم بتشغيل النشر الأول
قم بإنشاء ملف .gitlab-ci.yml في الجذر بالمحتوى التالي:
stages:
- build
- deploy
build:
image: monachus/hugo
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
deploy:
image: timbru31/ruby-node:2.3
stage: deploy
script:
- wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- cd blog.example.com/
- ../dist/wrangler publish
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #نطلق عملية النشر الأولى يدويًا (CI / قرص مضغوط → خطوط الأنابيب → تشغيل خط الأنابيب) أو عن طريق الالتزام بالفرع الرئيسي. هاهو!
اختتام
حسنًا، ربما قللتُ من أهمية الأمر قليلًا، واستغرقت العملية برمتها ما يزيد قليلاً عن عشر دقائق. ولكن لديك الآن موقع سريع يتميز بالنشر التلقائي وبعض الأفكار الجديدة حول ما يمكنك فعله باستخدام العمال.
المصدر: www.habr.com
