انتقل إلى المحتوى الرئيسي

كيفية تثبيت خادم Cursor يدويًا

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

المتطلبات الأساسية

قبل بدء التثبيت اليدوي، تأكد من توفر ما يلي:

  • وصول المسؤول/الجذر إلى النظام المستهدف
  • تثبيت Node.js 16.x أو أحدث
  • تثبيت Git
  • توفر ذاكرة وصول عشوائي (RAM) لا تقل عن 4 جيجابايت
  • مساحة قرص حرة تبلغ 2 جيجابايت

خطوات التثبيت

1. استنساخ المستودع

git clone https://github.com/getcursor/cursor-server.git
cd cursor-server

2. تثبيت التبعيات

npm install
# أو إذا كنت تفضل yarn
yarn install

3. تكوين متغيرات البيئة

قم بإنشاء ملف .env في الدليل الجذر:

touch .env

أضف التكوينات التالية:

PORT=3000
HOST=localhost
NODE_ENV=production
LOG_LEVEL=info
MAX_REQUESTS_PER_MINUTE=60

4. بناء الخادم

npm run build
# أو
yarn build

تكوين الخادم

التكوين الأساسي

يمكن تكوين الخادم من خلال متغيرات البيئة أو ملف التكوين:

// config.ts
export default {
server: {
port: process.env.PORT || 3000,
host: process.env.HOST || 'localhost',
cors: {
origin: '*',
methods: ['GET', 'POST']
}
},
security: {
rateLimit: {
windowMs: 60 * 1000, // 1 دقيقة
max: process.env.MAX_REQUESTS_PER_MINUTE || 60
}
}
}

التكوين المتقدم

لحالات الاستخدام المتقدمة، يمكنك تعديل:

  1. إعدادات المصادقة
  2. تحديد معدل الطلبات
  3. سياسات CORS
  4. مستويات التسجيل
  5. تكوين ذاكرة التخزين المؤقت

تشغيل الخادم

وضع التطوير

npm run dev
# أو
yarn dev

وضع الإنتاج

npm run start
# أو
yarn start

استخدام PM2 (موصى به للإنتاج)

npm install -g pm2
pm2 start npm --name "cursor-server" -- start

اعتبارات الأمان

  1. مصادقة API

    • تنفيذ مصادقة مفتاح API
    • استخدام HTTPS في الإنتاج
    • تكوين إعدادات CORS المناسبة
  2. تحديد معدل الطلبات

    • تعيين حدود طلب مناسبة
    • تنفيذ التقييد المستند إلى IP
    • مراقبة إساءة الاستخدام
  3. التحكم في الوصول

    • تقييد وصول الخادم حسب IP
    • استخدام قواعد جدار الحماية
    • تنفيذ الوصول المستند إلى الأدوار

المراقبة والصيانة

فحوصات الصحة

تنفيذ نقاط نهاية لفحص الصحة:

app.get('/health', (req, res) => {
res.status(200).json({
status: 'healthy',
timestamp: new Date().toISOString(),
version: process.env.npm_package_version
});
});

التسجيل

تكوين التسجيل لاستكشاف الأخطاء وإصلاحها:

import winston from 'winston';

const logger = winston.createLogger({
level: process.env.LOG_LEVEL || 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});

استكشاف الأخطاء وإصلاحها

المشكلات الشائعة والحلول:

رفض الاتصال

إذا واجهت أخطاء رفض الاتصال:

  1. تحقق من أن المنفذ غير مستخدم
  2. تحقق من إعدادات جدار الحماية
  3. تأكد من تكوين المضيف الصحيح

مشكلات الذاكرة

إذا نفدت ذاكرة الخادم:

  1. زيادة حجم كومة Node.js
  2. مراقبة استخدام الذاكرة
  3. تنفيذ جمع النفايات

تحسين الأداء

نصائح للأداء الأمثل:

  1. التخزين المؤقت

    • تنفيذ Redis للتخزين المؤقت
    • استخدام التخزين المؤقت في الذاكرة حيثما كان ذلك مناسبًا
    • تخزين البيانات التي يتم الوصول إليها بشكل متكرر
  2. تحسين قاعدة البيانات

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

    • إعداد مثيلات خادم متعددة
    • استخدام موازن التحميل
    • تنفيذ التوسع الأفقي

الموارد ذات الصلة

  • تكوين الخادم
  • دليل API
  • إعدادات الأمان

الخلاصة

يوفر التثبيت اليدوي لخادم Cursor تحكمًا أكبر وخيارات تخصيص. على الرغم من أنه يتطلب المزيد من جهود الإعداد، إلا أنه يسمح بتكوينات وتحسينات محددة بناءً على احتياجاتك.

المقالات ذات الصلة

  • دليل أمان خادم Cursor
  • ضبط أداء الخادم
  • تكوينات الخادم المخصصة