Guía de despliegue

AnythingLLM 1.17 multiusuario en VPS: guía completa

Desplegar en un VPS Cloud →

Tutorial

AnythingLLM 1.17 multiusuario en VPS: guía completa

Inteligencia Artificial10 min de lectura10 pasos

AnythingLLM soporta el modo multiusuario desde varias versiones. La v1.17.0 (1 de octubre de 2026) va más lejos con un rol Manager dedicado, la diarización de reuniones con Nemotron 3 y Parakeet Redux, sobre la compatibilidad nativa con Google Vertex AI introducida en la v1.16.2 (22 de septiembre de 2026). Para una agencia o un desarrollador que paga una suscripción a ChatGPT Team o Claude for Teams, esta combinación replica ese modelo en autoalojamiento: espacios de trabajo aislados por cliente, RAG sobre tus propios documentos y sin datos enviados a terceros. Esta guía cubre la configuración funcional de Docker Compose, la creación de usuarios desde la interfaz Admin y los errores reales encontrados durante el montaje.

Contenido· Qué cambia la versión v1.17.0 para uso de agencias1/8
  1. 01Qué cambia la versión v1.17.0 para uso de agencias
  2. 02Requisitos previos antes de empezar
  3. 03Desplegar AnythingLLM v1.17.0 con Docker Compose
  4. 04Gestión de espacios de trabajo y roles en la práctica
  5. 05Hacer copias de seguridad y restaurar la instancia
  6. 06Resolución de errores: problemas reales en el montaje
  7. 07AnythingLLM frente a alternativas RAG autoalojadas
  8. 08Para ir más lejos con tu infraestructura IA

Qué cambia la versión v1.17.0 para uso de agencias

AnythingLLM soporta el modo multiusuario desde varias versiones. La v1.17.0 (1 de octubre de 2026) refina este sistema introduciendo un tercer rol — Manager — que puede crear espacios de trabajo, invitar usuarios y gestionar documentos sin acceder a los ajustes del sistema como claves API o configuración del LLM. Para una agencia, este rol permite delegar la administración de un cliente a un gestor de proyecto sin exponer toda la infraestructura. La diarización de reuniones ahora se apoya en Nemotron 3 para el reconocimiento del hablante y en Parakeet Redux para la transcripción — dos modelos ejecutables localmente en un VPS con GPU, o delegables a una API de Nvidia. Google Vertex AI ya estaba disponible desde la v1.16.2 (22 de septiembre de 2026) como proveedor de LLM configurable directamente desde la interfaz, sin parchear manualmente el archivo de configuración. Estas incorporaciones recientes hacen de la combinación v1.16.2 + v1.17.0 la configuración más completa para un uso multicliente estructurado.

Requisitos previos antes de empezar

  • VPS con al menos 4 GB de RAM — 2 vCPU / 4 GB para APIs cloud, 4 vCPU / 8 GB si usas un modelo de embedding local o Parakeet Redux
  • 20 GB de disco SSD — los vectores de LanceDB y la caché de documentos crecen con el corpus; deja margen
  • Docker y Docker Compose v2 — verifica con docker compose version (sin guion); la v1 (con guion) no soporta todos los healthchecks
  • Un subdominio dedicado — por ejemplo chat.your-domain.com; el puerto 3001 no debe exponerse directamente al público
  • Un proxy inverso activo — Nginx o Caddy para TLS con Let's Encrypt y límites de tamaño de subida de documentos
  • Una clave API de LLM — OpenAI, Anthropic, Vertex AI o un Ollama local ya en ejecución en el VPS
  • El puerto 3001 libre — AnythingLLM lo usa por defecto; comprueba con ss -tlnp | grep 3001 antes de lanzar

Desplegar AnythingLLM v1.17.0 con Docker Compose

  1. Crear la estructura de directorios y ajustar permisos

    Conéctate por SSH y crea el directorio de trabajo con mkdir -p /opt/anythingllm/storage. AnythingLLM ejecuta con UID 1000 dentro del contenedor; sin corregir permisos, el volumen rechaza escrituras en el primer arranque. Aplica chown -R 1000:1000 /opt/anythingllm/storage. Si usaste chmod -R 777, funciona pero amplía el acceso innecesariamente — prefiere el chown específico.

  2. Redactar el archivo docker-compose.yml

    Crea /opt/anythingllm/docker-compose.yml con el siguiente contenido. El servicio se llama anythingllm, imagen mintplexlabs/anythingllm:latest, restart: unless-stopped. Volúmenes: ./storage:/app/server/storage. Puertos: 3001:3001 (ciérralo en el firewall, solo el proxy inverso accede). Variables de entorno en la sección env_file: .env. Red: crea una red proxy compartida con tu proxy inverso para evitar exponer el puerto 3001 en la interfaz pública.

  3. Redactar el archivo .env

    Crea /opt/anythingllm/.env con al menos estas tres variables. JWT_SECRET: una cadena aleatoria de al menos 32 caracteres, generada con openssl rand -hex 32 — no la cambies nunca tras el primer arranque, todos los tokens de sesión quedarán invalidados. STORAGE_DIR: /app/server/storage (debe coincidir con la ruta objetivo del volumen). SERVER_PORT: 3001. Añade después las variables de tu proveedor LLM, por ejemplo LLM_PROVIDER=openai y OPEN_AI_KEY=sk-... para OpenAI, o LLM_PROVIDER=gemini y GEMINI_API_KEY=... para Vertex AI mediante el adaptador Gemini.

  4. Arrancar el contenedor y verificar los logs

    Desde /opt/anythingllm, ejecuta docker compose up -d. Espera 30 segundos y verifica que el servicio escucha con docker compose logs --tail=50. Debes ver la línea Server started on port 3001. Si el log muestra EACCES: permission denied, mkdir '/app/server/storage/...', el chown del paso 1 no se aplicó a la ruta correcta — repite el paso 1 y luego docker compose restart.

  5. Configurar el proxy inverso y obtener el certificado TLS

    Con Nginx, crea un vhost que proxy https://chat.your-domain.com hacia http://127.0.0.1:3001. Añade client_max_body_size 100m en el bloque server para permitir subir PDFs grandes. Solicita el certificado con certbot --nginx -d chat.your-domain.com. Con Caddy, la directiva reverse_proxy localhost:3001 es suficiente, el TLS es automático.

  6. Crear la cuenta de administrador en el primer acceso

    Abre https://chat.your-domain.com en un navegador. La interfaz te pide crear la primera cuenta de administrador — esta cuenta es la única que puede modificar las claves API, el proveedor LLM y los ajustes del sistema. Elige una contraseña segura; AnythingLLM no ofrece restablecimiento de contraseña por email en modo autoalojado sin configuración SMTP adicional.

  7. Activar el modo multiusuario e invitar a un segundo usuario

    En la interfaz Admin, ve a Settings → Security → activa Multi-user mode. Aparece un botón Invite User en el menú de usuarios. Introduce el email, elige el rol (Default o Manager) y copia el enlace de invitación generado. El rol Manager puede gestionar espacios de trabajo y documentos; el rol Default solo accede a los espacios de trabajo asignados.

  8. Crear un espacio de trabajo aislado y asignarlo a un usuario

    Desde el panel, haz clic en New Workspace y nómbralo (por ejemplo Client Dupont). Arrastra tus PDFs al espacio de trabajo y haz clic en Save & Embed para iniciar la vectorización. Una vez completado el embedding, ve a los ajustes del espacio → Manage Users y añade solo los usuarios autorizados. Los usuarios no asignados no verán este espacio de trabajo.

  9. Configurar Google Vertex AI como proveedor LLM

    En Settings → LLM Provider, selecciona Google Gemini (que usa la API de Vertex AI bajo el capó mediante el adaptador nativo disponible desde la v1.16.2). Introduce tu clave de API de Google (GEMINI_API_KEY) y elige el modelo. Si prefieres autenticación con cuenta de servicio de GCP, exporta GOOGLE_APPLICATION_CREDENTIALS hacia la ruta del archivo JSON en tu .env y reinicia el contenedor con docker compose restart.

  10. Actualizar sin perder datos

    Para actualizar a una versión superior, detén el contenedor con docker compose down, modifica la etiqueta de la imagen en docker-compose.yml (ejemplo: mintplexlabs/anythingllm:v1.17.0), luego ejecuta docker compose pull && docker compose up -d. Tus datos están en ./storage montado como volumen: sobreviven a la actualización. Revisa los logs tras el reinicio para confirmar que ninguna migración de esquema ha fallado.

Fija una etiqueta de versión específica en tu docker-compose.yml en lugar de usar la etiqueta latest. El comando docker image ls mintplexlabs/anythingllm te muestra la versión descargada actualmente. Así, una actualización solo se aplica cuando tú lo decides, y puedes hacer rollback cambiando únicamente la etiqueta y ejecutando docker compose up -d de nuevo.

Gestión de espacios de trabajo y roles en la práctica

Una vez activado el modo multiusuario, la interfaz Admin expone tres vistas distintas: Users (lista de cuentas, roles, estado activo), Workspaces (lista global con recuento de documentos y conversaciones) e Invites (enlaces de invitación pendientes). Para una agencia que gestiona diez clientes, la buena práctica es crear un workspace por cliente, asignar un usuario con rol Manager por cliente, y mantener a los colaboradores en rol Default con acceso limitado a los espacios de trabajo que les correspondan. El rol Manager no puede ver las claves API ni cambiar el proveedor LLM: este aislamiento evita que un cliente observe la configuración de otro. Las conversaciones permanecen en el workspace — no migran al mover un documento entre workspaces. Nombra tus workspaces de forma explícita desde el principio: renombrar un workspace no cambia las rutas de almacenamiento internas.

Hacer copias de seguridad y restaurar la instancia

Todo el estado de AnythingLLM cabe en el volumen ./storage: la base de datos vectorial LanceDB, los metadatos de los documentos, la configuración de la instancia y el historial de conversaciones. Una copia de seguridad consiste en archivar esta carpeta mientras el contenedor está detenido, o usar rsync hacia un almacenamiento remoto mientras el contenedor sigue en ejecución — LanceDB tolera las lecturas concurrentes. Para copias programáticas, añade un servicio cron en tu compose que ejecute tar -czf /backup/anythingllm-$(date +%Y%m%d).tar.gz /opt/anythingllm/storage. La restauración sigue el camino inverso: copia el archivo en ./storage respetando los permisos 1000:1000, luego docker compose up -d. El .env contiene el JWT_SECRET: guarda una copia por separado y cifrada, ya que perderlo invalida todas las sesiones activas y los tokens de API.

Resolución de errores: problemas reales en el montaje

Estos son los cinco errores más frecuentes y documentados al desplegar AnythingLLM v1.17.0 en un VPS, con el mensaje exacto y la corrección aplicada. Primer error: EACCES: permission denied, mkdir '/app/server/storage/vector-cache' al arrancar el contenedor. Causa: la carpeta storage pertenece a root pero el contenedor ejecuta con UID 1000. Corrección: chown -R 1000:1000 /opt/anythingllm/storage y luego docker compose restart. Segundo error: address already in use :::3001 en los logs. Causa: otro servicio ocupa el puerto. Corrección: ss -tlnp | grep 3001 para identificar el proceso conflictivo, luego detenerlo o cambiar SERVER_PORT en .env. Tercer error: Invalid JWT secret — all sessions invalidated tras un reinicio. Causa: se modificó JWT_SECRET. Corrección: restaura el valor original o pide a los usuarios que vuelvan a iniciar sesión. Cuarto error: subidas de PDF bloqueadas a 1 MB pese a la configuración. Causa: client_max_body_size definido en el bloque http de Nginx pero no en el bloque server del vhost — gana el más específico. Verifica con nginx -T | grep client_max_body_size. Quinto error: el workspace no devuelve respuestas con fuentes tras el embedding. Causa: el modelo de embedding de la ingesta difiere del activo. Corrección: elimina los documentos, cambia el modelo de embedding y vuelve a ingerir.

AnythingLLM frente a alternativas RAG autoalojadas

Desplace la tabla

CriterioAnythingLLM v1.17.0Open WebUILibreChatPrivateGPT
RAG documental integradoSí — PDF, Word, URL, Notion, GitHubImportación básica sin pipeline RAGVia plugin RAG (config manual)Sí — optimizado para documentos confidenciales
Modo multiusuarioAdmin / Manager / Default — soportado de forma nativa, rol Manager refinado en v1.17.0Gestión de usuarios básicaSí con roles por conversaciónNo — monousuario por defecto
Espacios de trabajo aislados por clienteSí — aislamiento nativo por workspaceNo — conversaciones compartidasLimitado — por conversación únicamenteNo
Proveedores LLM soportadosMás de 20 (Ollama, OpenAI, Vertex AI, Anthropic…)Ollama + compatibles OpenAIOpenAI, Azure, Anthropic, Ollama…Ollama y compatibles con OpenAI
Diarización de reunionesSí — Nemotron 3 + Parakeet Redux (v1.17.0)NoNoNo
RAM mínima (API cloud)~512 MB~256 MB~384 MB~512 MB
Constructor de agentes IA sin códigoSíNoNoNo
LicenciaMITMITMITApache 2.0

Para ir más lejos con tu infraestructura IA

AnythingLLM v1.17.0 cubre el caso de uso RAG multicliente en un solo VPS. Si tu corpus supera varios millones de vectores, considera externalizar la base vectorial a Qdrant en un contenedor vecino — AnythingLLM lo soporta de forma nativa desde los ajustes de la instancia. Para equipos que quieren comparar interfaces antes de decidir, el artículo sobre Open WebUI, LibreChat y Dify detalla los criterios de selección según el perfil de uso. Si tus documentos están sujetos a requisitos estrictos de confidencialidad, el artículo sobre PrivateGPT explica cómo trabajar en modo completamente local sin ninguna llamada de red saliente.

Tu entorno AnythingLLM listo en minutos

La plantilla VPS de AnythingLLM del catálogo ServOrbit preconfigura el entorno Docker, los volúmenes y los permisos al arrancar — llegas directamente al paso de creación de la cuenta de administrador.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva