AnythingLLM — это open-source приложение, которое превращает любую LLM в корпоративную RAG-систему с веб-интерфейсом, многопользовательским доступом и собственной базой знаний. Проект набрал 61 800 звезд на GitHub и стал стандартом для self-hosted RAG.

Главное отличие от связки Ollama + Open WebUI в том, что AnythingLLM делает RAG своей основной фичей, а не надстройкой. Вы загружаете PDF, Word, код — и система сама разбивает документы на чанки, индексирует эмбеддинги в векторной базе и отвечает на вопросы по содержимому. Без единой строчки кода.

В этом гайде разберём установку на VPS через Docker, подключение Ollama с локальной LLM, настройку рабочих пространств и HTTPS. Всё, что нужно, чтобы за вечер получить полноценную корпоративную базу знаний.

61,8K Звёзд на GitHub
6,7K Форков
20+ Поддерживаемых LLM
8 Векторных БД

Архитектура: как это работает под капотом

Архитектура AnythingLLM с Ollama и векторной БД

Архитектура AnythingLLM: пользователи подключаются через браузер, AnythingLLM в Docker работает с Ollama (LLM + эмбеддинги) и собственной векторной базой данных

AnythingLLM состоит из нескольких слоёв:

Веб-интерфейс. React-приложение, которое работает как SPA. Поддерживает многопользовательский режим с разделением по workspace. Каждый пользователь видит только свои рабочие пространства, если админ не открыл общий доступ.

Бэкенд на Node.js. Обрабатывает запросы, управляет сессиями, пересылает промпты к LLM и эмбеддингам. Всё общение с Ollama идёт по HTTP API.

Провайдер LLM. AnythingLLM поддерживает более 20 провайдеров: Ollama (локально), OpenAI, Anthropic, Google Gemini, Azure OpenAI, LM Studio, Groq, Together AI, OpenRouter. Можно переключаться между ними прямо из интерфейса без перезапуска сервера.

Векторная база данных. По умолчанию AnythingLLM использует LanceDB (встраиваемая, не требует отдельного сервера). Можно подключить Pinecone, Chroma, Weaviate, Qdrant, Milvus и другие. LanceDB отлично подходит для небольших и средних баз знаний — до 100K документов.

Обработка документов. Поддерживаются PDF, TXT, CSV, Word, PowerPoint, Excel, Markdown, HTML, JSON, код. Система сама извлекает текст, разбивает на чанки, генерирует эмбеддинги и складывает в векторную БД. Размер чанка и перекрытие настраиваются в GUI.

Установка AnythingLLM на VPS через Docker

AnythingLLM можно установить четырьмя способами: десктопное приложение (Windows/Mac/Linux), Docker (однопользовательский и многопользовательский), Docker Compose и Kubernetes. Для бизнеса выбираем Docker на VPS.

Минимальные требования к VPS: 2 vCPU, 2 ГБ RAM (для AnythingLLM без Ollama), 20 ГБ диска. Если ставите Ollama на тот же сервер, закладывайте +8 ГБ RAM на модель в 7B параметров и +16 ГБ для 13B.

Важно. Лучшая практика — ставить AnythingLLM и Ollama на разные серверы. AnythingLLM на VPS с минимальными ресурсами, Ollama — на сервере с GPU (или на домашней машине с видеокартой). Связь между ними — через VPN-туннель (L2TP/IPsec) или HTTPS с аутентификацией.

Создаём директорию и docker-compose.yml:

mkdir -p /var/lib/anythingllm/storage
mkdir -p ~/anythingllm
cd ~/anythingllm

cat > docker-compose.yml << 'EOF'
services:
  anythingllm:
    image: mintplexlabs/anythingllm
    container_name: anythingllm
    ports:
      - "127.0.0.1:3001:3001"
    environment:
      - STORAGE_DIR=/app/server/storage
    restart: unless-stopped
    volumes:
      - /var/lib/anythingllm/storage:/app/server/storage
      - /var/lib/anythingllm/.env:/app/server/.env
EOF

Запускаем контейнер:

docker compose up -d

Порт 3001 мы привязали только к localhost — наружу смотрит Nginx с HTTPS. Это стандартная практика безопасности для self-hosted приложений.

Подключение Ollama: LLM + эмбеддинги

После запуска AnythingLLM открываем браузер, переходим на http://ваш-сервер:3001 и проходим первичную настройку. Выбираем многопользовательский режим (Multi-user), если это корпоративная версия.

В меню настроек переходим к провайдерам LLM:

Шаг 1. Основная модель. Выбираем провайдер Ollama, указываем Base URL (например, http://10.10.10.1:11434 для связи через VPN, или http://ollama-сервер:11434 для прямого доступа). AnythingLLM сам подтянет список доступных моделей. Для русского языка рекомендую qwen2.5:7b или qwen2.5:14b — они отлично работают с RAG и не уступают Llama-3 по качеству.

Шаг 2. Модель эмбеддингов. Выбираем nomic-embed-text из Ollama. Эмбеддинги нужны для векторизации загруженных документов. Без них RAG не работает.

Шаг 3. Размер чанка. По умолчанию AnythingLLM ставит 1000 токенов с наложением 200. Для технических документов и кода можно увеличить до 2000 — контекст не теряется. Для контрактов и юридических текстов лучше оставить 1000.

Шаг 4. Системный промпт. Задаётся отдельно для каждого workspace. Можно указать: «Ты — эксперт по продукту компании. Отвечай строго на основе загруженных документов. Если информации нет, скажи об этом честно».

Рабочие пространства и база знаний

Рабочие пространства (workspaces) — ключевая фича AnythingLLM для бизнеса. Каждое пространство — это изолированная среда со своей базой знаний, настройками LLM и системным промптом.

Пример настройки для трёх отделов компании:

Отдел Документы Модель Особенности
Поддержка База знаний, FAQ, инструкции Qwen2.5 7B Эскалация сложных тикетов
Продажи Коммерческие предложения, скрипты, прайсы Qwen2.5 14B Генерация КП в один клик
Разработка Документация API, код, логи Llama 3.1 8B Доступ к Git-репозиториям

Пример конфигурации рабочих пространств в AnythingLLM для разных отделов компании

Загрузка документов делается через веб-интерфейс: перетаскиваете файлы в окно браузера, система обрабатывает фоном. Поддерживаются все популярные форматы — от PDF до целых ZIP-архивов с кодом. После индексации можно сразу задавать вопросы по содержимому.

AnythingLLM умеет также подключать внешние источники: веб-страницы, YouTube-транскрипты, GitHub-репозитории, RSS-ленты, базы данных через SQL. Для продвинутого использования можно написать кастомный AI-агент, который выполняет действия внутри workspace — читает документы, делает вычисления, ищет в интернете.

Nginx, HTTPS и многопользовательский режим

Тот факт, что наш контейнер слушает только localhost, не означает, что пользователи не могут подключиться снаружи. Ставим Nginx как reverse proxy и закрываем HTTPS через Let's Encrypt.

Устанавливаем Nginx и Certbot:

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

Создаём конфиг виртуального хоста:

cat > /etc/nginx/sites-available/anythingllm << 'EOF'
server {
    listen 80;
    server_name ваш-домен.ru;

    location / {
        proxy_pass http://127.0.0.1:3001;
        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;
        proxy_read_timeout 300;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
    }
}
EOF

sudo ln -s /etc/nginx/sites-available/anythingllm /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Получаем SSL-сертификат:

sudo certbot --nginx -d ваш-домен.ru

В многопользовательском режиме AnythingLLM регистрирует первого пользователя как администратора. Он создаёт invite-ссылки для остальных сотрудников. Каждый получает свой аккаунт, но администратор видит все workspace и может управлять правами.

Совет по безопасности. В production AnythingLLM рекомендует ставить rate limiting на Nginx, использовать сложные пароли и отключать регистрацию открытых аккаунтов. Для особо чувствительных данных — подключите VPN-доступ к VPS вместо открытого HTTPS.

AnythingLLM vs альтернативы

На рынке self-hosted RAG-решений есть несколько популярных проектов. У каждого свои сильные стороны. Вот ключевые отличия:

Параметр AnythingLLM Open WebUI + Ollama LangFlow / Flowise
Сложность установки 1 контейнер 2 контейнера + настройка Зависит от стека
RAG из коробки Да, полный Да, базовый Да, настраиваемый
Многопользовательский режим Да (встроенный) Да (с оговорками) Нет
Рабочие пространства Изолированные Чат-истории Проекты
Поддержка провайдеров 20+ Ollama + OpenAI API 100+ (ноды)
AI-агенты Встроенные Нет Через кастомные ноды
Готовность к бизнесу Высокая Средняя Требует доработки

Если ваша компания хочет просто «закинуть документы и спрашивать» — AnythingLLM выигрывает по скорости внедрения. Open WebUI хорош для личного использования, когда RAG не главная задача. LangFlow и Flowise — для тех, кому нужно визуальное программирование цепочек агентов.

Коротко

AnythingLLM решает конкретную проблему: как дать бизнесу доступ к LLM без облачных рисков и без написания кода. 61 000 звёзд на GitHub, 20+ провайдеров, многопользовательский режим и встроенный RAG — этого достаточно, чтобы заменить Google Диск в роли корпоративной базы знаний.

Архитектура простая: Docker-контейнер с AnythingLLM, рядом Ollama с моделью и эмбеддингами, перед ними Nginx с HTTPS. Всё встаёт за один вечер на любом VPS от 2 vCPU.

Сценарии использования, которые мы уже видели у клиентов: служба поддержки отвечает на вопросы по документации за секунды вместо минут; менеджеры генерируют коммерческие предложения на основе прошлых КП; разработчики ищут по старому коду быстрее, чем через grep.

Если захотите внедрить — пишите. Поможем со стеком, установкой и обучением команды.