النشر والاستضافة · 11 دقيقة قراءة · نُشر 2026-08-15

كيف تنقل مشروعك من Lovable إلى هوستنجر أو أي استضافة خارجية؟

دليل عربي عملي خطوة بخطوة لنقل مشروع Lovable إلى استضافة هوستنجر أو أي استضافة خارجية: تصدير الكود عبر GitHub، متغيّرات البيئة، البناء، رفع مجلّد dist، ملف .htaccess لتوجيه الروابط، تحديث قاعدة البيانات، والنشر التلقائي.

شارك الصفحة:

الإجابة المباشرة

لنقل مشروع Lovable إلى هوستنجر: اربط المشروع بـ GitHub من داخل Lovable، استنسخ المستودع على جهازك، أنشئ ملف .env بمتغيّرات المشروع، نفّذ npm install ثم npm run build، وارفع محتويات مجلّد dist إلى مجلّد public_html في هوستنجر، ثم أضف ملف .htaccess يوجّه كل المسارات إلى index.html. أخيراً حدّث الدومين في إعدادات المصادقة وCORS لقاعدة بياناتك. المدّة المتوقّعة من 30 إلى 60 دقيقة لمشروع بسيط.

هل تحتاج النقل أصلاً؟

قبل أي خطوة تقنية، كن صريحاً مع نفسك: Lovable تنشر مشروعك وتتيح ربط دومينك المخصّص من داخل المنصّة، وهذا يكفي أغلب المشاريع. النقل خيار صحيح في ثلاث حالات فقط:

  • عندك استضافة قائمة تدفع ثمنها بالفعل وتريد جمع مواقعك في مكان واحد.
  • تحتاج تحكّماً كاملاً في الخادم أو في إعدادات الشبكة والنطاقات الفرعية.
  • تريد تقليل الاعتماد على منصّة واحدة والاحتفاظ بنسخة تشغيل مستقلّة.

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

الخطوة صفر: تحقّق من نوع مشروعك

هذه أهم نقطة يتجاهلها أغلب الأدلّة. مشاريع Lovable ليست نوعاً واحداً:

نوع المشروعكيف تعرفهالاستضافة المناسبة
تطبيق واجهة ثابت (Vite + React)npm run build يُنتج مجلّد dist فيه index.htmlاستضافة مشتركة في هوستنجر تكفي
مشروع بتصيير خادمي أو دوال خادميةيوجد كود يعمل على الخادم أو مسارات API داخل المشروعVPS أو استضافة تشغّل Node.js
مشروع يعتمد على خدمات سحابية خارجيةقاعدة بيانات ومصادقة وتخزين خارج المشروعيعمل مع الاثنتين — الخدمات تبقى في مكانها

لا ترفع مشروعاً يحتاج خادماً على استضافة مشتركة ثم تتساءل لماذا يظهر بياضاً. تحقّق من النوع أولاً، فهذا يوفّر عليك ساعات.

شراكة تسويق بالعمولة

ابدأ من استضافة تناسب مشاريع Lovable

لتطبيقات الواجهة الثابتة تكفي الاستضافة المشتركة، وللمشاريع التي تحتاج Node اختر خطة VPS. جميع الخطط تشمل لوحة hPanel وشهادة SSL مجانية ومدير ملفات عربي الواجهة.

تصفّح خطط هوستنجر

إفصاح: الرابط أعلاه رابط إحالة، قد نحصل على عمولة عند الشراء دون أي تكلفة إضافية عليك. لا يؤثّر ذلك على محتوى الدليل، ونحن منصّة مستقلّة غير تابعة لـ Lovable أو هوستنجر.

خطوات النقل بالتفصيل

  1. 1. اربط المشروع بـ GitHub وصدّر الكود

    من داخل مشروع Lovable افتح زرّ GitHub أعلى الصفحة ثم Connect to GitHub وأنشئ مستودعاً. بعدها استنسخ المستودع على جهازك ونفّذ npm install.

  2. 2. تحقّق من نوع المشروع قبل أي شيء

    افتح package.json و vite.config: إن كان المشروع Vite + React عادياً فمخرجاته ملفات ثابتة تصلح لأي استضافة مشتركة. أمّا إن كان يعتمد على تصيير من الخادم أو دوال خادمية فيحتاج استضافة تشغّل Node لا استضافة مشتركة.

  3. 3. أنشئ ملف .env قبل البناء

    متغيّرات Vite تُحقن وقت البناء لا وقت التشغيل. ضع مفاتيح قاعدة البيانات العامّة (URL والمفتاح العام) في ملف .env في جذر المشروع، ولا ترفع أي مفتاح سرّي إلى كود الواجهة.

  4. 4. ابنِ المشروع واختبره محلياً

    نفّذ npm run build ثم npm run preview وتصفّح الروابط الداخلية كلّها. الناتج في مجلّد dist، وهذا هو ما سيُرفع للاستضافة.

  5. 5. ارفع محتويات dist إلى public_html

    من hPanel افتح File Manager ثم public_html، احذف الملف الافتراضي، وارفع محتويات مجلّد dist لا المجلّد نفسه. أو استخدم FTP/SSH لرفع أسرع.

  6. 6. أضف ملف .htaccess لتوجيه الروابط

    بدون .htaccess ستعمل الصفحة الرئيسية فقط وتعطي بقية الروابط 404. ضع الملف داخل public_html وأيضاً داخل مجلّد public بالمشروع ليُنسخ مع كل بناء.

  7. 7. فعّل شهادة SSL وأجبر HTTPS

    من hPanel فعّل شهادة SSL المجانية للدومين، ثم أجبر التحويل إلى HTTPS عبر قاعدة إعادة توجيه في .htaccess.

  8. 8. حدّث إعدادات قاعدة البيانات والمصادقة

    في لوحة قاعدة البيانات حدّث Site URL و Redirect URLs إلى دومينك الجديد، وأضف الدومين في إعدادات CORS إن كنت تستخدم التخزين أو دوالّ خادمية.

  9. 9. اختبر كل شيء بعد الرفع

    افتح الدومين، وجرّب رابطاً داخلياً مباشرة من شريط العنوان، وسجّل الدخول، وارفع صورة، وتأكّد من ظهور المحتوى على الجوّال.

  10. 10. أتمتة النشر (اختياري لكن موصى به)

    أضف GitHub Actions تبني المشروع وترفعه عبر FTP عند كل دفعة إلى الفرع الرئيسي، حتى لا تكرّر الرفع اليدوي مع كل تعديل.

الأوامر الأساسية

تصدير الكود والبناء
git clone https://github.com/USERNAME/REPO_NAME.git
cd REPO_NAME
npm install
npm run build
npm run preview
ملف .env قبل البناء
VITE_SUPABASE_URL=https://xxxxxxxx.supabase.co
VITE_SUPABASE_ANON_KEY=المفتاح_العام

استخدم المفتاح العام (anon / publishable) فقط. أي مفتاح خدمة سرّي يجب ألّا يوضع في كود الواجهة إطلاقاً لأنّه يصبح مقروءاً لكل زائر، وحمايتك الحقيقية هي سياسات الصفوف (RLS) على قاعدة البيانات.

رفع سريع عبر SSH (اختياري)
cd dist
zip -r ../site.zip .
scp -P 65002 ../site.zip USER@HOST:~/public_html/
ssh -p 65002 USER@HOST
cd ~/public_html && unzip -o site.zip && rm site.zip

ملف .htaccess — الخطوة التي يسقط عندها الجميع

ضع هذا الملف داخل public_html، وضع نسخة منه في مجلّد public بالمشروع حتى يُنسخ تلقائياً مع كل بناء:

.htaccess
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  # إجبار HTTPS
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  # توجيه تطبيق الصفحة الواحدة
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/css text/plain application/javascript application/json image/svg+xml
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType text/css "access plus 1 year"
  ExpiresByType application/javascript "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType font/woff2 "access plus 1 year"
  ExpiresByType text/html "access plus 0 seconds"
</IfModule>

<IfModule mod_headers.c>
  Header set X-Content-Type-Options "nosniff"
  Header set X-Frame-Options "SAMEORIGIN"
  Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

تحديث قاعدة البيانات والمصادقة

  • Site URL: غيّرها إلى دومينك الجديد بصيغة https كاملة.
  • Redirect URLs: أضف الدومين مع نمط شامل لمساراته حتى تعمل روابط تأكيد البريد واستعادة كلمة المرور.
  • CORS: أضف الدومين في إعدادات الواجهة البرمجية إن كنت تستخدم التخزين أو دوالّ خادمية.
  • مزوّدو الدخول الاجتماعي: حدّث Redirect URI في لوحة كل مزوّد (Google مثلاً) وإلا فشل تسجيل الدخول.

نشر تلقائي مع كل تحديث

بدل الرفع اليدوي، أضف هذا الملف في .github/workflows/deploy.yml، وضع بيانات FTP ومتغيّرات البيئة في أسرار المستودع:

.github/workflows/deploy.yml
name: Deploy to Hostinger

on:
  push:
    branches: [ main ]
  workflow_dispatch:

jobs:
  build-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - name: Build
        env:
          VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
          VITE_SUPABASE_ANON_KEY: ${{ secrets.VITE_SUPABASE_ANON_KEY }}
        run: npm run build
      - name: Copy .htaccess
        run: cp public/.htaccess dist/.htaccess || true
      - name: Deploy via FTP
        uses: SamKirkland/FTP-Deploy-Action@v4.3.5
        with:
          server: ${{ secrets.FTP_HOST }}
          username: ${{ secrets.FTP_USER }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: /public_html/
          local-dir: ./dist/

بيانات FTP تجدها في hPanel ضمن قسم الملفات ← حسابات FTP. لا تكتبها في الكود أبداً، ضعها في أسرار المستودع فقط.

ما الذي يكسر الموقع بعد النقل؟

العرضالسببالحل
صفحة بيضاء و404 لملفات الأصولالموقع مرفوع داخل مجلّد فرعي لا في جذر الدومينأضف base: '/folder/' في vite.config ثم أعد البناء
الروابط الداخلية تعطي 404لا يوجد ملف .htaccess لتوجيه SPAأضف قاعدة إعادة التوجيه إلى index.html
تسجيل الدخول يعيدك للدومين القديمSite URL و Redirect URLs لم تُحدَّثحدّثها في إعدادات المصادقة إلى الدومين الجديد
المفاتيح undefinedبُني المشروع قبل إنشاء ملف .envأنشئ .env ثم أعد البناء وارفع الناتج
الدوال الخادمية لا تعملالاستضافة المشتركة لا تشغّل كوداً خادمياًأبقِ الدوال عند مزوّدها السحابي وحدّث CORS فقط
خلط المحتوى (Mixed content)روابط داخلية بـ http بعد تفعيل SSLاستخدم https في كل الروابط وأجبر التحويل من .htaccess

قائمة تحقّق نهائية

  • الصفحة الرئيسية تفتح على https بدون تحذير شهادة.
  • فتح رابط داخلي مباشرة من شريط العنوان يعطي الصفحة لا 404.
  • تسجيل الدخول والتسجيل يعملان ويعيدانك إلى الدومين الجديد.
  • الصور والخطوط تظهر، ولا توجد أخطاء في وحدة تحكّم المتصفّح.
  • الموقع سليم على الجوّال بعرض 375 بكسل.
  • أعدت إرسال خريطة الموقع في Search Console، وضبطت التحويلات 301 من الدومين القديم إن وُجد.

بعد النقل: كيف تستمر في التطوير؟

تعديلاتك داخل Lovable لن تصل إلى الموقع المرفوع تلقائياً. المسار الصحيح: عدّل في Lovable ← يُدفع التغيير إلى GitHub ← يبني GitHub Actions ويرفع إلى الاستضافة. هذه الحلقة هي الفرق بين موقع حيّ وموقع يتجمّد عند نسخة الرفع الأولى. وإن أردت العودة إلى النشر داخل Lovable لاحقاً فالأمر ممكن دائماً، فالمشروع لم يفارق المنصّة.

أسئلة متكرّرة عن نقل مشاريع Lovable

+هل أستطيع نقل مشروع Lovable إلى هوستنجر؟

نعم. مشروع Lovable هو مشروع ويب حقيقي وليس محتوى محبوساً داخل المنصّة. تربط المشروع بـ GitHub، تستنسخ الكود، تبنيه محلياً، ثم ترفع مخرجات مجلّد dist إلى مجلّد public_html في هوستنجر. الشرط الوحيد أن يكون مشروعك من النوع الذي يُنتج ملفات ثابتة، وإلا فستحتاج استضافة تشغّل Node مثل VPS.

+هل الاستضافة المشتركة تكفي؟

تكفي إذا كان المشروع تطبيق واجهة (Vite + React) يُنتج ملفات HTML وCSS وJS ثابتة، وكانت قاعدة البيانات والمصادقة تعمل من خدمة سحابية خارجية. لا تكفي إذا كان مشروعك يعتمد على تصيير من الخادم (SSR) أو دوال خادمية داخل نفس التطبيق؛ في هذه الحالة تحتاج خطة VPS أو استضافة تدعم Node.js.

+لماذا تظهر صفحة 404 عند فتح رابط داخلي بعد النقل؟

لأن تطبيقات الصفحة الواحدة تُدير التوجيه في المتصفّح، بينما الخادم يبحث عن ملف حقيقي بهذا المسار فلا يجده. الحل إضافة ملف .htaccess داخل public_html يعيد توجيه أي طلب غير موجود إلى index.html.

+هل تنتقل قاعدة البيانات مع الموقع؟

لا. قاعدة البيانات والمصادقة والتخزين تبقى في مزوّدها السحابي، والموقع المرفوع على هوستنجر يتّصل بها عبر الإنترنت. كل ما عليك هو تحديث الدومين المسموح به في إعدادات المصادقة وCORS.

+لماذا تظهر المفاتيح undefined بعد الرفع؟

لأن متغيّرات البيئة في Vite تُقرأ وقت البناء لا وقت التشغيل. إن بنيت المشروع قبل إنشاء ملف .env فلن تكون القيم موجودة داخل الملفات المبنية. أنشئ الملف ثم أعد npm run build وارفع الناتج الجديد.

+هل تعديلاتي في Lovable ستظهر تلقائياً على الموقع بعد النقل؟

لا تلقائياً. بعد النقل يصبح المسار: تعدّل في Lovable، فيُدفع التغيير إلى GitHub، ثم تبني وترفع يدوياً أو عبر GitHub Actions. من دون هذه الحلقة سيبقى الموقع المرفوع على نسخته القديمة.

+هل يمكنني الإبقاء على النشر داخل Lovable بدل النقل؟

نعم، وهذا الخيار الأبسط لمعظم الناس: Lovable تنشر مشروعك وتتيح ربط دومينك المخصّص مباشرة. النقل إلى استضافة خارجية يناسب من يريد التحكّم الكامل في الخادم، أو دمج الموقع مع بنية استضافة قائمة لديه، أو تقليل الاعتماد على منصّة واحدة.

+ماذا عن الصور والملفات المرفوعة؟

الصور الموجودة داخل مجلّد المشروع تنتقل مع الكود. أمّا الملفات التي رفعها المستخدمون إلى خدمة تخزين سحابية فتبقى في مكانها وتُقرأ عبر الرابط، بشرط تحديث إعدادات CORS بالدومين الجديد.

+كم يستغرق النقل؟

لمشروع بسيط: من 30 إلى 60 دقيقة تشمل التصدير والبناء والرفع وضبط .htaccess والدومين. لمشروع فيه مصادقة ودفع وتخزين، احسب نصف يوم عمل مع الاختبار.

خدماتنا

نتولّى عنك النقل أو نبني مشروعك من الصفر

النقل يبدو بسيطاً حتى تصطدم بـ 404 والمصادقة والدومين. إن أردت تسليماً نظيفاً من أوّل مرّة، نتكفّل نحن بالتنفيذ والاختبار.

بناء منتج كامل

تصميم عربي RTL، قاعدة بيانات، مصادقة، دفع، ونشر على دومينك.

  • جلسة تخطيط للفكرة
  • بناء كامل قابل للنشر
  • دعم 30 يوماً بعد التسليم

مراجعة أو نقل مشروع قائم

تدقيق الجودة والأمان والأداء والسيو، أو نقل كامل إلى استضافتك مع أتمتة النشر.

  • تدقيق UI/UX وأمان
  • نقل وضبط .htaccess والدومين
  • أتمتة نشر عبر GitHub Actions
شراكة تسويق بالعمولة

جهّز استضافتك قبل أن تبدأ النقل

احجز خطّتك من هوستنجر، ثم ارجع إلى الخطوة الخامسة في هذا الدليل وارفع مجلّد dist مباشرة.

تصفّح خطط هوستنجر

إفصاح: الرابط أعلاه رابط إحالة، قد نحصل على عمولة عند الشراء دون أي تكلفة إضافية عليك. لا يؤثّر ذلك على محتوى الدليل، ونحن منصّة مستقلّة غير تابعة لـ Lovable أو هوستنجر.

هل كان هذا المحتوى مفيداً؟

النشرة الأسبوعية

استلم أحدث الأدلّة والبرومبتات كل أسبوع

خلاصة عربية أسبوعية عن Lovable وVibe Coding — بلا سبام، إلغاء متى شئت.