[{"data":1,"prerenderedAt":188},["ShallowReactive",2],{"seo-verification":3,"blog-como-alojar-privategpt-en-un-vps-ma-es":6,"promo-bar-likely":187},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-como-alojar-privategpt-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":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":129,"ctaBody":130,"ctaButton":131,"ctaUrl":132,"relatedPosts":133},16,"como-alojar-privategpt-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"heberger-privategpt-vps","how-to-host-privategpt-on-a-vps","كيفية-استضافة-privategpt-على-خادم-vps","Cómo alojar PrivateGPT en un VPS","Despliegue PrivateGPT en un VPS para consultar sus documentos confidenciales con una IA RAG 100% sin conexión, sin fugas de datos.",9,1,false,"2026-06-04T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},"Inteligencia Artificial","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[28],{"id":18,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-privategpt-vps-poster.svg",{"categorySlug":33,"appSlug":34},"inteligencia-artificial","private-gpt","PrivateGPT permite hacer preguntas a sus propios documentos (PDF, Word, correos) mediante una IA, sin que ningún dato salga de su infraestructura. Es una solución RAG pensada para la confidencialidad absoluta. Alojarla en un VPS le ofrece un asistente documental privado y accesible a distancia.",[37,41,51,54,86,89,98,120,123,126],{"type":38,"title":39,"body":40},"h2","Por qué autoalojar PrivateGPT en un VPS","PrivateGPT está diseñado en torno al RAG (Retrieval-Augmented Generation): ingiere sus documentos, los divide en fragmentos, calcula embeddings almacenados en una base vectorial (Qdrant por defecto, en modo disco local) y después responde a las preguntas apoyándose en ese corpus y citando los pasajes utilizados. Desde la versión 1.0, publicada en junio de 2026, PrivateGPT ya no ejecuta los modelos por sí mismo: se conecta a un servidor de inferencia compatible con OpenAI (Ollama, llama.cpp o vLLM) que usted instala a su lado, en el mismo VPS. El LLM, los embeddings y el índice permanecen así en su máquina y ninguna consulta sale hacia un proveedor de IA.\n\nEn un VPS dedicado obtiene un asistente documental de empresa aislado del equipo de cada persona, con una base de conocimiento centralizada que todo el equipo consulta, sin exponer nunca contratos, expedientes de RR. HH. o documentos jurídicos a un servicio en la nube. El reto también es jurídico: pegar un documento con datos personales en una API de IA alojada convierte a ese proveedor en encargado del tratamiento según el RGPD, y el tratamiento debe regirse por un contrato (\u003Ca href=\"https:\u002F\u002Feur-lex.europa.eu\u002Flegal-content\u002FES\u002FTXT\u002F?uri=CELEX:32016R0679\">artículo 28, apartado 3\u003C\u002Fa>). Un tratamiento que se queda en su propio servidor no añade ese eslabón.",{"type":42,"title":43,"items":44},"ul","Beneficios concretos del autoalojamiento",[45,46,47,48,49,50],"Confidencialidad total: documentos, embeddings e índice Qdrant nunca salen del VPS","Respuestas con fuentes: cada respuesta se apoya en los pasajes encontrados en sus archivos, no en la memoria general del modelo","Ningún coste de API si el modelo se ejecuta localmente con Ollama o llama.cpp","Ingesta de PDF, DOCX, PPTX, EPUB, CSV, Markdown, archivos de correo `.mbox` e incluso imágenes o audio, organizados en colecciones","API de tipo Messages (calcada de la especificación de la API de Anthropic) para conectar PrivateGPT con sus herramientas internas","Cumplimiento más sencillo para datos sensibles (RGPD, secreto profesional): ningún encargado de IA adicional",{"type":38,"title":52,"body":53},"PrivateGPT y Ollama: dos papeles complementarios","A menudo se confunden ambas herramientas, aunque ocupan dos pisos distintos de la pila. \u003Ca href=\"\u002Fes\u002Fblog\u002Fcomo-alojar-ollama-en-un-vps\">Ollama\u003C\u002Fa> es un **servidor de modelos**: descarga LLM y modelos de embeddings, los carga en memoria y expone una API en el puerto `11434`. No sabe nada de sus archivos: responde a partir del contexto que se le envía.\n\nPrivateGPT (repositorio \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzylon-ai\u002Fprivate-gpt\">zylon-ai\u002Fprivate-gpt\u003C\u002Fa>, licencia Apache-2.0) es la **capa de aplicación RAG**: indexa sus documentos, recupera los pasajes pertinentes para cada pregunta y los inyecta en el contexto enviado a Ollama. En la 1.0 nunca funciona solo: sin un servidor de inferencia accesible, arranca sin ningún modelo.",{"type":55,"title":56,"headers":57,"rows":61},"comparison","PrivateGPT frente a Ollama: quién hace qué",[58,59,60],"Criterio","PrivateGPT 1.0","Ollama",[62,66,70,74,78,82],[63,64,65],"Papel","Aplicación RAG: ingesta, búsqueda, respuestas citadas","Servidor de inferencia: carga y ejecuta los modelos",[67,68,69],"Ejecuta el modelo","No: lo delega en un servidor compatible con OpenAI","Sí, en CPU o GPU",[71,72,73],"Lectura de sus archivos","Sí: PDF, DOCX, CSV, `.mbox`… por colecciones","No: contexto aportado a mano",[75,76,77],"Base vectorial","Qdrant (disco local por defecto)","Ninguna",[79,80,81],"Interfaz","Workbench en `\u002Fui`, sin control de acceso","API REST, sin interfaz web en el servidor",[83,84,85],"Puerto por defecto","`8080`","`11434`, ligado a `127.0.0.1`",{"type":38,"title":87,"body":88},"Requisitos de hardware y software","La memoria se dimensiona según el modelo que sirve Ollama, no según PrivateGPT. Los modelos propuestos por defecto en la documentación apuntan a una máquina con GPU (`qwen3.5:35b`, unos 24 GB de descarga): en un VPS con CPU, elija una variante más ligera de la misma familia, `qwen3.5:4b` (de 3,3 a 4 GB) o `qwen3.5:9b` (de 6,6 a 7,6 GB), más `mxbai-embed-large` (unos 670 MB) para los embeddings. Cuente con 8 GB de RAM para la variante 4b y 16 GB para la 9b, para dejar sitio al sistema, a Qdrant y a los documentos en plena ingesta, y al menos 4 vCPU: en CPU, el número de núcleos marca la velocidad de generación.\n\nPrevea 30 GB de disco, idealmente NVMe, para los modelos, el índice Qdrant y los documentos ingeridos: la ingesta de un PDF grande lee y escribe mucho. En cuanto al software: Docker (o Python 3.11 y `uv` si instala el paquete fuera de un contenedor), Ollama y un dominio que apunte al VPS para exponer la interfaz detrás de un proxy inverso.",{"type":42,"title":90,"items":91},"Lista de comprobación antes de la instalación",[92,93,94,95,96,97],"VPS con **8 GB de RAM como mínimo** (16 GB para un modelo de 9 mil millones de parámetros) y 4 vCPU","Debian 12 o Ubuntu 24.04 actualizados, acceso SSH con `sudo`","Docker instalado (`docker version` responde) o, en su defecto, `uv` con Python 3.11","30 GB de disco libre, NVMe preferiblemente, para los modelos y `local_data\u002F`","Un subdominio (por ejemplo `docs.su-dominio.com`) que apunte a la IP del VPS","Cortafuegos activo: solo SSH, 80 y 443 abiertos; los puertos `8080` y `11434` siguen cerrados",{"type":99,"title":100,"steps":101},"steps","Despliegue de PrivateGPT en modo local",[102,105,108,111,114,117],{"title":103,"body":104},"Instalar Ollama y descargar los modelos","Instale Ollama con el script oficial y descargue después un LLM adaptado a CPU y el modelo de embeddings recomendado:\n\n```bash\ncurl -fsSL https:\u002F\u002Follama.com\u002Finstall.sh | sh\nollama pull qwen3.5:4b\nollama pull mxbai-embed-large\n```\n\nPor defecto, Ollama solo escucha en `127.0.0.1:11434`: déjelo así, solo PrivateGPT necesita alcanzarlo. Es el único paso que requiere Internet; una vez instalados los modelos, la inferencia se realiza sin conexión.",{"title":106,"body":107},"Lanzar PrivateGPT con Docker","La imagen oficial `zylonai\u002Fprivate-gpt` incluye el paquete `core`. En Linux, el contenedor debe compartir la red del host para llegar a Ollama en `localhost`, y un volumen debe conservar los datos; de lo contrario, los documentos ingeridos desaparecen al reiniciar:\n\n```bash\nmkdir -p \u002Fopt\u002Fprivategpt\u002Flocal_data\ndocker run -d --name privategpt --restart unless-stopped \\\n  --network host \\\n  -e OPENAI_API_BASE=http:\u002F\u002Flocalhost:11434\u002Fv1 \\\n  -v \u002Fopt\u002Fprivategpt\u002Flocal_data:\u002Fhome\u002Fworker\u002Fapp\u002Flocal_data \\\n  zylonai\u002Fprivate-gpt:latest\n```\n\nAl arrancar, PrivateGPT consulta `GET \u002Fv1\u002Fmodels` en Ollama y registra automáticamente los modelos encontrados: no hace falta ningún archivo de configuración. La variable `OPENAI_EMBEDDING_API_BASE` solo es útil si sus embeddings se sirven en otro lugar.",{"title":109,"body":110},"Ingerir sus documentos por colección","Envíe sus archivos a la API de ingesta agrupándolos por colección, por ejemplo una colección por expediente de cliente o por departamento:\n\n```bash\ncurl -X POST http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fartifacts\u002Fingest \\\n  -F \"file=@\u002Fsrv\u002Fdocuments\u002Fcontrat-cession.pdf\" \\\n  -F \"collection=juridico\"\ncurl \"http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fartifacts\u002Flist?collection=juridico\"\n```\n\nPrivateGPT divide, vectoriza e indexa cada archivo en Qdrant. Los formatos sin lector dedicado se leen como texto plano.",{"title":112,"body":113},"Consultar el corpus con citas","Pruebe primero en el Workbench (`http:\u002F\u002Flocalhost:8080\u002Fui`) y conecte después sus herramientas a la API Messages. La búsqueda documental pasa por la herramienta integrada `semantic_search_v1`, restringida a una colección:\n\n```bash\ncurl http:\u002F\u002Flocalhost:8080\u002Fv1\u002Fmessages \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"model\": \"qwen3.5:4b\",\n       \"messages\": [{\"role\": \"user\", \"content\": \"¿Cuáles son las condiciones suspensivas del contrato?\"}],\n       \"tools\": [{\"name\": \"buscar_docs\", \"type\": \"semantic_search_v1\",\n                  \"context\": [{\"type\": \"ingested_artifact\", \"context_filter\": {\"collection\": \"juridico\"}}]}]}'\n```",{"title":115,"body":116},"Configurar el proxy inverso, el SSL y la autenticación","El Workbench no tiene ningún control de acceso: la documentación lo reserva a un uso local. Expóngalo únicamente detrás de Nginx o Caddy, con un certificado Let's Encrypt y una autenticación básica:\n\n```bash\nserver {\n    listen 443 ssl;\n    server_name docs.su-dominio.com;\n    ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Fdocs.su-dominio.com\u002Ffullchain.pem;\n    ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Fdocs.su-dominio.com\u002Fprivkey.pem;\n    auth_basic           \"Acceso restringido\";\n    auth_basic_user_file \u002Fetc\u002Fnginx\u002F.htpasswd;\n    location \u002F { proxy_pass http:\u002F\u002F127.0.0.1:8080; }\n}\n```\n\nSi solo lo usan dos o tres personas, un túnel SSH (`ssh -L 8080:127.0.0.1:8080 user@su-vps`) evita incluso cualquier exposición pública.",{"title":118,"body":119},"Bloquear el acceso","PrivateGPT escucha por defecto en `0.0.0.0`, de modo que la red del host publica el puerto `8080` en todas las interfaces. Ciérrelo en el cortafuegos para dejar accesible solo el proxy inverso:\n\n```bash\nufw default deny incoming\nufw allow OpenSSH\nufw allow 80,443\u002Ftcp\nufw enable\n```\n\nSus usuarios pasan entonces por `https:\u002F\u002Fdocs.su-dominio.com` y consultan el corpus en lenguaje natural.",{"type":121,"body":122},"tip","Ollama no sabe anunciar la ventana de contexto de sus modelos, y PrivateGPT solo estima entonces los tokens de forma aproximada: con documentos largos, las respuestas pueden llegar truncadas. Declare `context_window` explícitamente en un perfil de modelo (archivo `settings-\u003Cnombre>.yaml`, activado con `PGPT_PROFILES`), con un valor claramente inferior al límite real del modelo. Fije también su modelo de embeddings desde el principio: cambiarlo después provoca un error «Embedding dimensions mismatch» y obliga a reindexar todo el corpus (`embed_dim` vale 1024 para `mxbai-embed-large`).",{"type":38,"title":124,"body":125},"Hacer copias de seguridad y comprobar que ningún dato sale","**Qué respaldar.** El estado completo de PrivateGPT cabe en `\u002Fopt\u002Fprivategpt\u002Flocal_data` (índice Qdrant en `local_data\u002Fqdrant`, archivos ingeridos), además de sus documentos de origen y sus posibles perfiles `settings-*.yaml`. Los modelos de Ollama se pueden volver a descargar, no hace falta respaldarlos. Detenga el contenedor durante la copia (`docker stop privategpt`) o copie una instantánea del volumen: un índice copiado durante una ingesta puede quedar incoherente. Para varias instancias o un equipo numeroso, la documentación recomienda un servidor Qdrant independiente en lugar del modo disco local.\n\n**Controlar el tráfico saliente.** La confidencialidad es una propiedad de la arquitectura, y se comprueba. Durante una serie de preguntas, enumere las conexiones establecidas: solo deben aparecer las de PrivateGPT hacia `127.0.0.1:11434`, las del proxy inverso y su sesión SSH.\n\n```bash\nss -tnp state established\n```\n\nCualquier conexión saliente inesperada merece una explicación antes de confiar documentos sensibles a la herramienta.",{"type":38,"title":127,"body":128},"Solución de problemas: los errores más frecuentes","**PrivateGPT arranca sin ningún modelo.** Ollama no estaba en marcha al iniciar el contenedor, o `OPENAI_API_BASE` es incorrecta: la URL debe terminar en `\u002Fv1`. Compruébelo con `curl http:\u002F\u002Flocalhost:11434\u002Fv1\u002Fmodels` y reinicie el contenedor (`docker restart privategpt`).\n\n**«Connection refused» desde el contenedor.** En un contenedor con red bridge, `localhost` designa al propio contenedor. En Linux, mantenga `--network host`; en macOS o Windows, apunte a `host.docker.internal`.\n\n**«Embedding dimensions mismatch» durante la ingesta.** El índice se construyó con otro modelo de embeddings. Vuelva al modelo original o vacíe el almacén vectorial (`make wipe` en el repositorio) y vuelva a ingerir los documentos.\n\n**Respuestas truncadas en documentos largos.** La ventana de contexto está mal estimada: declare `context_window` en un perfil de modelo (vea el consejo anterior).\n\n**Ollama terminado en plena respuesta.** El núcleo se quedó sin memoria (OOM): `dmesg | grep -i oom` lo confirma. Pase a una variante más pequeña del modelo o amplíe la RAM.\n\n**«Address already in use» al arrancar.** El puerto `8080` ya está ocupado: en Docker, defina la variable `PORT` (por ejemplo `-e PORT=8090`); fuera de un contenedor, use la opción `--port` de `private-gpt serve`, y adapte después el `proxy_pass` de Nginx.","Construya su asistente documental privado","El VPS Cloud de ServOrbit aporta la RAM y el almacenamiento SSD necesarios para ejecutar PrivateGPT y su base vectorial Qdrant en local, con Docker preconfigurado para un despliegue RAG rápido.","Desplegar en un VPS Cloud","\u002Fapplications\u002Finteligencia-artificial\u002Fprivate-gpt",[134,152,169],{"id":135,"slug":136,"slugs":137,"title":141,"excerpt":142,"readTime":17,"views":143,"isPinned":19,"noindex":19,"publishedAt":144,"updatedAt":145,"category":146,"categories":147,"featuredImage":29,"bgImage":30,"posterImage":149,"relatedSolution":150},11,"como-alojar-ollama-en-un-vps",{"fr":138,"en":139,"ar":140,"es":136},"heberger-ollama-vps","how-to-host-ollama-on-a-vps","كيفية-استضافة-ollama-على-خادم-vps","Alojar Ollama en un VPS: guía operativa avanzada","Ollama avanzado en VPS: gestión de modelos, reverse proxy nginx, seguridad de la API, cuantización Q4_K_M\u002FQ8, CVE-2026-45672 en Open WebUI y acoplamiento seguro.",3,"2026-06-09T00:00:00+00:00","2026-11-04T16:30:24+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},[148],{"id":18,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-ollama-vps-poster.svg",{"categorySlug":33,"appSlug":151},"ollama",{"id":153,"slug":154,"slugs":155,"title":159,"excerpt":160,"readTime":161,"views":162,"isPinned":19,"noindex":19,"publishedAt":163,"updatedAt":164,"category":165,"categories":166,"featuredImage":29,"bgImage":30,"posterImage":168,"relatedSolution":29},316,"open-webui-ollama-en-vps-interfaz-web-multiusuario-para-llm",{"fr":156,"en":157,"ar":158,"es":154},"open-webui-ollama-vps","open-webui-ollama-on-vps-multi-user-interface-for-local-llms","واجهة-ويب-open-webui-مع-ollama-على-vps-للفرق","Open-WebUI + Ollama en VPS: interfaz web multiusuario para LLM","Ofrece a todo tu equipo una interfaz web multiusuario sobre tus modelos Ollama: RAG, gestión de modelos, SSO con OpenID Connect — sin dependencia de la nube.",18,7,"2026-08-30T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":18,"name":23,"slug":24,"color":25,"icon":26},[167],{"id":18,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fopen-webui-ollama-vps-poster.svg",{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":18,"isPinned":19,"noindex":19,"publishedAt":179,"updatedAt":180,"category":181,"categories":182,"featuredImage":29,"bgImage":30,"posterImage":184,"relatedSolution":185},2,"desplegar-dify-en-un-vps",{"fr":173,"en":174,"ar":175,"es":171},"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":18,"name":23,"slug":24,"color":25,"icon":26},[183],{"id":18,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-dify-vps-poster.svg",{"categorySlug":24,"appSlug":186},"dify",true,1794270571684]