انتقل إلى المحتوى

النشر والنطاقات الفرعية

تنشر تطبيقك حيث يناسبك، ثم تطلب له نطاقًا فرعيًا من hasanat.dev إن أردت. يربط مسؤول الخدمات النطاق بالطريقة التي تناسب استضافتك.

يستخدم القالب Astro 5 مع Cloudflare Pages: في wrangler.toml السطر pages_build_output_dir = "./dist". تحتاج حسابًا على Cloudflare، ثم:

نافذة طرفيّة
npx wrangler login
npm run build
npx wrangler pages deploy dist/
  • اضبط في wrangler.toml اسم المشروع، وPUBLIC_SITE_URL وPUBLIC_APP_NAME تحت [vars].
  • لا يحتاج تسجيل الدخول المشترك أي سرّ. إن احتاج تطبيقك سرًّا خاصًا به، فاضبطه بالأمر npx wrangler pages secret put NAME، لا في المستودع.
  • ملف public/_headers في القالب يضيف ترويسات أمان أساسية لكل الصفحات.
  • انشر بعد نجاح npm run check وnpm run build فقط.

يمكنك أن تنشر عند كل دمج في الفرع الرئيسي بـ GitHub Actions:

.github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- run: npm run build
- uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
command: pages deploy dist/ --project-name=your-app-name

احفظ CLOUDFLARE_API_TOKEN سرًّا في إعدادات المستودع على GitHub، لا في الكود.

اطلب «نطاق فرعي» من لوحة المنصة بعد أن يعمل تطبيقك. اكتب في الطلب:

  • الاسم المطلوب: حروف إنجليزية صغيرة وأرقام وشرطات، في مستوى واحد، مثل your-app.hasanat.dev. لا يقبل تسجيل الدخول المشترك نطاقًا من مستويين مثل app.your-app.hasanat.dev.
  • أين يعمل التطبيق: مشروع Cloudflare Pages أو Worker، وفي أي حساب، أو استضافة أخرى.
  • رابطه الحالي: مثل your-app.pages.dev.
  • أنت: لا شيء.
  • مسؤول الخدمات: يضيف الاسم للـ Worker نطاقًا مخصّصًا (Custom Domain)، فينشئ Cloudflare سجل DNS والشهادة.

مشروع Pages في حساب حسنات

رابط قسم «مشروع Pages في حساب حسنات»
  • أنت: لا شيء.
  • مسؤول الخدمات: يضيف النطاق في إعدادات المشروع، فينشئ Cloudflare سجل DNS.
  • أنت: أضف النطاق أولًا: Workers & Pages ← مشروعك ← Custom domains ← Set up a domain.
  • مسؤول الخدمات: يضيف سجل CNAME يشير إلى your-app.pages.dev.

استضافة أخرى، مثل Vercel أو Netlify

رابط قسم «استضافة أخرى، مثل Vercel أو Netlify»
  • أنت: أضف النطاق في إعدادات الاستضافة، وانقل إلى الطلب السجلات التي تطلبها.
  • مسؤول الخدمات: يضيف سجلات DNS كما طلبتها الاستضافة.

Worker في حسابك على Cloudflare

رابط قسم «Worker في حسابك على Cloudflare»

لا يمكن ربطه مباشرة، لأن Cloudflare يشترط أن يكون الـ Worker في الحساب الذي يملك نطاق hasanat.dev. اتفقا في الطلب على النشر على Pages، أو في حساب حسنات.

بعد الربط افتح https://name.hasanat.dev وتأكّد أن الصفحة تعمل بشهادة صحيحة. إن كان تطبيقك يستخدم تسجيل الدخول المشترك، فجرّبه الآن: لا يعمل على localhost ولا على *.pages.dev أو *.workers.dev.

لست مضطرًا لاستخدام Cloudflare. انشر تطبيقك على أي منصة، واطلب نطاقًا فرعيًا يشير إليه. يعمل تسجيل الدخول المشترك حين يُعرض التطبيق على النطاق الفرعي من hasanat.dev، إن كان خادم تطبيقك يسأل خدمة الدخول عن الجلسة كما في تسجيل الدخول.