SSD Nodes Learn
Guías Matt ConnorPor Matt Connor · Actualizado 2026-07-24

Instalar Dify con Docker Compose en un VPS

Guía para desplegar Dify usando Docker Compose. Requiere un VPS con 4 GB de RAM. Configure las variables en .env y acceda a /install para crear el admin.

Qué es Dify y qué implica ejecutarlo

Dify es una plataforma autoalojable para construir aplicaciones basadas en modelos de lenguaje extensos (LLM). Proporciona una interfaz web para diseñar aplicaciones de chat, agentes y pipelines de recuperación, una API para llamarlos desde su propio código, y un lugar centralizado para gestionar prompts, datasets y claves de modelos. Es la herramienta ideal para que un equipo pequeño trabaje sobre una base privada compartida, evitando dispersar claves API en diversos scripts.

Ejecutarlo por cuenta propia implica gestionar varios componentes. Dify se distribuye como un conjunto de contenedores Docker: un servidor API, un worker de fondo, un frontend web, una base de datos Postgres, una caché Redis y una base de datos vectorial, todos conectados mediante Docker Compose. Esto es más complejo que un único binario, pero Compose gestiona la conexión y un VPS con un par de gigabytes de RAM libres lo ejecuta sin problemas.

Dado que Dify almacena sus claves de API de modelos y, frecuentemente, documentos privados cargados para recuperación, trate el servidor donde se ejecuta como un sistema sensible desde el primer minuto. Esta guía lo instala y luego lo refuerza siguiendo los estándares de seguridad para servicios que gestionan secretos.

Requisitos previos

Necesita un VPS con Ubuntu 24.04 con Docker y el plugin Docker Compose instalados, y un usuario con sudo o que pertenezca al grupo docker. Si Docker es nuevo para usted, lo básico de Docker Compose en un VPS cubre la instalación y los comandos esenciales que asume esta guía. Es recomendable tener un nombre de dominio apuntando al servidor, ya que necesitará TLS frente a Dify en lugar de usar solo una dirección IP.

Paso 1: Obtener Dify y sus archivos Compose

Dify mantiene su configuración de Docker en el repositorio principal. Clone el repositorio y acceda al directorio docker:

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env

El archivo .env contiene toda la configuración. Léalo antes de comenzar. Los valores críticos iniciales son los que definen las contraseñas y secretos: SECRET_KEY, la contraseña de Postgres y la contraseña de Redis. El archivo de ejemplo incluye valores de marcador de posición; dejarlos como vienen es la causa más común de compromiso en instancias de Dify autoalojadas. Genere una clave secreta real:

openssl rand -base64 42

Pegue ese valor en SECRET_KEY y asigne un valor fuerte y único a cada campo de contraseña en el archivo.

Paso 2: Iniciar el servicio

Levante el stack:

docker compose up -d

La primera ejecución descargará varias imágenes e inicializará la base de datos; espere un minuto. Verifique que los contenedores estén operativos:

docker compose ps

Cada servicio debe responder en running. Dify sirve su interfaz web mediante un contenedor nginx incluido en el puerto 80 por defecto. En su primera visita a http://YOUR_SERVER/install, cree la cuenta de administrador. Hágalo de inmediato, antes de que cualquier otro proceso acceda al puerto, porque hasta que esa cuenta exista, cualquier persona que cargue la página puede reclamarla y tomar el control de su instancia.

Paso 3: No lo exponga directamente. Use TLS y un firewall

Aquí es donde la mayoría de las instalaciones rápidas fallan y comienzan los incidentes. El nginx de Dify escucha en el puerto 80, sin cifrar, en todas las interfaces. No debe permitir que su inicio de sesión de administrador y sus claves de modelos viajen por HTTP simple, ni que los servicios internos sean accesibles desde el exterior.

Proteja el servidor con un firewall de denegación por defecto que permita solo tráfico SSH y web:

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Recuerde que un firewall que solo cubre IPv4 puede dejar los mismos puertos abiertos en IPv6, el vacío de seguridad de IPv6 que afecta a muchos usuarios de autoalojamiento. Confirme que ambos stacks estén filtrados.

Para TLS, la opción más limpia es vincular el puerto web de Dify al loopback y ejecutar un proxy inverso con un certificado de Let's Encrypt al frente; así, lo único visible en internet será el proxy comunicando por HTTPS. El parámetro .env de Dify le permite cambiar el puerto expuesto; configúrelo para que se vincule al 127.0.0.1 y apunte su proxy hacia ese puerto. Las ideas de refuerzo de agentes en ejecutar un agente de IA de forma segura en un VPS también se aplican aquí: mantenga los componentes en loopback, exponga solo lo necesario y use un único punto de entrada reforzado con TLS.

Paso 4: Manténgalo actualizado

Dify evoluciona rápidamente y sus actualizaciones incluyen parches de seguridad. Actualizar consiste en realizar un pull y un reinicio desde el directorio docker:

git pull
docker compose pull
docker compose up -d

Lea las notas de la versión antes de realizar un salto de versión mayor, ya que Dify ocasionalmente cambia el esquema .env entre versiones, y una variable nueva no configurada puede impedir que un contenedor inicie.

Paso 5: Resguarde lo que no puede regenerar

Hay dos elementos en un servidor Dify que son irremplazables: la base de datos Postgres, que contiene sus aplicaciones, usuarios y configuraciones, y el volumen que almacena los documentos cargados y el índice vectorial. Ambos se encuentran en volúmenes de Docker en el directorio docker. Realice snapshots programados y copie los snapshots fuera del servidor. Una clave de API de modelo se puede reemitir; la aplicación en la que trabajó una semana no.

Para un agente más autónomo que ejecute código, consulte autoalojar Agent Zero, y construir su propio agente de IA en un VPS cubre los fundamentos de todos ellos.

FAQ

¿Cuáles son los requisitos de sistema para autoalojar Dify?

Dify se ejecuta como un stack de Docker Compose con aproximadamente media docena de contenedores, por lo que debe planificar un VPS con al menos 2 GB de RAM libres, idealmente 4 GB, además de un par de núcleos de CPU y suficiente disco para sus documentos y el índice vectorial. La carga de memoria proviene de la base de datos y el almacén vectorial, no de Dify en sí.

¿Es seguro exponer Dify directamente en el puerto 80?

No. El servidor web incluido en Dify escucha en HTTP simple, lo que expone su login de administrador y sus claves de API de modelos. Utilice un proxy inverso con un certificado de Let's Encrypt, vincule el puerto de Dify al loopback y deje que solo el proxy HTTPS sea visible en internet. Combine esto con un firewall de denegación por defecto que cubra tanto IPv4 como IPv6.

¿Cómo actualizo un Dify autoalojado?

Desde el directorio docker, ejecute git pull, luego docker compose pull y docker compose up -d para obtener las nuevas imágenes y reiniciar. Lea las notas de la versión primero, ya que Dify a veces añade nuevas variables .env entre versiones, y la ausencia de una puede evitar que un contenedor se inicie.

¿Qué es lo primero que se debe hacer tras instalar Dify?

Visite /install y cree la cuenta de administrador inmediatamente. Hasta que esa cuenta exista, cualquier persona que acceda a la página puede reclamarla. Configúrela en cuanto los contenedores estén operativos y antes de abrir el firewall al mundo.