[{"data":1,"prerenderedAt":191},["ShallowReactive",2],{"seo-verification":3,"blog-como-alojar-anythingllm-en-un-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-como-alojar-anythingllm-en-un-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":137,"ctaBody":138,"ctaButton":139,"ctaUrl":140,"relatedPosts":141},9,"como-alojar-anythingllm-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"heberger-anythingllm-vps","how-to-host-anythingllm-on-a-vps","كيفية-استضافة-anythingllm-على-خادم-vps","AnythingLLM en VPS: guía completa con trampas a evitar","Aloje AnythingLLM en un VPS: Docker, HTTPS y fijado de versión obligatorio. Trampas documentadas: :latest, Gemini v1.16 y la red Docker de Ollama.",8,0,false,"2026-06-11T00:00:00+00:00","2026-09-07T11:26:10+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-anythingllm-vps-poster.svg",{"categorySlug":34,"appSlug":35},"inteligencia-artificial","anything-llm","AnythingLLM convierte sus documentos internos en una base de conocimiento consultable por chat, con gestión multiusuario y espacios de trabajo aislados. Al alojarlo en su VPS, obtiene un asistente RAG privado conectado a sus propios archivos, sin confiar sus PDF confidenciales a un servicio externo. Esta guía cubre el despliegue paso a paso, pero también las trampas reales señaladas por la comunidad — entre ellas una que borra definitivamente sus embeddings si descarga la etiqueta `:latest` sin precaución.",[38,42,54,57,61,86,89,91],{"type":39,"title":40,"body":41},"h2","Por qué autoalojar AnythingLLM en un VPS","AnythingLLM es ante todo un motor RAG completo: ingesta de documentos, fragmentación, vectorización, búsqueda semántica y generación, todo ello en una interfaz multiusuario accesible desde un navegador. El núcleo del asunto son los datos: informes financieros, contratos, documentación de producto, base de conocimiento de soporte. Estos archivos no tienen por qué pasar por un proveedor SaaS de ingesta externo.\n\nEn un VPS, el motor de incrustación de documentos, la base vectorial (LanceDB integrado por defecto) y el historial de conversaciones permanecen en sus volúmenes Docker — nunca duplicados en otro lugar sin su consentimiento. Usted controla quién accede a cada espacio de trabajo, elige libremente el LLM (API en la nube o modelo local mediante Ollama) y escapa a las cuotas de ingesta de los planes SaaS que limitan el número de páginas o de archivos.\n\nPara una agencia que gestiona varios clientes, cada espacio de trabajo se convierte en un silo estanco: documentos compartimentados, permisos por rol, ninguna fuga entre equipos. Para una empresa, lo que prima es el cumplimiento normativo: los datos permanecen en su infraestructura, en su jurisdicción, bajo su política de copias de seguridad.",{"type":43,"title":44,"items":45},"ul","Las ventajas concretas de un AnythingLLM autoalojado",[46,47,48,49,50,51,52,53],"Documentos confidenciales indexados localmente, nunca enviados a un servicio de ingesta externo.","Espacios de trabajo compartimentados por cliente o por equipo, con gestión detallada de los roles (Administrador, Manager, Standard).","Base vectorial a elegir: LanceDB integrado para empezar, Chroma o Qdrant externo para los corpus grandes.","Conexión a más de 20 proveedores de LLM, incluido un Ollama local para cero nube y cero coste de inferencia.","Ningún límite en el número de documentos, de páginas o de espacios de trabajo ingeridos.","Copia de seguridad simple y portátil: todo el estado cabe en un único volumen `storage` que archivar o replicar.","Agentes de IA no-code integrados: cree canalizaciones de automatización sin salir de la interfaz.","API REST completa para integrar AnythingLLM en sus propias aplicaciones o scripts de automatización.",{"type":39,"title":55,"body":56},"Requisitos de hardware y software","El contenedor AnythingLLM es razonable en recursos, pero la incrustación de un corpus grande consume CPU y RAM de forma significativa. Apunte a **2 vCPU \u002F 2 GB de RAM** para empezar con algunos cientos de documentos y un LLM en API en la nube. Suba a **4 vCPU \u002F 8 GB** si indexa miles de documentos, utiliza un modelo de incrustación local o ejecuta Ollama en el mismo host.\n\nPrevea **15 a 20 GB de disco** como mínimo: los vectores y la caché de documentos crecen rápido, sobre todo con PDF densos o corpus multilingües. Añada margen si despliega también Qdrant u Ollama en el mismo VPS.\n\nEn cuanto al software, necesita:\n- **Docker** y **Docker Compose** (v2 recomendado)\n- Un **nombre de dominio** o subdominio que apunte a su VPS (ej. `chat.votre-domaine.com`)\n- El puerto **443** abierto en entrada en su cortafuegos\n- Una clave de API de LLM (OpenAI, Anthropic, Mistral…) si no utiliza Ollama en local\n\n**Nota importante sobre las versiones**: antes de cualquier comando `docker pull`, lea la sección Fijado de versión más abajo. Descargar `:latest` sin precaución puede borrar definitivamente sus embeddings.",{"type":58,"title":59,"body":60},"tip","Fijado de versión: crítico e irreversible","**No utilice nunca la etiqueta `:latest` en producción.** Un `docker pull mintplexlabs\u002Fanythingllm:latest` puede sobrescribir la clave de cifrado interna de los embeddings almacenados en su volumen, dejando todos sus documentos vectorizados **ilegibles de forma permanente** — sin posibilidad de recuperación.\n\nEste comportamiento está documentado como breaking change desde marzo de 2026 (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMintplex-Labs\u002Fanything-llm\u002Fissues\u002F5256\">incidencia GitHub #5256\u003C\u002Fa>).\n\nLa regla a seguir: fije siempre una versión concreta en su `docker-compose.yml`:\n\n```yaml\nimage: mintplexlabs\u002Fanythingllm:v1.8.4\n```\n\nAntes de actualizar, lea las release notes de cada versión intermedia, haga una copia de seguridad completa de su volumen `storage` y pruebe la subida de versión en una copia antes de aplicarla en producción.",{"type":62,"title":63,"steps":64},"steps","Desplegar AnythingLLM con Docker y HTTPS",[65,68,71,74,77,80,83],{"title":66,"body":67},"Crear la estructura de directorios y los permisos","Por SSH en su VPS, cree el directorio de trabajo y el volumen de datos:\n\n```bash\nmkdir -p \u002Fopt\u002Fanythingllm\u002Fstorage\ncd \u002Fopt\u002Fanythingllm\nchmod -R 777 storage\n```\n\nEl contenedor se ejecuta con un UID dedicado (no root): los permisos `777` sobre `storage` son necesarios para que el proceso interno pueda escribir la base vectorial y las cargas de documentos.",{"title":69,"body":70},"Escribir el docker-compose.yml con una versión fijada","Cree `\u002Fopt\u002Fanythingllm\u002Fdocker-compose.yml`. Fíjese en la etiqueta de versión fija — **no ponga `:latest`**:\n\n```yaml\nservices:\n  anythingllm:\n    image: mintplexlabs\u002Fanythingllm:v1.8.4\n    container_name: anythingllm\n    restart: unless-stopped\n    ports:\n      - \"3001:3001\"\n    volumes:\n      - .\u002Fstorage:\u002Fapp\u002Fserver\u002Fstorage\n    env_file:\n      - .env\n    cap_add:\n      - SYS_ADMIN\n```\n\nLuego cree `.env` en la misma carpeta con al menos:\n\n```bash\nJWT_SECRET=changez-moi-par-une-chaine-aleatoire-longue\nSTORAGE_DIR=\u002Fapp\u002Fserver\u002Fstorage\nLLM_PROVIDER=openai\nOPEN_AI_KEY=sk-votre-cle-openai\n```\n\nSustituya `LLM_PROVIDER` y la clave según su proveedor. Para Ollama local, vea el paso siguiente.",{"title":72,"body":73},"Configurar Ollama si opta por el 100 % local","Si Ollama se ejecuta en el **mismo host** que el contenedor AnythingLLM, **no utilice `localhost`** — desde dentro del contenedor, `localhost` designa al propio contenedor, no al host.\n\nURL correcta según el sistema operativo:\n- **Linux**: `http:\u002F\u002F172.17.0.1:11434` (dirección del bridge Docker por defecto)\n- **macOS \u002F Windows**: `http:\u002F\u002Fhost.docker.internal:11434`\n\nEn su `.env`:\n\n```bash\nLLM_PROVIDER=ollama\nOLLAMA_BASE_PATH=http:\u002F\u002F172.17.0.1:11434\nOLLAMA_MODEL_PREF=llama3.2\nEMBEDDING_ENGINE=ollama\nEMBEDDING_BASE_PATH=http:\u002F\u002F172.17.0.1:11434\nEMBEDDING_MODEL_PREF=nomic-embed-text\n```\n\nCompruebe que Ollama escucha realmente en `0.0.0.0` (no solo en `127.0.0.1`) verificando `OLLAMA_HOST=0.0.0.0` en su unidad systemd o en su variable de entorno.",{"title":75,"body":76},"Arrancar el contenedor y crear la cuenta de administrador","Lance el servicio:\n\n```bash\ndocker compose up -d\ndocker compose logs -f\n```\n\nEspere las líneas `[server] Listening on port 3001` y `[database] Migration complete`. Luego acceda a `http:\u002F\u002Fvotre-ip:3001` desde su equipo (acceso temporal, que conviene cortar tras configurar el reverse proxy). El asistente de configuración le guía para crear la cuenta de administrador y elegir el modelo de incrustación y el LLM.",{"title":78,"body":79},"Poner en marcha el reverse proxy con HTTPS","Con **Nginx** (ejemplo mínimo) o **Caddy**, exponga AnythingLLM detrás de su dominio.\n\nEjemplo Caddy (el más simple, Let's Encrypt automático):\n\n```\nchat.votre-domaine.com {\n    reverse_proxy localhost:3001\n    request_body {\n        max_size 100MB\n    }\n}\n```\n\nEjemplo Nginx (bloque `server`):\n\n```nginx\nserver {\n    listen 443 ssl;\n    server_name chat.votre-domaine.com;\n    ssl_certificate \u002Fetc\u002Fletsencrypt\u002Flive\u002Fchat.votre-domaine.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fchat.votre-domaine.com\u002Fprivkey.pem;\n    client_max_body_size 100M;\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:3001;\n        proxy_set_header Host $host;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n    }\n}\n```\n\nLa directiva `client_max_body_size` (Nginx) o `max_size` (Caddy) es imprescindible para permitir la carga de PDF grandes o de archivos comprimidos de documentos.",{"title":81,"body":82},"Crear un espacio de trabajo, ingerir documentos y probar","En la interfaz, haga clic en «+ Nuevo espacio de trabajo», dele un nombre y luego arrastre algunos PDF a la zona de carga. Lance la incrustación (botón «Guardar e incrustar»). Una vez terminado, formule una pregunta en el chat — las respuestas deben citar las fuentes extraídas de sus archivos.\n\nSi las citas no aparecen, compruebe en los ajustes del espacio de trabajo que el modo RAG está bien activado (opción «Chat mode» → «Query») y que el número de fragmentos devueltos es superior a 0.",{"title":84,"body":85},"Activar el modo multiusuario y asegurar el acceso","En Ajustes → Multi-User Mode, active el modo multiusuario. Invite a sus colaboradores por correo electrónico y asigne los roles: **Administrador** (acceso total), **Manager** (gestión de los espacios de trabajo), **Standard** (solo uso).\n\nRestrinja cada usuario únicamente a los espacios de trabajo que le conciernen. Desde la interfaz de administración también puede configurar un SSO o una autenticación externa si su proveedor de LLM lo admite.",{"type":39,"title":87,"body":88},"Solución de problemas: las tres trampas más frecuentes","Estos tres problemas aparecen con regularidad en la comunidad de AnythingLLM. Conocerlos antes de desplegar le ahorrará horas de depuración.\n\n**Trampa 1 — `:latest` borra sus embeddings (crítico, irreversible)**\n\nSi actualiza su contenedor con `docker pull mintplexlabs\u002Fanythingllm:latest`, una nueva versión puede sobrescribir la clave de cifrado de los embeddings almacenada en su volumen. Resultado: todos sus documentos vectorizados quedan ilegibles, sin posibilidad de recuperación. Este breaking change está documentado desde marzo de 2026 (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMintplex-Labs\u002Fanything-llm\u002Fissues\u002F5256\">incidencia #5256\u003C\u002Fa>). **Solución**: fije siempre una etiqueta de versión concreta (`v1.8.4`, `v1.9.x`…) en su `docker-compose.yml` y no haga nunca un `pull` sin copia de seguridad previa del volumen `storage`.\n\n**Trampa 2 — Los agentes Gemini están rotos desde la v1.16**\n\nDesde AnythingLLM v1.16, el proveedor Gemini produce un error de conexión en streaming que permanece abierto indefinidamente y bloquea al agente (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMintplex-Labs\u002Fanything-llm\u002Fissues\u002F6153\">incidencia #6153\u003C\u002Fa>, todavía abierta). **Solución alternativa**: desactive el proveedor Gemini en los ajustes de LLM y utilice en su lugar un endpoint compatible con OpenAI (ej. `gemini-openai-compatible`) o pase a Ollama. No intente depurar del lado de la red — el problema está en la gestión del stream del lado de AnythingLLM.\n\n**Trampa 3 — Ollama inaccesible desde el contenedor**\n\nSi Ollama está instalado directamente en el host (fuera de Docker), configurar `http:\u002F\u002Flocalhost:11434` en AnythingLLM no funciona: desde dentro del contenedor, `localhost` apunta al propio contenedor, no al host. Utilice `http:\u002F\u002F172.17.0.1:11434` en Linux (IP del bridge Docker) o `http:\u002F\u002Fhost.docker.internal:11434` en macOS\u002FWindows. Compruebe también que Ollama escucha en `0.0.0.0` y no únicamente en `127.0.0.1` (variable `OLLAMA_HOST=0.0.0.0` en el servicio systemd).",{"type":58,"body":90},"Para corpus voluminosos (más de 10 000 fragmentos), no se quede en LanceDB integrado: despliegue Qdrant en un contenedor vecino sobre la misma red Docker y apunte AnythingLLM hacia él mediante la variable `VECTOR_DB=qdrant` y `QDRANT_ENDPOINT=http:\u002F\u002Fqdrant:6333`. Qdrant gestiona mejor los millones de vectores, ofrece filtrado por metadatos y sigue siendo consultable de forma independiente, lo que facilita la depuración de sus búsquedas semánticas. El volumen de Qdrant también se guarda con facilidad: basta con un simple `docker cp` o una instantánea del volumen.",{"type":92,"title":93,"headers":94,"rows":97},"comparison","AnythingLLM vs Open WebUI: ¿qué espacio de trabajo de IA elegir?",[5,95,96],"AnythingLLM","Open WebUI",[98,102,106,110,114,118,122,126,130,134],[99,100,101],"Objetivo principal","RAG documental + agentes de IA","Interfaz de chat para LLM",[103,104,105],"RAG \u002F ingesta de documentos","Integrado (PDF, Word, URL, Notion, GitHub…)","Importación de archivos básica",[107,108,109],"Constructor de agentes de IA","Sí (no-code)","No",[111,112,113],"Proveedores de LLM","Más de 20 (Ollama, OpenAI, Anthropic, Mistral…)","Ollama + compatibles OpenAI",[115,116,117],"Roles multiusuario","Administrador \u002F Manager \u002F Standard","Gestión de usuarios básica",[119,120,121],"API REST","API completa de documentos y chat","Limitada",[123,124,125],"Base vectorial","LanceDB integrado + intercambiable (Qdrant, Chroma…)","Externa mediante la configuración RAG",[127,128,129],"RAM (solo API, sin LLM local)","~512 MB","~256 MB",[131,132,133],"Riesgo :latest","Crítico — borra los embeddings","Menos documentado",[135,136,136],"Licencia","MIT","Su base de conocimiento de IA privada en un VPS Cloud ServOrbit","El VPS Cloud ServOrbit aporta el almacenamiento y la RAM necesarios para indexar sus documentos y ejecutar AnythingLLM con total confidencialidad. Elija su tamaño según su corpus y escale a demanda a medida que este crece.","Iniciar mi VPS Cloud","\u002Fvps-cloud",[142,159,175],{"id":23,"slug":143,"slugs":144,"title":148,"excerpt":149,"readTime":150,"views":18,"isPinned":19,"publishedAt":151,"updatedAt":152,"category":153,"categories":154,"featuredImage":30,"bgImage":31,"posterImage":156,"relatedSolution":157},"como-alojar-open-webui-en-un-vps",{"fr":145,"en":146,"ar":147,"es":143},"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.",4,"2026-06-01T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[155],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-open-webui-poster.svg",{"categorySlug":34,"appSlug":158},"open-webui",{"id":160,"slug":161,"slugs":162,"title":166,"excerpt":167,"readTime":17,"views":18,"isPinned":19,"publishedAt":168,"updatedAt":21,"category":169,"categories":170,"featuredImage":30,"bgImage":31,"posterImage":172,"relatedSolution":173},2,"desplegar-dify-en-un-vps",{"fr":163,"en":164,"ar":165,"es":161},"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","Instale Dify en un VPS ServOrbit: requisitos reales, Docker Compose, plugins offline, reverse proxy y solución de problemas.","2026-02-11T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[171],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":25,"appSlug":174},"dify",{"id":176,"slug":177,"slugs":178,"title":182,"excerpt":183,"readTime":150,"views":18,"isPinned":19,"publishedAt":184,"updatedAt":21,"category":185,"categories":186,"featuredImage":30,"bgImage":31,"posterImage":188,"relatedSolution":189},121,"alojar-openclaw-en-un-vps",{"fr":179,"en":180,"ar":181,"es":177},"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.","2026-02-23T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[187],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-openclaw-vps-poster.svg",{"categorySlug":34,"appSlug":190},"openclaw",1789665009629]