Instalar Dify en Linux con copias de seguridad automáticas

0 acciones
0
0
0
0

Introducción

En este tutorial, te guiaré a través del proceso de instalación de Dify, una plataforma LLMOps de código abierto, en un servidor Linux (Ubuntu, Debian o CentOS). También configuraré copias de seguridad automáticas con Restic y almacenamiento de objetos compatible con S3 (por ejemplo, Cloudflare R2). Al finalizar este tutorial, tendrás una instancia de Dify completamente funcional ejecutándose en tu servidor con copias de seguridad periódicas.

Dify es una potente herramienta que permite crear, implementar y gestionar aplicaciones de IA. La plataforma ofrece una interfaz de usuario sencilla para crear aplicaciones de IA sin necesidad de conocimientos avanzados de programación e integra diversos modelos y servicios de IA.

Esta configuración le proporciona un entorno sólido para desarrollar y ejecutar aplicaciones de IA.

Requisitos previos

Antes de comenzar, necesitará lo siguiente:

  • Un servidor Linux (Ubuntu, Debian o CentOS) y acceso a un usuario con permisos sudo.
  • Un nombre de dominio que apunta a la dirección IP de su servidor.
  • Un certificado SSL para su dominio (por ejemplo, a través de Cloudflare).

Para generar un certificado SSL con Cloudflare, primero regístrese y:

  • Compre un dominio o apunte su dominio existente a los servidores de nombres de Cloudflare.
  • Genere el certificado SSL seleccionando su dominio y yendo a SSL/TLS » Servidor de origen » Crear certificado.
Certificado SSL de Cloudflare

Utilizaremos Ubuntu como sistema operativo de ejemplo, pero los pasos serán similares para Debian y CentOS.

Paso 1 – Preparación del servidor

Primero, actualizaremos el sistema, instalaremos Docker y Docker Compose, y configuraremos Git. Este comando lo hará todo automáticamente:

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

Este comando realiza las siguientes acciones:

  • Actualiza la lista de paquetes del sistema y actualiza los paquetes instalados.
  • Instala las dependencias necesarias.
  • Agrega la clave GPG y el repositorio oficial de Docker.
  • Instala Docker y Docker Compose.
  • Agrega su usuario al grupo Docker.
  • Instala Git.

Para comprobarlo, puede ejecutar el siguiente comando:

docker --version && docker compose version && git version

Es posible que tengas que cerrar sesión y volver a iniciarla para que los grupos se actualicen.

Paso 2: Clonar el repositorio de Dify

Ahora clonamos el repositorio Dify:

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

Este comando descargará el código fuente de Dify a su servidor.

Paso 3 – Configurar Dify

A continuación, configuramos el archivo de configuración:

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

Estos comandos:

  • Redirige al directorio Docker de Dify.
  • Cree una copia del archivo de entorno de muestra.
  • Abra el nuevo archivo .env en el editor de texto nano.

En el archivo .env, configure las siguientes variables según sus necesidades:

    • Actualización de variables de dominio:
APP_WEB_URL=your_domain_name
NGINX_HTTPS_ENABLED=true
    • Actualizar las variables del certificado:
      • Si utiliza su propio certificado, puede mantener los valores predeterminados y agregar los archivos de clave relevantes en el siguiente paso.
      • Si está utilizando un certificado de Cloudflare, actualice los valores de las variables del certificado de la siguiente manera:
NGINX_SSL_CERT_FILENAME=cert.pem
NGINX_SSL_CERT_KEY_FILENAME=key.pem
      • Actualizar otras variables:

    Verifique también las otras variables en el archivo .env y ajústelas según sus necesidades.

    Después de realizar los cambios, presione Ctrl+S para guardar el archivo y presione Ctrl+X para salir del editor nano.

    Paso 4 – Configurar certificados SSL

    Ahora agregaremos el certificado SSL.

    Si utiliza su propio certificado, puede incluirlo en los archivos dify.crt y dify.key.

    Si está utilizando un certificado de Cloudflare, debe incluirlo en los archivos cert.pem y key.pem.

    Certificado personal

    Crea dos archivos nuevos:

    nano ~/dify/docker/nginx/ssl/dify.crt
    nano ~/dify/docker/nginx/ssl/dify.key

    Copie y pegue su certificado y clave en estos archivos. Luego, guarde y salga del editor (Ctrl+S, Ctrl+X).

    Certificado de Cloudflare

    Agregue el certificado de Cloudflare de la siguiente manera:

    nano ~/dify/docker/nginx/ssl/cert.pem
    nano ~/dify/docker/nginx/ssl/key.pem

    Copia el contenido del certificado de Cloudflare en estos archivos. Guarda y cierra el editor (Ctrl+S, Ctrl+X).

    Paso 5 – Implementar Dify

    Ahora estamos listos para implementar Dify:

    cd ~/dify/docker docker
    compose up -d

    Este comando inicia todos los contenedores que Dify necesita. La opción -d los ejecuta en modo independiente (en segundo plano).

    Después de un minuto aproximadamente, deberías poder ver tu instancia de Dify visitando tu dominio en un navegador.

    Para comprobar el estado de los contenedores, puede ejecutar el siguiente comando:

    docker ps -a

    Paso 6 – Configurar copias de seguridad automáticas

    Tras implementar Dify, configuremos copias de seguridad automatizadas con Restic y almacenamiento de objetos compatible con S3 (p. ej., Cloudflare R2). Primero, necesitamos cambiar al usuario root:

    sudo su
    cd ~

    Paso 6.1 – Instalación de Restic

    Los comandos anteriores nos llevarán al directorio raíz. Ahora, instalemos Restic:

    sudo apt update
    sudo apt install restic

    Paso 6.2 – Preparar un bucket compatible con S3

    Si aún no has creado tu bucket, crea uno nuevo desde tu proveedor o un bucket R2 en tu cuenta de Cloudflare. Ten en cuenta la siguiente información:

    • Nombre del depósito
    • Clave de acceso de identificación
    • Clave de acceso secreta
    • URL del punto final

    Paso 6.3 – Crear un script de respaldo

    Creamos un nuevo directorio y configuramos el script de respaldo:

    mkdir -p /root/restic
    nano /root/restic/backup.sh

    Copie y pegue el siguiente contenido en el archivo:

    #!/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

    Reemplace los valores iniciales con la información real de su bucket de S3 y reemplace "YOUR_USER" con el usuario que instaló Dify. Guarde el archivo y salga del editor (Ctrl+S, Ctrl+X).

    Paso 6.4 – Configuración del repositorio Restic

    Establecemos las variables de entorno e iniciamos el repositorio:

    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

    Almacenamos la contraseña en un nuevo archivo para el cronjob:

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

    Paso 6.5 – Configurar copias de seguridad diarias

    Abra el archivo cron y agregue la siguiente línea al final del archivo:

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

    Este comando establece una copia de seguridad diaria a las 3 a.m. Guarde el archivo y salga del editor.

    Paso 7 – Verificar la configuración

    Para garantizar que la configuración sea correcta:

      • Ejecute el script de copia de seguridad manualmente:
    /root/restic/backup.sh
      • Visita el repositorio de Restic para ver las fotos:
    instantáneas restic

    Paso 8 – Futuras actualizaciones de Dify

    Para actualizar Dify en el futuro, ejecute estos comandos:

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

    Estos comandos detienen los contenedores actuales, cargan nuevos cambios, descargan imágenes actualizadas e inician nuevos contenedores.

    Resultado

    ¡Felicitaciones! Has instalado Dify correctamente en tu servidor Linux, configurado certificados SSL y copias de seguridad automáticas. Ahora tu instancia de Dify está lista para usar, y las copias de seguridad diarias garantizan la seguridad de tus datos.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


    También te puede gustar