مقدمة
في هذا الدرس، سأشرح لكم بالتفصيل كيفية تثبيت Dify، وهي منصة LLMOps مفتوحة المصدر، على خادم لينكس (أوبونتو، ديبيان، أو سنت أو إس). سأقوم أيضًا بإعداد نسخ احتياطية تلقائية باستخدام Restic ووحدات تخزين كائنات متوافقة مع S3 (مثل Cloudflare R2). بنهاية هذا الدرس، سيكون لديكم نسخة Dify تعمل بكامل طاقتها على خادمكم مع نسخ احتياطية منتظمة.
ديفي أداة قوية تتيح لك إنشاء تطبيقات الذكاء الاصطناعي ونشرها وإدارتها. توفر المنصة واجهة مستخدم بسيطة لبناء تطبيقات الذكاء الاصطناعي دون الحاجة إلى معرفة واسعة بالبرمجة، كما أنها تدمج نماذج وخدمات ذكاء اصطناعي متنوعة.
يوفر لك هذا الإعداد بيئة قوية لتطوير وتشغيل تطبيقات الذكاء الاصطناعي.
المتطلبات الأساسية
قبل أن تبدأ، ستحتاج إلى ما يلي:
- خادم لينكس (أوبونتو، ديبيان، أو سنت أو إس) وإمكانية الوصول إلى مستخدم لديه صلاحيات sudo.
- اسم نطاق يشير إلى عنوان IP الخاص بخادمك.
- شهادة SSL لنطاقك (على سبيل المثال من خلال Cloudflare).
لإنشاء شهادة SSL باستخدام Cloudflare، قم أولاً بالتسجيل ثم:
- قم بشراء نطاق أو قم بتوجيه نطاقك الحالي إلى خوادم أسماء Cloudflare.
- قم بإنشاء شهادة SSL عن طريق تحديد نطاقك والانتقال إلى SSL/TLS » خادم الأصل » إنشاء شهادة.
شهادة SSL من Cloudflare
سنستخدم نظام التشغيل أوبونتو كمثال، لكن الخطوات ستكون متشابهة بالنسبة لنظامي التشغيل ديبيان وسينت أو إس.
الخطوة 1 - تجهيز الخادم
أولاً، سنقوم بتحديث النظام، وتثبيت Docker وDocker Compose، وإعداد Git. سيقوم هذا الأمر بكل ذلك نيابةً عنا:
sudo apt update -y && \
sudo apt upgrade -y && \
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt-get update -y && \
sudo apt-get install -y docker-ce && \
sudo usermod -aG docker $USER && \
sudo curl -L https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
sudo apt install git -yيقوم هذا الأمر بتنفيذ الإجراءات التالية:
- يقوم بتحديث قائمة حزم النظام وتحديث الحزم المثبتة.
- يقوم بتثبيت التبعيات المطلوبة.
- يضيف مفتاح GPG ومستودع Docker الرسمي.
- يقوم بتثبيت Docker و Docker Compose.
- يضيف المستخدم الخاص بك إلى مجموعة Docker.
- يقوم بتثبيت Git.
للتأكد، يمكنك تشغيل الأمر التالي:
docker --version && docker compose version && git version
قد تحتاج إلى تسجيل الخروج ثم تسجيل الدخول مرة أخرى لتحديث المجموعات.
الخطوة الثانية - استنساخ مستودع Dify
والآن نقوم باستنساخ مستودع Dify:
cd ~ && git clone https://github.com/langgenius/dify.git
سيقوم هذا الأمر بتنزيل شفرة المصدر الخاصة بـ Dify إلى خادمك.
الخطوة 3 - تهيئة Dify
بعد ذلك، قمنا بإعداد ملف التكوين:
cd ~/dify/docker
cp .env.example .env
nano .env
هذه الأوامر:
- يُعيد التوجيه إلى دليل Dify Docker.
- أنشئ نسخة من ملف بيئة العينة.
- افتح ملف .env الجديد في محرر النصوص nano.
في ملف .env، قم بتعيين المتغيرات التالية وفقًا لاحتياجاتك:
- تحديث متغيرات المجال:
APP_WEB_URL=your_domain_name
NGINX_HTTPS_ENABLED=true- تحديث متغيرات الشهادة:
- إذا كنت تستخدم شهادتك الخاصة، فيمكنك الاحتفاظ بالقيم الافتراضية وإضافة ملفات المفاتيح ذات الصلة في الخطوة التالية.
- إذا كنت تستخدم شهادة Cloudflare، فقم بتحديث قيم متغيرات الشهادة على النحو التالي:
- تحديث متغيرات الشهادة:
NGINX_SSL_CERT_FILENAME=cert.pem
NGINX_SSL_CERT_KEY_FILENAME=key.pem- تحديث المتغيرات الأخرى:
تحقق أيضًا من المتغيرات الأخرى في ملف .env وقم بتعديلها وفقًا لاحتياجاتك.
بعد إجراء التغييرات، اضغط على Ctrl+S لحفظ الملف واضغط على Ctrl+X للخروج من محرر nano.
الخطوة 4 - إعداد شهادات SSL
والآن سنضيف شهادة SSL.
إذا كنت تستخدم شهادتك الخاصة، فيمكنك تضمينها في ملفي diify.crt و diify.key.
إذا كنت تستخدم شهادة Cloudflare، فأنت بحاجة إلى تضمينها في ملفي cert.pem و key.pem.
شهادة شخصية
أنشئ ملفين جديدين:
nano ~/dify/docker/nginx/ssl/dify.crt
nano ~/dify/docker/nginx/ssl/dify.keyانسخ والصق شهادتك ومفتاحك في هذه الملفات. ثم احفظ الملف واخرج من المحرر (Ctrl+S، Ctrl+X).
شهادة كلاود فلير
أضف شهادة Cloudflare على النحو التالي:
nano ~/dify/docker/nginx/ssl/cert.pem
nano ~/dify/docker/nginx/ssl/key.pemانسخ محتويات شهادة Cloudflare إلى هذه الملفات. ثم احفظ الملف واخرج من المحرر (Ctrl+S، Ctrl+X).
الخطوة 5 - نشر Dify
الآن نحن جاهزون لنشر Dify:
cd ~/dify/docker docker
compose up -dيبدأ هذا الأمر تشغيل جميع الحاويات التي يحتاجها برنامج Dify. الخيار -d يشغل الحاويات في وضع منفصل (في الخلفية).
بعد دقيقة أو نحو ذلك، ستتمكن من رؤية مثيل Dify الخاص بك عن طريق زيارة نطاقك في متصفح الويب.
للتحقق من حالة الحاويات، يمكنك تشغيل الأمر التالي:
docker ps -aالخطوة 6 - إعداد النسخ الاحتياطية التلقائية
بعد تثبيت Dify، لنقم بإعداد نسخ احتياطية تلقائية باستخدام Restic وتخزين الكائنات المتوافق مع S3 (مثل Cloudflare R2). أولاً، نحتاج إلى التبديل إلى حساب المستخدم الجذر:
sudo su
cd ~الخطوة 6.1 - تركيب ريستيك
ستنقلنا الأوامر المذكورة أعلاه إلى المجلد الرئيسي. الآن، لنقم بتثبيت Restic:
sudo apt update
sudo apt install resticالخطوة 6.2 - تجهيز حاوية متوافقة مع S3
إذا لم تقم بإنشاء حاوية التخزين الخاصة بك بعد، فأنشئ حاوية جديدة من مزود الخدمة أو حاوية R2 في حساب Cloudflare الخاص بك. لاحظ المعلومات التالية:
- اسم الدلو
- مفتاح الوصول إلى الهوية
- مفتاح الوصول السري
- عنوان URL لنقطة النهاية
الخطوة 6.3 - إنشاء برنامج نصي للنسخ الاحتياطي
نقوم بإنشاء دليل جديد وإعداد برنامج النسخ الاحتياطي:
mkdir -p /root/restic
nano /root/restic/backup.shانسخ والصق المحتوى التالي في الملف:
#!/bin/bash
# Set environment variables for Restic
export RESTIC_REPOSITORY="s3:YOUR_S3_ENDPOINT_URL/YOUR_BUCKET_NAME"
export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
export RESTIC_PASSWORD_FILE="/etc/restic-password"
# Set the backup source
# Replace "YOUR_USER" with the user that installed Dify
BACKUP_SOURCE="/home/YOUR_USER/dify/docker/volumes"
# Perform the backup
restic backup $BACKUP_SOURCE
# Prune old snapshots (keep last 7 daily, last 4 weekly, and last 12 monthly backups)
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
# Check the repository for errors
restic checkاستبدل القيم الأولية بالمعلومات الفعلية من حاوية S3 الخاصة بك، واستبدل "YOUR_USER" باسم المستخدم الذي قام بتثبيت Dify. ثم احفظ الملف واخرج من المحرر (Ctrl+S، Ctrl+X).
الخطوة 6.4 - إعداد مستودع Restic
نقوم بتعيين متغيرات البيئة ونبدأ تشغيل المستودع:
export RESTIC_REPOSITORY="s3:YOUR_S3_ENDPOINT_URL/YOUR_BUCKET_NAME"
export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
restic initنقوم بتخزين كلمة المرور في ملف جديد لوظيفة cronjob:
echo "YOUR_PASSWORD" > /etc/restic-password
chmod 600 /etc/restic-passwordالخطوة 6.5 - إعداد النسخ الاحتياطية اليومية
افتح ملف cron وأضف السطر التالي في نهاية الملف:
crontab -e 0 3 * * * /root/restic/backup.sh > /root/restic/backup.log 2>&1يقوم هذا الأمر بضبط النسخ الاحتياطي اليومي في الساعة 3 صباحًا. احفظ الملف واخرج من المحرر.
الخطوة 7 - التحقق من الإعدادات
للتأكد من صحة الإعدادات:
- قم بتشغيل برنامج النسخ الاحتياطي يدويًا:
/root/restic/backup.sh- قم بزيارة مستودع Restic للاطلاع على الصور:
لقطات ريستيكالخطوة 8 – تحديثات Dify المستقبلية
لتحديث Dify في المستقبل، قم بتشغيل هذه الأوامر:
cd ~/dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -dتقوم هذه الأوامر بإيقاف الحاويات الحالية، وتحميل التغييرات الجديدة، وتنزيل الصور المحدثة، وبدء الحاويات الجديدة.
نتيجة
تهانينا! لقد نجحت في تثبيت Dify على خادم Linux الخاص بك، وإعداد شهادات SSL، وتكوين النسخ الاحتياطية التلقائية. الآن، أصبح Dify جاهزًا للاستخدام، وتضمن النسخ الاحتياطية اليومية سلامة بياناتك.










