[{"data":1,"prerenderedAt":167},["ShallowReactive",2],{"seo-verification":3,"blog-como-alojar-langflow-en-un-vps-ma-es":6,"promo-bar-likely":158},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-como-alojar-langflow-en-un-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":109,"ctaBody":110,"ctaButton":111,"ctaUrl":112,"relatedPosts":113},10,"como-alojar-langflow-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"heberger-langflow-vps","how-to-host-langflow-on-a-vps","كيفية-استضافة-langflow-على-خادم-vps","Alojar LangFlow en un VPS: guía completa con Docker y HTTPS","Despliegue LangFlow en su VPS con Docker, PostgreSQL y un reverse proxy nginx en HTTPS. Instalación paso a paso, API, RAG, componentes Python y solución de problemas.",13,2,false,"2026-06-10T00:00:00+00:00","2026-11-04T16:30:24+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},1,"Inteligencia Artificial","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-langflow-vps-poster.svg",{"categorySlug":34,"appSlug":35},"inteligencia-artificial","langflow","LangFlow es un editor visual de pipelines de IA — RAG, chatbots, agentes LangChain — que se ejecuta en su navegador y expone cada flujo como una API REST. Alojado en su VPS, se convierte en un taller privado y compartible: sus flujos, sus claves API y su historial de ejecución permanecen bajo su control, sin pasar por un SaaS externo. Esta guía cubre la instalación completa con Docker Compose, PostgreSQL, reverse proxy nginx y HTTPS — y va más allá: llamar a un flujo desde Python o curl, pipeline RAG sobre documentos, componentes personalizados y actualización sin pérdida de datos.",[38,42,53,56,84,87,90,93,96,99,103,106],{"type":39,"title":40,"body":41},"h2","Por qué alojar LangFlow en un VPS","LangFlow responde a un caso de uso preciso: diseñar pipelines de IA arrastrando y soltando componentes — modelos LLM, retrievers, prompts, memoria, agentes — y probarlos después sin escribir una sola línea de código. Es la alternativa visual a LangChain en modo solo código, pensada para los equipos que quieren iterar rápido antes de fijar una lógica en Python.\n\nEn un VPS obtiene una instancia estable y persistente, accesible para todo el equipo, a diferencia de una instalación local que desaparece al reiniciar. Sus flujos codifican a menudo una lógica de negocio sensible — cadenas de prompts, claves API, conectores hacia sus bases de datos. Estos datos no deben transitar por un SaaS cuya política de retención usted no controla.\n\nLangFlow se apoya en FastAPI en el lado del servidor y expone cada flujo como un endpoint REST: sus aplicaciones pueden llamar directamente a sus pipelines de IA, sin código intermedio. Es esta combinación — interfaz visual para el diseño, API para la integración — la que lo convierte en una herramienta de prototipado seria para casos como el RAG documental, los chatbots de asistencia, los agentes multi-etapa o los pipelines de clasificación.",{"type":43,"title":44,"items":45},"ul","Lo que gana con una instancia autoalojada",[46,47,48,49,50,51,52],"**Interfaz visual de pipelines** — arrastre componentes LLM, retriever, memoria y prompt a un canvas, conéctelos y pruebe sin código.","**Conectores LLM variados** — OpenAI, Anthropic, Ollama (local), Hugging Face y cualquier proveedor compatible con la API de OpenAI.","**RAG integrado** — cargue documentos PDF o de texto, chunking, embedding y búsqueda vectorial en el mismo flujo.","**API automática por flujo** — cada pipeline se convierte en un endpoint REST invocable desde cualquier aplicación.","**Variables globales cifradas** — sus claves API se almacenan en el servidor, nunca quedan expuestas en el código del cliente.","**Componentes Python personalizados** — amplíe LangFlow con su propia lógica de negocio sin bifurcar el proyecto.","**Control de versiones de los flujos** — expórtelos en JSON y versiónelos en Git, con independencia del estado de la base de datos.",{"type":39,"title":54,"body":55},"Requisitos previos antes de empezar","LangFlow consume más memoria que una herramienta web clásica: su motor de ejecución carga modelos y embeddings en RAM. Prevea como mínimo **2 vCPU y 4 GB de RAM** para un uso cómodo. Si conecta un modelo Ollama local para la inferencia en el mismo VPS, suba a 8 GB como mínimo.\n\nEn el plano del software, necesita Docker (versión 24 o superior) y Docker Compose v2, instalados y en funcionamiento. El puerto `7860` debe ser accesible en local (LangFlow escucha en ese puerto por defecto). No exponga este puerto directamente a Internet: el reverse proxy nginx se encarga de ello.\n\nPrepare un subdominio que apunte a la IP de su VPS — por ejemplo `langflow.su-dominio.com` — con los registros DNS ya propagados antes de lanzar certbot. Por último, la base de datos PostgreSQL es muy recomendable en producción: el SQLite predeterminado se corrompe bajo carga concurrente y no soporta el acceso simultáneo de varios usuarios.",{"type":57,"title":58,"steps":59},"steps","Instalar LangFlow con Docker Compose y PostgreSQL",[60,63,66,69,72,75,78,81],{"title":61,"body":62},"Crear el directorio de trabajo","Conéctese por SSH a su VPS y cree la carpeta que alojará la stack:\n\n```bash\nmkdir -p \u002Fopt\u002Flangflow && cd \u002Fopt\u002Flangflow\n```",{"title":64,"body":65},"Escribir el archivo docker-compose.yml","Cree un archivo `docker-compose.yml` con dos servicios y un `healthcheck` en postgres para garantizar que LangFlow espere a que la base esté lista:\n\n```yaml\nservices:\n  postgres:\n    image: postgres:16\n    restart: unless-stopped\n    environment:\n      POSTGRES_USER: langflow\n      POSTGRES_PASSWORD: contraseña-fuerte\n      POSTGRES_DB: langflow\n    volumes:\n      - pgdata:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n    healthcheck:\n      test: [\"CMD-SHELL\", \"pg_isready -U langflow\"]\n      interval: 10s\n      retries: 5\n\n  langflow:\n    image: langflowai\u002Flangflow:latest\n    restart: unless-stopped\n    ports:\n      - \"127.0.0.1:7860:7860\"\n    environment:\n      LANGFLOW_DATABASE_URL: postgresql:\u002F\u002Flangflow:contraseña-fuerte@postgres:5432\u002Flangflow\n      LANGFLOW_SECRET_KEY: cambie-este-valor-por-una-cadena-aleatoria\n      LANGFLOW_AUTO_LOGIN: \"false\"\n      LANGFLOW_SUPERUSER: admin\n      LANGFLOW_SUPERUSER_PASSWORD: contraseña-admin-fuerte\n    depends_on:\n      postgres:\n        condition: service_healthy\n\nvolumes:\n  pgdata:\n```",{"title":67,"body":68},"Lanzar la stack","Arranque los dos contenedores en segundo plano:\n\n```bash\ndocker compose up -d\n```\n\nSiga los logs de LangFlow durante la primera inicialización (creación del esquema en base de datos, aproximadamente de 30 segundos a 1 minuto):\n\n```bash\ndocker compose logs -f langflow\n```\n\nEspere la línea que indica que el servidor escucha en el puerto `7860` antes de continuar.",{"title":70,"body":71},"Comprobar que la interfaz responde","Desde su VPS, compruebe que LangFlow responde localmente antes de configurar el proxy:\n\n```bash\ncurl -s http:\u002F\u002F127.0.0.1:7860\u002Fhealth\n```\n\nLa respuesta esperada es `{\"status\":\"ok\"}`. Si obtiene un error de conexión rechazada, los logs de inicio contienen la causa.",{"title":73,"body":74},"Configurar el reverse proxy nginx con HTTPS","Instale nginx y certbot si aún no lo ha hecho, y cree un archivo de configuración:\n\n```nginx\nserver {\n    listen 80;\n    server_name langflow.su-dominio.com;\n    return 301 https:\u002F\u002F$host$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    server_name langflow.su-dominio.com;\n\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Flangflow.votre-domaine.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Flangflow.votre-domaine.com\u002Fprivkey.pem;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:7860;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n}\n```\n\nObtenga el certificado con certbot:\n\n```bash\ncertbot --nginx -d langflow.votre-domaine.com\n```",{"title":76,"body":77},"Iniciar sesión y crear un primer flujo","Abra `https:\u002F\u002Flangflow.su-dominio.com` en su navegador. Inicie sesión con las credenciales definidas en `LANGFLOW_SUPERUSER` y `LANGFLOW_SUPERUSER_PASSWORD`. En la interfaz, haga clic en **New Flow**, elija una plantilla o parta de un canvas vacío. Añada un componente LLM, un prompt y un componente de salida, conéctelos y haga clic en **Run** para probar el pipeline.",{"title":79,"body":80},"Guardar las claves API en las variables globales","En lugar de introducir sus claves API en cada componente, utilice las **Variables globales** (icono en la parte superior derecha): la clave se cifra en base de datos y puede reutilizarse en todos sus flujos. Desde el menú **API** de un flujo, obtiene el código de llamada `curl` o Python para integrar ese pipeline en una aplicación externa.",{"title":82,"body":83},"Hacer copia de seguridad de los flujos y de la base de datos","Programe un `pg_dump` diario de la base de datos desde el host:\n\n```bash\ndocker exec langflow-postgres-1 pg_dump -U langflow langflow > \u002Fopt\u002Fbackups\u002Flangflow-$(date +%F).sql\n```\n\nExporte también sus flujos en JSON desde el menú **Export** de cada flujo: es una red de seguridad versionable en Git, independiente del estado de la base de datos.",{"type":39,"title":85,"body":86},"Llamar a un flujo desde una aplicación: API REST","Cada flujo LangFlow es accesible mediante el endpoint `\u002Fapi\u002Fv1\u002Frun\u002F\u003Cflow-id>`. Encuentre el identificador del flujo en la URL del editor o en el menú **API** del flujo. Dos ejemplos concretos.\n\n**Con curl:**\n\n```bash\ncurl -s -X POST \\\n  https:\u002F\u002Flangflow.su-dominio.com\u002Fapi\u002Fv1\u002Frun\u002FSU-FLOW-ID \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"x-api-key: SU-CLAVE-API\" \\\n  -d '{\n    \"input_value\": \"¿Cuál es la capital de Francia?\",\n    \"input_type\": \"chat\",\n    \"output_type\": \"chat\"\n  }'\n```\n\n**Con Python (biblioteca `requests`):**\n\n```python\nimport requests\n\nFLOW_ID = \"SU-FLOW-ID\"\nBASE_URL = \"https:\u002F\u002Flangflow.su-dominio.com\"\nAPI_KEY = \"SU-CLAVE-API\"\n\nresponse = requests.post(\n    f\"{BASE_URL}\u002Fapi\u002Fv1\u002Frun\u002F{FLOW_ID}\",\n    headers={\n        \"Content-Type\": \"application\u002Fjson\",\n        \"x-api-key\": API_KEY,\n    },\n    json={\n        \"input_value\": \"¿Cuál es la capital de Francia?\",\n        \"input_type\": \"chat\",\n        \"output_type\": \"chat\",\n    },\n    timeout=60,\n)\n\nresult = response.json()\nprint(result[\"outputs\"][0][\"outputs\"][0][\"results\"][\"message\"][\"text\"])\n```\n\nLa clave API se genera en **Settings → API Keys** de la interfaz LangFlow. Autentifica cada llamada y puede revocarse en cualquier momento sin tocar el flujo. Para llamadas desde un servicio Node.js, la estructura es idéntica con `fetch` o `axios` — el endpoint REST es agnóstico al lenguaje.",{"type":39,"title":88,"body":89},"Pipeline RAG: indexar sus documentos y consultarlos","El RAG (Retrieval-Augmented Generation) es el caso de uso central de LangFlow: carga documentos (PDF, texto, Markdown), los divide en fragmentos, los embebe en una base vectorial y un LLM responde preguntas usando ese contexto.\n\n**¿Qué VectorStore en un VPS?** En un servidor con recursos limitados, **Chroma** (ChromaDB) es la opción más liviana: se ejecuta en el mismo contenedor LangFlow sin servicio adicional y persiste sus datos en un directorio local. **Qdrant** es adecuado si dispone de más RAM y quiere un servicio dedicado en un contenedor vecino.\n\n**Construir el pipeline de indexación en LangFlow:**\n\nEn el editor, ensamble la siguiente cadena arrastrando los componentes:\n\n1. **File** (o **Directory**) → carga el PDF o la carpeta de documentos.\n2. **Split Text** → divide en fragmentos (tamaño recomendado: 500 a 800 tokens, superposición 50).\n3. **OpenAI Embeddings** (u **Ollama Embeddings** para permanecer completamente local) → transforma cada fragmento en un vector.\n4. **Chroma DB** → almacena los vectores. Apunte el campo **Persist Directory** hacia un volumen montado en Docker para que el índice sobreviva a los reinicios.\n\nPara el volumen Chroma, añada en su `docker-compose.yml`:\n\n```yaml\n  langflow:\n    volumes:\n      - chromadb:\u002Fdata\u002Fchroma\n\nvolumes:\n  pgdata:\n  chromadb:\n```\n\nY defina en LangFlow la variable global `CHROMA_PERSIST_DIR` con el valor `\u002Fdata\u002Fchroma`.\n\n**Pipeline de consulta:**\n\nUna vez poblado el índice, cree un segundo flujo (o una rama del mismo): **Text Input** → **Chroma DB** (en modo búsqueda, con el mismo directorio) → **Prompt** (inyecte los fragmentos recuperados) → **LLM** → **Chat Output**. Cada pregunta desencadena una búsqueda vectorial, recupera los pasajes más cercanos y los envía al modelo con el contexto.",{"type":39,"title":91,"body":92},"Componentes personalizados: ampliar LangFlow con Python","LangFlow permite crear componentes Python a medida sin bifurcar el proyecto. Un componente es una clase que hereda de `Component` y declara sus entradas, sus salidas y su lógica.\n\nEjemplo mínimo — un componente que limpia y convierte el texto a mayúsculas:\n\n```python\nfrom langflow.custom import Component\nfrom langflow.io import MessageTextInput, Output\nfrom langflow.schema import Data\n\nclass UpperCaseComponent(Component):\n    display_name = \"Uppercase Text\"\n    description = \"Convierte el texto a mayúsculas.\"\n\n    inputs = [\n        MessageTextInput(\n            name=\"input_text\",\n            display_name=\"Texto de entrada\",\n        )\n    ]\n\n    outputs = [\n        Output(\n            display_name=\"Texto procesado\",\n            name=\"output_text\",\n            method=\"process_text\",\n        )\n    ]\n\n    def process_text(self) -> Data:\n        result = self.input_text.strip().upper()\n        return Data(text=result)\n```\n\nPara añadir este componente a su instancia: en la interfaz LangFlow, vaya a **Settings → Custom Components**, pegue el código y guarde. El componente aparece de inmediato en la barra lateral, listo para arrastrarlo a cualquier flujo. Puede encapsular así cualquier lógica de negocio — llamada a una API interna, transformación de datos, acceso a una base propia — y exponerla como un bloque reutilizable en todos sus flujos.",{"type":39,"title":94,"body":95},"Actualizar LangFlow sin perder sus datos","LangFlow publica actualizaciones con regularidad (la rama 1.x es la rama estable activa en octubre de 2026). Antes de cualquier actualización, haga sistemáticamente una copia de seguridad de la base:\n\n```bash\ndocker exec langflow-postgres-1 pg_dump -U langflow langflow \\\n  > \u002Fopt\u002Fbackups\u002Flangflow-antes-actualizacion-$(date +%F).sql\n```\n\nActualice la imagen y reinicie la stack:\n\n```bash\ncd \u002Fopt\u002Flangflow\ndocker compose pull\ndocker compose up -d\n```\n\nSiga los logs para detectar posibles migraciones automáticas del esquema:\n\n```bash\ndocker compose logs -f langflow\n```\n\n**Puntos de atención en las actualizaciones v1.x.** Las versiones 1.x pueden incluir migraciones de base de datos (el contenedor las aplica al arrancar). Si un flujo deja de funcionar tras la actualización, consulte el `CHANGELOG` en GitHub (`langflow-ai\u002Flangflow`) para identificar los **breaking changes**: algunos componentes se renombran o refactorizan entre versiones menores. Exporte sus flujos en JSON antes de la actualización — es la forma más rápida de restaurarlos a un estado conocido si una migración causa problemas.\n\nSi desea fijar una versión concreta (recomendado en producción), sustituya `latest` por el tag deseado en su `docker-compose.yml`:\n\n```yaml\nimage: langflowai\u002Flangflow:1.12.4\n```",{"type":39,"title":97,"body":98},"Configuración avanzada: variables de entorno útiles","LangFlow expone varias variables de entorno para adaptar la instancia a su contexto. `LANGFLOW_SECRET_KEY` cifra los datos sensibles almacenados en base de datos — cambie el valor por defecto antes del primer arranque, pues una rotación posterior invalida los datos cifrados existentes. `LANGFLOW_AUTO_LOGIN` en `false` obliga siempre a un inicio de sesión explícito, incluso desde `localhost`. `LANGFLOW_WORKERS` controla el número de procesos Uvicorn: el valor predeterminado (`1`) es adecuado para un uso moderado; auméntelo a `2` o `4` si varios usuarios ejecutan flujos simultáneamente.\n\nPara los flujos que llaman a modelos locales mediante Ollama, defina `OLLAMA_BASE_URL` en las variables globales de LangFlow en lugar de en el entorno Docker: el valor se gestiona entonces desde la interfaz y puede cambiarse sin reinicio.\n\nSi actualiza LangFlow, haga siempre un `pg_dump` antes de `docker compose pull && docker compose up -d`: algunas actualizaciones de versión modifican el esquema de la base de datos.",{"type":100,"title":101,"body":102},"tip","Seguridad: no exponer LangFlow directamente en Internet","LangFlow no incorpora rate limiting en sus endpoints API. Sin medidas complementarias, un flujo expuesto públicamente puede ser invocado sin límite por cualquiera que conozca la URL. Dos enfoques se complementan.\n\nEn primer lugar, deje `LANGFLOW_AUTO_LOGIN=false` de forma permanente y cree cuentas de usuario distintas para cada miembro del equipo. En segundo lugar, si sus flujos solo deben ser invocados por sus propias aplicaciones (y no por usuarios directos), añada un bloqueo `auth_basic` de nginx delante de la interfaz de gestión y exponga únicamente los endpoints `\u002Fapi\u002Fv1\u002Frun\u002F\u003Cflow-id>` con autenticación por token a sus aplicaciones.\n\nNunca deje LangFlow en producción con SQLite: la base de datos se corrompe bajo accesos concurrentes y pierde sus flujos sin mensaje de error explícito.",{"type":39,"title":104,"body":105},"Solución de errores ampliada: errores frecuentes","**Error OOM (Out of Memory).** Si el contenedor LangFlow se reinicia espontáneamente, consulte `docker compose logs langflow` y busque `Killed`. La causa es la falta de RAM. Reduzca `LANGFLOW_WORKERS` a `1` y, si el problema persiste, aumente la RAM del VPS o evite ejecutar flujos pesados simultáneamente.\n\n**`RuntimeError: CUDA out of memory`.** Este error ocurre cuando un componente intenta usar una GPU (vía PyTorch o un modelo Hugging Face) y el VPS no dispone de una, o la memoria GPU es insuficiente. Fuerce la ejecución en CPU añadiendo la variable de entorno `CUDA_VISIBLE_DEVICES=\"\"` al servicio langflow en `docker-compose.yml`. Si el error proviene de un modelo Hugging Face, seleccione una variante CPU (sufijo `-cpu` o `gguf`) en el componente.\n\n**Puerto 7860 ya en uso.** Si `docker compose up -d` falla con `address already in use`, otro proceso escucha en ese puerto. Identifíquelo con `ss -tlnp | grep 7860` y deténgalo, o cambie el puerto host en `docker-compose.yml` (por ejemplo `\"127.0.0.1:7861:7860\"`) y actualice la configuración nginx en consecuencia.\n\n**`ImportError: No module named 'torch'` o dependencia faltante.** Algunos componentes avanzados (embeddings Hugging Face, modelos locales) requieren bibliotecas pesadas no incluidas en la imagen base. Cree un `Dockerfile` derivado que instale las dependencias faltantes, o utilice la imagen `langflowai\u002Flangflow-backend` con los extras necesarios.\n\n**Conexión rechazada a Ollama.** Si LangFlow no puede contactar con Ollama en el mismo VPS, compruebe que Ollama escucha en `0.0.0.0` y no solo en `127.0.0.1`. En `docker-compose.yml`, añada `extra_hosts: [\"host-gateway:host-gateway\"]` al servicio LangFlow y use la dirección `http:\u002F\u002Fhost-gateway:11434` en los componentes Ollama.\n\n**Canvas en blanco o WebSocket cortado.** Compruebe que las cabeceras `Upgrade` y `Connection` se transmiten correctamente por nginx. Un proxy intermedio (Cloudflare en modo Full Strict, balanceador de carga) puede interceptar los WebSockets: asegúrese de que el protocolo WebSocket esté correctamente configurado en el proxy.\n\n**Logs de flujo ausentes o incompletos.** LangFlow almacena los logs de ejecución en base de datos. Si PostgreSQL no estaba listo cuando LangFlow arrancó, las primeras solicitudes fallan en silencio. El `healthcheck` del ejemplo de `docker-compose.yml` anterior resuelve este problema.",{"type":39,"title":107,"body":108},"Próximos pasos: ampliar su instancia LangFlow","Una vez LangFlow operativo, varias integraciones amplían su ámbito de uso.\n\nSi desea un modelo LLM completamente local (sin llamadas a una API externa), instale Ollama en el mismo VPS y conéctelo a LangFlow mediante el componente **Ollama**: sus pipelines dejan de enviar datos fuera de su infraestructura. Ollama expone una API compatible con OpenAI en el puerto `11434`.\n\nPara un RAG documental más robusto, pase de Chroma a **Qdrant** — una base vectorial de código abierto que despliega en un contenedor vecino y que ofrece buen rendimiento con grandes corpus (varios decenas de miles de documentos).\n\nPor último, si varios equipos utilizan la instancia, plantéese aislar los flujos por espacio de trabajo (función disponible según la versión) o desplegar una instancia LangFlow por proyecto con la plantilla ServOrbit, que configura automáticamente Docker Compose, PostgreSQL y el reverse proxy.","Aloje LangFlow en un VPS dedicado","Despliegue su propia instancia de LangFlow en unos minutos en un VPS ServOrbit — confidencialidad total, sin límites de API, acceso HTTPS seguro con certificado TLS incluido.","Desplegar LangFlow","\u002Fapplications\u002Finteligencia-artificial\u002Flangflow",[114,131,148],{"id":23,"slug":115,"slugs":116,"title":120,"excerpt":121,"readTime":122,"views":23,"isPinned":19,"noindex":19,"publishedAt":123,"updatedAt":124,"category":125,"categories":126,"featuredImage":30,"bgImage":31,"posterImage":128,"relatedSolution":129},"como-alojar-open-webui-en-un-vps",{"fr":117,"en":118,"ar":119,"es":115},"heberger-open-webui","how-to-host-open-webui-on-a-vps","كيفية-استضافة-open-webui-على-خادم-vps","Cómo alojar Open WebUI en un VPS","Guía completa para desplegar Open WebUI en su propio VPS: conserve el control de sus datos, evite pagar API en la nube y acceda a sus LLM desde el navegador.",9,"2026-06-01T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[127],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-open-webui-poster.svg",{"categorySlug":34,"appSlug":130},"open-webui",{"id":18,"slug":132,"slugs":133,"title":137,"excerpt":138,"readTime":139,"views":23,"isPinned":19,"noindex":19,"publishedAt":140,"updatedAt":141,"category":142,"categories":143,"featuredImage":30,"bgImage":31,"posterImage":145,"relatedSolution":146},"desplegar-dify-en-un-vps",{"fr":134,"en":135,"ar":136,"es":132},"deployer-dify-vps","deploying-dify-on-a-vps-ai-workflows-under-control","نشر-dify-على-vps-سير-عمل-الذكاء-الاصطناعي-تحت-السيطرة","Desplegar Dify en un VPS: guía completa de instalación y plugins","Instala Dify en un VPS de ServOrbit: requisitos, Docker Compose, plugins offline, límites de la instalación Docker, copia antes de actualizar y solución de errores.",15,"2026-02-11T00:00:00+00:00","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[144],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":25,"appSlug":147},"dify",{"id":149,"slug":150,"slugs":151,"title":155,"excerpt":156,"readTime":157,"views":23,"isPinned":19,"noindex":158,"publishedAt":159,"updatedAt":160,"category":161,"categories":162,"featuredImage":30,"bgImage":31,"posterImage":164,"relatedSolution":165},121,"alojar-openclaw-en-un-vps",{"fr":152,"en":153,"ar":154,"es":150},"heberger-openclaw-vps","hosting-openclaw-on-a-vps","استضافة-openclaw-على-خادم-vps","Alojar OpenClaw en un VPS","Aloje OpenClaw en su VPS: el asistente de IA personal open source accesible desde WhatsApp, Telegram, Discord y más de 50 apps de mensajería. Docker, LLM y HTTPS.",4,true,"2026-02-23T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[163],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-openclaw-vps-poster.svg",{"categorySlug":34,"appSlug":166},"openclaw",1794270567597]