Dify را روی لینوکس با پشتیبان گیری خودکار نصب کنید

مقدمه

در این آموزش، من شما را از طریق فرآیند نصب Dify، یک پلتفرم متن‌باز LLMOps، روی سرور لینوکس (اوبونتو، دبیان یا سنت‌اواس) هدایت می‌کنم. همچنین پشتیبان‌گیری خودکار با استفاده از Restic و ذخیره‌سازی شی‌ء سازگار با S3 (مثلاً Cloudflare R2) را تنظیم می‌کنم. در پایان این آموزش، شما یک نمونه کامل Dify بر روی سرور خود خواهید داشت که با پشتیبان‌گیری‌های منظم اجرا می‌شود.

Dify ابزاری قدرتمند است که به شما این امکان را می‌دهد تا برنامه‌های هوش مصنوعی ایجاد، مستقر و مدیریت کنید. این پلتفرم یک رابط کاربری ساده برای ساخت برنامه‌های هوش مصنوعی بدون نیاز به دانش گسترده کدنویسی فراهم می‌کند و مدل‌ها و سرویس‌های مختلف هوش مصنوعی را ادغام می‌کند.

این تنظیمات به شما محیطی قوی برای توسعه و اجرای برنامه‌های هوش مصنوعی می‌دهد.

پیش نیازها

قبل از شروع، شما به موارد زیر نیاز دارید:

  • یک سرور لینوکس (اوبونتو، دبیان یا سنت‌اواس) و دسترسی به یک کاربر با مجوزهای sudo.
  • یک نام دامنه که به آدرس IP سرور شما اشاره کند.
  • یک گواهی SSL برای دامنه شما (مثلاً از طریق Cloudflare).

برای تولید گواهی SSL با Cloudflare، ابتدا ثبت‌نام کرده و:

  • یک دامنه خریداری کنید یا دامنه موجود خود را به سرورهای نام Cloudflare ارجاع دهید.
  • گواهی SSL را با انتخاب دامنه خود و مراجعه به مسیر SSL/TLS » Origin Server » Create Certificate تولید کنید.
گواهی 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

ممکن است نیاز باشد که از سیستم خارج شوید و دوباره وارد شوید تا گروه‌ها به‌روزرسانی شوند.

مرحله 2 – کلون کردن مخزن Dify

اکنون مخزن Dify را کلون می‌کنیم:

cd ~ && git clone https://github.com/langgenius/dify.git

این دستور کد منبع Dify را به سرور شما دانلود می‌کند.

مرحله 3 – پیکربندی Dify

در ادامه، فایل پیکربندی را تنظیم می‌کنیم:

cd ~/dify/docker
cp .env.example .env
nano .env

این دستورات:

  • به دایرکتوری داکر Dify تغییر مسیر می‌دهند.
  • یک نسخه از فایل محیطی نمونه را ایجاد می‌کنند.
  • فایل جدید .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 را فشار دهید و برای خروج از ویرایشگر nano، Ctrl+X را فشار دهید.

    مرحله 4 – تنظیم گواهی‌های SSL

    حالا گواهی SSL را اضافه می‌کنیم.

    اگر از گواهی خود استفاده می‌کنید، می‌توانید آن را در فایل‌های dify.crt و dify.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

    گواهی 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

    دستورهای بالا ما را به دایرکتوری ریشه می‌برند. حالا، Restic را نصب می‌کنیم:

    sudo apt update
    sudo apt install restic

    مرحله 6.2 – آماده‌سازی سطل سازگار با S3

    اگر هنوز سطل (bucket) خود را ایجاد نکرده‌اید، یک سطل جدید از ارائه‌دهنده خود یا یک سطل R2 در حساب Cloudflare خود ایجاد کنید. اطلاعات زیر را یادداشت کنید:

    • نام سطل
    • کلید دسترسی ID
    • کلید دسترسی مخفی
    • 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

    گذرواژه را در یک فایل جدید برای کرون‌جاب ذخیره می‌کنیم:

    echo "YOUR_PASSWORD" > /etc/restic-password
    chmod 600 /etc/restic-password

    مرحله 6.5 – تنظیم پشتیبان‌گیری روزانه

    فایل کرون را باز کرده و خط زیر را در انتهای فایل اضافه کنید:

    crontab -e
    0 3 * * * /root/restic/backup.sh > /root/restic/backup.log 2>&1

    این دستور پشتیبان‌گیری روزانه را در ساعت 3 صبح تنظیم می‌کند. فایل را ذخیره و از ویرایشگر خارج شوید.

    مرحله 7 – بررسی تنظیمات

    برای اطمینان از صحت تنظیمات:

      • اسکریپت پشتیبان‌گیری را به‌صورت دستی اجرا کنید:
    /root/restic/backup.sh
      • مخزن Restic را برای بررسی عکس‌ها مشاهده کنید:
    restic snapshots

    مرحله 8 – به‌روزرسانی Dify در آینده

    برای به‌روزرسانی Dify در آینده، این دستورات را اجرا کنید:

    cd ~/dify/docker
    docker compose down
    git pull origin main
    docker compose pull
    docker compose up -d

    این دستورات کانتینرهای فعلی را متوقف کرده، تغییرات جدید را بارگیری کرده، تصاویر به‌روزرسانی شده را دانلود کرده و کانتینرهای جدید را شروع می‌کنند.

    نتیجه‌

    تبریک می‌گویم! شما با موفقیت Dify را روی سرور لینوکس خود نصب کرده، گواهی‌های SSL را تنظیم کرده و پشتیبان‌گیری خودکار را پیکربندی کرده‌اید. حالا نمونه Dify شما آماده استفاده است و پشتیبان‌گیری‌های روزانه از ایمنی داده‌های شما اطمینان می‌دهد.

    [تعداد: 1   میانگین: 5/5]
    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    شاید دوست داشته باشید