Установка Dify на Linux с автоматическим резервным копированием

0 Акции
0
0
0
0

Введение

В этом руководстве я расскажу вам, как установить Dify, платформу LLMOps с открытым исходным кодом, на сервер Linux (Ubuntu, Debian или CentOS). Я также настрою автоматическое резервное копирование с использованием Restic и S3-совместимого объектного хранилища (например, Cloudflare R2). К концу этого руководства на вашем сервере будет полностью работоспособный экземпляр Dify с регулярным резервным копированием.

Dify — мощный инструмент для создания, развертывания и управления приложениями ИИ. Платформа предоставляет простой пользовательский интерфейс для разработки приложений ИИ без необходимости глубоких знаний в программировании и интегрирует различные модели и сервисы ИИ.

Такая конфигурация обеспечивает надежную среду для разработки и запуска приложений ИИ.

Предпосылки

Прежде чем начать, вам понадобится следующее:

  • Сервер Linux (Ubuntu, Debian или CentOS) и доступ к пользователю с правами sudo.
  • Доменное имя, указывающее на IP-адрес вашего сервера.
  • SSL-сертификат для вашего домена (например, через Cloudflare).

Чтобы создать SSL-сертификат с помощью Cloudflare, сначала зарегистрируйтесь и:

  • Приобретите домен или направьте свой существующий домен на серверы имен Cloudflare.
  • Создайте SSL-сертификат, выбрав свой домен и перейдя в раздел SSL/TLS » Исходный сервер » Создать сертификат.
SSL-сертификат Cloudflare

В качестве примера мы будем использовать Ubuntu, но шаги для Debian и CentOS будут аналогичными.

Шаг 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 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-сертификат.

    Если вы используете собственный сертификат, вы можете включить его в файлы 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, перейдя на свой домен в браузере.

    Чтобы проверить состояние контейнеров, вы можете выполнить следующую команду:

    докер пс -а

    Шаг 6 — Настройте автоматическое резервное копирование

    После развертывания Dify настроим автоматическое резервное копирование с использованием Restic и S3-совместимого объектного хранилища (например, Cloudflare R2). Для начала нам нужно перейти в режим пользователя root:

    sudo su
    cd ~

    Шаг 6.1 – Установка Restic

    Эти команды перенесут нас в корневой каталог. Теперь установим Restic:

    sudo apt update
    sudo apt install restic

    Шаг 6.2 — Подготовка S3-совместимого контейнера

    Если вы ещё не создали свой контейнер, создайте новый контейнер у своего провайдера или контейнер 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

    Сохраняем пароль в новом файле для 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 готов к использованию, а ежедневное резервное копирование гарантирует безопасность ваших данных.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может понравиться