Tutoriales de VPS
Desplegar la plataforma de aplicaciones de IA Dify en un VPS (2026): guía para crear una base de conocimiento RAG privada, flujos de trabajo y agentes
Dify no es n8n, ni tampoco Open WebUI. Se parece más a una plataforma de aplicaciones de IA que puede ejecutarse en un VPS: preguntas y respuestas sobre la base de conocimiento, recuperación RAG, Agent, flujos de trabajo e integración de modelos se completan en un mismo panel. Este artículo explica con claridad para qué escenarios es adecuado Dify, cómo elegir la configuración del VPS, cómo desplegar con Docker Compose, cómo evitar el OOM con 4 GB de memoria y cómo crear tu primera base de conocimiento privada.

Dify se ha popularizado muy rápido en los últimos dos años, no porque haya creado otra interfaz de chat, sino porque empaqueta juntas muchas cosas que la gente realmente quiere: base de conocimiento, RAG, Agent, flujos de trabajo, integración de modelos y publicación de API.
Si ya has probado n8n u Ollama + Open WebUI en un VPS, quizá te preguntes: entonces, ¿qué añade exactamente Dify?
Explicado en una frase:
- n8n se parece más a una "línea de automatización", buena para conectar distintos sistemas entre sí;
- Open WebUI se parece más a un "frontend de chat con IA", adecuado para conversar con modelos locales;
- Dify se parece más a un "backend de aplicaciones de IA", adecuado para preguntas y respuestas sobre bases de conocimiento, bots de atención al cliente, recuperación de documentos y asistentes internos.
Así que Dify no sustituye a n8n ni sustituye a Open WebUI. Es más adecuado para una cosa: convertir las capacidades de IA en una aplicación que realmente puedan usar otras personas.
No te apresures a desplegar. Dify es bastante más pesado que n8n y más complejo que una interfaz de chat normal. Estos escenarios son los que realmente merecen la pena:
| Escenario | Valor de Dify |
|---|---|
| Preguntas y respuestas sobre documentos internos de la empresa | Subir PDF, Markdown y contenido web para crear una base de conocimiento RAG |
| Bots de atención al cliente | Conectar FAQ, documentación de producto y bases de conocimiento de tickets |
| Herramientas de generación de contenido | Escribir artículos, cambiar títulos, generar resúmenes, pulir por lotes |
| Flujos de trabajo de IA | Prompts de varios pasos, ramas condicionales, llamadas a herramientas |
| Ofrecer un punto de entrada unificado al equipo | Gestión en el panel de aplicaciones, modelos, Keys y registros |
Si solo quieres conversar tú mismo con los modelos, Open WebUI es más ligero. Si solo quieres conectar Telegram, Webhooks, hojas de cálculo y correo, n8n es más adecuado.
Pero si quieres "subir un montón de materiales y luego hacer que la IA responda preguntas según los materiales", Dify resulta muy cómodo.
La afirmación habitual sobre el requisito mínimo oficial de Dify es 2 núcleos y 4 GB, pero en el uso real, 4 GB es el mínimo, no la línea cómoda.
El Docker Compose predeterminado de Dify levanta un grupo de servicios: API, Worker, Web, PostgreSQL, Redis, base de datos vectorial, Sandbox, Nginx, servicios relacionados con plugins, etc. No es una pequeña herramienta de un solo contenedor.
Mi recomendación es elegir así:
| Uso | Configuración recomendada |
|---|---|
| Pruebas, modelos por API externa | 2 núcleos 4 GB, con Swap obligatoriamente activado |
| Uso personal a largo plazo | 2-4 núcleos 8 GB |
| Base de conocimiento para equipos pequeños | 4 núcleos 8 GB como mínimo |
| Documentos grandes, varios usuarios, indexación frecuente | 4 núcleos 16 GB es más estable |
| Ejecutar modelos locales Ollama en la misma máquina | 16 GB como mínimo, cuanto más mejor |
A mucha gente le va mal no porque la CPU sea insuficiente, sino porque la memoria no basta. Dify puede consumir normalmente solo 2-4 GB, pero durante la división de documentos, el Embedding y la indexación puede dispararse de repente. No fuerces instancias pequeñas de 1C1G o 1C2G; al final lo más probable es que el OOM Killer mate al worker.
Si el presupuesto es limitado, mejor elige 2C4G + Swap que torturarte con una máquina de 1 GB.
A continuación se usa como ejemplo un VPS con Ubuntu/Debian.
Primero actualiza el sistema:
apt update && apt upgrade -y
Instala Docker:
curl -fsSL https://get.docker.com | bash
systemctl enable --now docker
Instala el plugin de Compose:
docker compose version
Si no se muestra ninguna versión, instálalo:
apt install -y docker-compose-plugin
En una máquina con 4 GB de memoria se recomienda activar Swap primero:
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Confirma:
free -h
Swap no es una maravilla de rendimiento, pero puede evitar que el sistema mate directamente a Dify al indexar documentos.
Dify recomienda oficialmente iniciar desde la configuración de Docker del repositorio. El proceso es aproximadamente:
cd /opt
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
Luego modifica primero .env. Como mínimo, presta atención a esto:
vim .env
Comprobaciones sugeridas:
SECRET_KEY: no uses el valor predeterminado;CONSOLE_WEB_URL: dirección del panel;APP_WEB_URL: dirección que usan los usuarios para acceder a la aplicación;FILES_URL: dirección de acceso a archivos;- Contraseña de la base de datos: no uses la contraseña débil predeterminada;
- Concurrencia del Worker: no la pongas demasiado alta en máquinas con poca memoria.
Inicia:
docker compose up -d
Ver contenedores:
docker compose ps
Ver registros:
docker compose logs -f api
El primer arranque será bastante lento, sobre todo al descargar imágenes e inicializar la base de datos. No pulses Ctrl+C solo porque no pasa nada durante un minuto.
En producción, no dejes que los usuarios accedan directamente a puertos aleatorios. Se recomienda usar Nginx o Caddy como proxy inverso hacia el servicio Web de Dify.
Si ya tienes Nginx, puedes escribir una configuración básica así:
server {
listen 80;
server_name dify.example.com;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Si usas el contenedor Nginx integrado de Dify, ten cuidado de que los puertos no entren en conflicto con el Nginx del host en 80/443. Muchos fallos de despliegue se deben a que dos Nginx quieren escuchar en el 80.
La forma más sencilla es:
- Los servicios internos de Dify solo escuchan en puertos locales;
- El Nginx del host gestiona HTTPS de forma unificada;
- Si subes documentos, aumenta
client_max_body_size.
Los certificados pueden usar Certbot:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d dify.example.com
El principal atractivo de Dify es la base de conocimiento. Un flujo mínimo utilizable es:
- Crear una base de conocimiento en el panel;
- Subir PDF, Markdown, TXT o contenido web;
- Configurar el método de segmentación;
- Elegir un modelo de Embedding;
- Esperar a que termine la indexación;
- Crear una aplicación de chat y asociar la base de conocimiento;
- Probar si las preguntas logran coincidir con el contenido de los documentos.
Para documentos en chino se recomienda no hacer segmentos demasiado largos. Puedes empezar con esta configuración:
| Parámetro | Sugerencia |
|---|---|
| Longitud del segmento | 300-600 caracteres chinos |
| Proporción de solapamiento | 10%-15% |
| Método de recuperación | Preferir recuperación híbrida si está disponible |
| Top K | Empezar con 3-5 |
| Umbral de similitud | Primero bajo y luego alto, para evitar no encontrar nada al principio |
Si tus documentos son descripciones de producto, tutoriales o FAQ, los segmentos pueden ser más cortos; si son informes largos, artículos académicos o contratos, los segmentos pueden ser algo más largos, pero presta atención a la continuidad del contexto.
Muchas personas sienten que RAG "no es preciso" la primera vez que lo usan. La causa normalmente no es que el modelo sea malo, sino que la segmentación de documentos es demasiado gruesa, no se incluyen los títulos, el modelo de Embedding no es adecuado para chino o el umbral de recuperación está demasiado estricto.
Dify admite varios proveedores de modelos. Opciones habituales:
| Opción | Escenario adecuado |
|---|---|
| DeepSeek | Preguntas y respuestas en chino, uso de bajo coste |
| OpenAI / Claude | Calidad más estable, mayor coste |
| Gemini | Escenarios de contexto largo |
| Plataformas agregadoras como SiliconFlow | Querer conectar modelos de código abierto y modelos nacionales |
| Ollama | Mantener los datos fuera de la máquina local en lo posible, pero la configuración del VPS debe ser suficiente |
Si el VPS solo tiene 4 GB u 8 GB, no recomiendo ejecutar modelos grandes en la misma máquina desde el principio. Conecta primero API externas, haz que Dify funcione de forma estable y luego considera Ollama.
Si ya tienes la pasarela de API de IA del artículo anterior, puedes apuntar el proveedor de modelos de Dify a tu propia pasarela New-API / One-API, de modo que modelos, Keys y estadísticas de uso se gestionen de forma unificada.
Con 4 GB puede funcionar, pero hay que contenerse un poco.
Acciones sugeridas:
# 看内存
free -h
# 看容器资源
docker stats
Luego controla la concurrencia del Worker en .env o en la configuración de Compose. Los campos pueden cambiar entre versiones; antes de desplegar, consulta la documentación oficial actual y .env.example. El principio es: en una máquina pequeña, no dejes que el worker procese demasiadas tareas a la vez.
Además:
- No subas miles de páginas de documentos de una vez;
- Prueba la indexación primero en pequeños lotes;
- Usa API externas para el Embedding en lo posible, no fuerces modelos grandes en la misma máquina;
- Limpia periódicamente documentos y aplicaciones que no uses;
- Haz copias de seguridad de PostgreSQL, no solo de los archivos de Docker Compose.
Lo más importante en Dify es la base de datos, los archivos subidos y la configuración.
Como mínimo hay que hacer copia de seguridad de:
- Datos de PostgreSQL;
- Volúmenes de Docker;
.env;- Directorio de archivos subidos;
- Configuración de plugins o extensiones personalizadas.
Una idea sencilla para la copia de seguridad de PostgreSQL:
mkdir -p /opt/backups/dify
# 容器名以 docker compose ps 实际输出为准
docker exec -t docker-db-1 pg_dump -U postgres dify \
> /opt/backups/dify/dify-$(date +%F).sql
Luego usa rclone para sincronizar con almacenamiento de objetos u otro servidor. Las copias de seguridad guardadas solo en el mismo VPS no tienen sentido; si el disco falla, desaparecen todas juntas.
Esta también es una forma de uso muy práctica.
Dify se encarga del "pensamiento de la IA":
- Leer la base de conocimiento;
- Generar respuestas;
- Determinar la intención del usuario;
- Procesar prompts complejos.
n8n se encarga de la "ejecución de acciones":
- Escuchar formularios, Webhooks y correo;
- Llamar a la API de Dify;
- Escribir los resultados de vuelta en Notion, Feishu, WeCom o bases de datos;
- Ejecutar tareas programadas.
Por ejemplo: un cliente envía un problema posventa, n8n recibe el Webhook, envía la pregunta a Dify, Dify consulta la base de conocimiento de producto y genera una respuesta, y n8n envía el resultado al grupo de atención al cliente. Esta combinación funciona mejor que usar n8n solo o Dify solo.
Primero revisa los registros del worker:
docker compose logs -f worker
Las causas habituales son memoria insuficiente, configuración de Embedding incorrecta, Key del proveedor de modelos incorrecta o fallo al analizar el formato del archivo.
Revisa Nginx:
client_max_body_size 100m;
También hay que revisar los límites del propio Dify y de la capa de proxy inverso. El plan gratuito de Cloudflare también tiene límites de tamaño de subida; no culpes a Dify de todos los problemas.
Primero comprueba si el VPS es demasiado pequeño:
docker stats
Si PostgreSQL, worker y api compiten por la memoria, una máquina de 4 GB se notará claramente lenta. Puedes activar Swap, pero para cargas altas a largo plazo se recomienda actualizar a 8 GB.
No te apresures a cambiar el modelo. Comprueba en orden:
- Si el documento se indexó correctamente;
- Si los resultados de recuperación incluyen los párrafos correctos;
- Si los segmentos son demasiado largos o demasiado cortos;
- Si el Embedding es adecuado para chino;
- Si el prompt exige "responder solo según la base de conocimiento".
Los problemas de RAG muchas veces son problemas de recuperación, no de generación.
Si solo quieres probar Dify, un VPS 2C4G puede servir, pero activa Swap obligatoriamente y no subas demasiados documentos de una vez.
Si piensas usarlo a largo plazo, sobre todo para un equipo o clientes, ir directamente a 4C8G te ahorrará muchos quebraderos de cabeza. Dify no es el tipo de herramienta que funcione cómodamente en una instancia pequeña de 512 MB; se parece más a un backend completo de aplicaciones de IA.
Yo lo implementaría así:
- Empezar las pruebas con 2C4G, usar 8 GB para el entorno a largo plazo;
- Desplegar la versión oficial con Docker Compose;
- Usar Nginx/Caddy para HTTPS;
- Hacer funcionar primero los modelos por API externa;
- Subir documentos en pequeños lotes para probar RAG;
- Ajustar segmentación, Embedding y Top K;
- Hacer copia de seguridad diaria de PostgreSQL y los volúmenes;
- Si ya tienes n8n, usar n8n para llamar a la API de Dify y automatizar.
El verdadero valor de Dify no es "otro sitio de chat con IA más", sino permitirte conectar tus propios documentos, procesos de negocio y modelos. Para los usuarios de VPS, es uno de los proyectos de IA autoalojados que más merece la pena explorar en 2026.