السبت - الخميس: 10:00 ص - 10:00 م

كيفية نشر تطبيق ويب على الإنترنت

تعلم الطرق المختلفة لنشر تطبيق الويب الخاص بك على الإنترنت بسهولة.

كيفية نشر تطبيق ويب على الإنترنت

كيفية نشر تطبيق ويب على الإنترنت

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

ما هو نشر التطبيق؟

نشر التطبيق (Deployment) هو عملية نقل تطبيقك من بيئة التطوير المحلية إلى خادم حي على الإنترنت، مما يجعله متاحاً للمستخدمين في جميع أنحاء العالم.

خيارات الاستضافة:

🏠 الاستضافة المشتركة (Shared Hosting)

الأرخص والأسهل للمبتدئين

  • ✅ سعر منخفض
  • ✅ سهولة الإعداد
  • ✅ دعم فني
  • ❌ موارد محدودة
  • ❌ أداء متغير

مناسب لـ: المواقع الشخصية، المدونات، المواقع الصغيرة

🖥️ VPS (Virtual Private Server)

خادم افتراضي خاص بك

  • ✅ تحكم كامل
  • ✅ موارد مضمونة
  • ✅ قابلية التوسع
  • ❌ يحتاج خبرة تقنية
  • ❌ سعر أعلى

مناسب لـ: التطبيقات المتوسطة، مواقع الشركات

☁️ الاستضافة السحابية (Cloud Hosting)

المرونة والأداء العالي

  • ✅ مرونة عالية
  • ✅ دفع حسب الاستخدام
  • ✅ موثوقية عالية
  • ❌ معقدة للمبتدئين
  • ❌ قد تكون مكلفة

مناسب لـ: التطبيقات الكبيرة، الشركات الناشئة

أشهر منصات النشر:

🚀 Netlify

مثالية للمواقع الثابتة و JAMstack

  • نشر مجاني
  • CDN عالمي
  • SSL مجاني
  • تكامل مع Git
  • Forms و Functions
# نشر بسيط
npm run build
# ارفع مجلد dist إلى Netlify

⚡ Vercel

مثالية لتطبيقات React و Next.js

  • نشر مجاني
  • أداء ممتاز
  • تكامل مع Git
  • Serverless Functions
  • Edge Functions
# نشر مع Vercel CLI
npm i -g vercel
vercel --prod

🐙 GitHub Pages

مجانية ومثالية للمشاريع المفتوحة

  • مجانية تماماً
  • تكامل مع GitHub
  • SSL مجاني
  • نشر تلقائي
  • محدودة للمشاريع العامة
# إعداد GitHub Pages
# Settings → Pages → Source: Deploy from branch

☁️ Heroku

مثالية لتطبيقات Node.js و Python

  • سهولة النشر
  • دعم لغات متعددة
  • Add-ons متعددة
  • سعر معقول
  • محدودة للمشاريع المجانية
# نشر مع Heroku CLI
heroku create my-app
git push heroku main

خطوات النشر الأساسية:

1️⃣ إعداد المشروع للنشر

# إنشاء ملف .env للبيئة الإنتاجية
NODE_ENV=production
DATABASE_URL=your_production_db_url
API_KEY=your_production_api_key

# تحديث package.json
{
  "scripts": {
    "build": "webpack --mode production",
    "start": "node server.js"
  }
}

2️⃣ بناء المشروع

# بناء المشروع للإنتاج
npm run build

# أو مع Webpack
webpack --mode production

# أو مع Vite
npm run build

# أو مع Create React App
npm run build

3️⃣ اختيار طريقة النشر

  • FTP/SFTP: رفع الملفات يدوياً
  • Git: ربط المستودع بالخادم
  • CI/CD: نشر تلقائي مع GitHub Actions
  • Docker: حاويات للتطبيقات المعقدة

النشر باستخدام Git:

إعداد Git للخادم:

# على الخادم
mkdir /var/www/my-app
cd /var/www/my-app
git init
git remote add origin https://github.com/username/my-app.git

# سحب التحديثات
git pull origin main

# تثبيت التبعيات
npm install

# بناء المشروع
npm run build

# تشغيل التطبيق
npm start

إعداد Webhook للنشر التلقائي:

// webhook.js
const express = require('express');
const { exec } = require('child_process');

app.post('/webhook', (req, res) => {
  exec('git pull origin main && npm install && npm run build', (error, stdout, stderr) => {
    if (error) {
      console.error('خطأ في النشر:', error);
      return res.status(500).send('خطأ في النشر');
    }
    console.log('تم النشر بنجاح');
    res.send('تم النشر بنجاح');
  });
});

النشر باستخدام Docker:

إنشاء Dockerfile:

# Dockerfile
FROM node:18-alpine

# تعيين مجلد العمل
WORKDIR /app

# نسخ package.json
COPY package*.json ./

# تثبيت التبعيات
RUN npm ci --only=production

# نسخ الكود
COPY . .

# بناء التطبيق
RUN npm run build

# تعيين المنفذ
EXPOSE 3000

# تشغيل التطبيق
CMD ["npm", "start"]

إنشاء docker-compose.yml:

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    depends_on:
      - db

  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=myapp
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

النشر على AWS:

استخدام AWS EC2:

# الاتصال بالخادم
ssh -i "my-key.pem" ubuntu@your-ec2-ip

# تحديث النظام
sudo apt update && sudo apt upgrade -y

# تثبيت Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# تثبيت PM2 لإدارة العمليات
sudo npm install -g pm2

# تشغيل التطبيق
pm2 start app.js
pm2 startup
pm2 save

استخدام AWS S3 للمواقع الثابتة:

# تثبيت AWS CLI
pip install awscli

# إعداد AWS
aws configure

# رفع الملفات
aws s3 sync dist/ s3://my-bucket-name --delete

# تفعيل Website hosting
aws s3 website s3://my-bucket-name --index-document index.html

النشر على DigitalOcean:

إعداد Droplet:

# إنشاء Droplet جديد
# اختيار Ubuntu 20.04
# اختيار خطة مناسبة

# الاتصال بالخادم
ssh root@your-droplet-ip

# إعداد Nginx
sudo apt update
sudo apt install nginx -y

# إعداد SSL مع Let's Encrypt
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com

إعداد Nginx:

# /etc/nginx/sites-available/my-app
server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

أفضل الممارسات للنشر:

  • 🔒 استخدم HTTPS دائماً
  • 🔄 أعد تشغيل الخادم بعد النشر
  • 📊 راقب الأداء والاستخدام
  • 💾 احتفظ بنسخ احتياطية
  • 🔧 استخدم متغيرات البيئة
  • 📝 وثق عملية النشر
  • 🧪 اختبر في بيئة مشابهة للإنتاج
  • ⚡ استخدم CDN للموارد الثابتة

أدوات مفيدة للنشر:

🔄 PM2

إدارة عمليات Node.js

🐳 Docker

حاويات للتطبيقات

⚙️ GitHub Actions

CI/CD تلقائي

📊 New Relic

مراقبة الأداء

استكشاف الأخطاء:

  • تحقق من logs التطبيق
  • تأكد من أن المنفذ مفتوح
  • تحقق من متغيرات البيئة
  • تأكد من أن قاعدة البيانات متاحة
  • تحقق من إعدادات Firewall
  • راجع إعدادات Nginx/Apache

النشر هو الخطوة الأخيرة لرؤية مشروعك على الإنترنت. ابدأ بنشر موقعك اليوم!

تعلم النشر والتطوير معنا

تواصل معنا

عبر الماسنجر او الهاتف