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










