Локальная RAG на AnythingLLM с домашней GPU через VPS: гайд | AiManual
AiManual Logo Ai / Manual.
06 Июн 2026 Гайд

Развёртывание локальной RAG-системы для бизнеса на AnythingLLM: пошаговое руководство с VPS и домашней GPU

Пошаговая инструкция по развёртыванию AnythingLLM на VPS с подключением домашней видеокарты через IPsec VPN. Экономьте на облачных API, контролируйте данные.

Реклама
vec_recv1

Бизнес хочет RAG, но боится облаков. И правильно делает.

Вы когда-нибудь пробовали подключить свою конфиденциальную базу знаний к ChatGPT? У меня после первого такого опыта дёргался глаз. Данные улетают в неизвестность, счёт за API растёт, а скорость ответа – как повезёт. Малый бизнес не может платить $500-1000 в месяц за API и спать спокойно.

RAG (Retrieval-Augmented Generation) – штука крутая: модель отвечает на основе ваших документов, а не на основе мутного интернета. Но где это хостить? Полностью локальный сервер – дорого, сложно в поддержке. Облако – опять зависимость.

Компромисс, который я обкатал на десятке проектов: VPS для фронта и API, домашняя GPU для инференса через защищённый туннель. VPS стоит копейки (500-1000 руб/мес), а за GPU вы уже заплатили. И никакой утечки. В этом гайде я покажу, как собрать такую систему на AnythingLLM + Ollama + IPsec.

Если вы ещё не собрали домашнюю станцию, сначала прочитайте гайд по железу за $15 000 – там всё про выбор видеокарт и RAM. А если сомневаетесь между облаком и локальным хостингом, у меня есть системная статья про стратегию развёртывания.

Ключевая идея: VPS держит веб-интерфейс, API-эндпоинты и базу векторов. Инференс модели выполняется на вашей домашней видеокарте. Всё шифруется через IPsec. Вы получаете AI для бизнеса с полным контролем без ежемесячных счетов.

Что вам понадобится

Не пугайтесь списка – всё стандартное. Из необычного разве что VPN-туннель.

Компонент Требования Примечание
VPS Ubuntu 22.04/24.04, 2 CPU, 4 ГБ RAM, 20 ГБ SSD Можно меньше, если не крутить LLM на VPS
Домашний сервер NVIDIA GPU (RTX 3060+), 16+ ГБ RAM, Linux (Ubuntu/Pop!_OS) Установите драйверы и CUDA Toolkit 12.x
ПО на VPS Docker + Docker Compose, strongSwan, curl Последние версии на июнь 2026
ПО на домашнем сервере Ollama 0.5.x, strongSwan, Docker (опционально) Ollama проще всего ставить через скрипт установки
Модели llama3, mistral, qwen2.5 – любые из библиотеки Ollama Выбирайте под свою видеопамять

Я не буду разжёвывать установку драйверов NVIDIA – это миллион раз описано. Если что, загляните в статью про «бетонную стену» – там есть секция железа.

Шаг 1: Поднимаем IPsec-туннель между VPS и домашним сервером

Это самое ответственное место. Если сделать как попало, модель будет тормозить из-за потерь пакетов. Я выбрал strongSwan – проверенный, стабильный, без компромиссов.

⚠️ Предупреждение: Никогда не открывайте порт Ollama (11434) наружу! Злоумышленники запустят на вашей GPU майнер за минуту. Только через зашифрованный туннель.

1 Устанавливаем strongSwan на обоих машинах

# На VPS и дома
sudo apt update && sudo apt install strongswan strongswan-pki libcharon-extra-plugins -y

2 Генерируем сертификаты

# На домашнем сервере (CA и сертификат для сервера)
pki --gen > /etc/ipsec.d/private/ca-key.pem
pki --self --in /etc/ipsec.d/private/ca-key.pem --dn "CN=VPN CA" --ca > /etc/ipsec.d/cacerts/ca-cert.pem

pki --gen > /etc/ipsec.d/private/server-key.pem
pki --pub --in /etc/ipsec.d/private/server-key.pem | pki --issue --cacert /etc/ipsec.d/cacerts/ca-cert.pem --cakey /etc/ipsec.d/private/ca-key.pem --dn "CN=home-server" --san=192.168.1.100 > /etc/ipsec.d/certs/server-cert.pem

# Скопируйте ca-cert.pem на VPS (в /etc/ipsec.d/cacerts/)

Замените 192.168.1.100 на реальный IP домашнего сервера в локальной сети (или публичный, если у вас белый IP). Для туннеля VPS-дом лучше использовать публичные адреса обеих сторон.

3 Конфигурируем IPsec

На домашнем сервере создаём /etc/ipsec.conf:

config setup
    charondebug="ike 2, knl 2, cfg 2"
    uniqueids=no

conn vps-tunnel
    auto=start
    keyexchange=ikev2
    authby=pubkey
    left=YOUR_HOME_PUBLIC_IP
    leftsubnet=0.0.0.0/0
    leftcert=server-cert.pem
    right=YOUR_VPS_PUBLIC_IP
    rightsubnet=0.0.0.0/0
    ike=aes256-sha256-modp2048
    esp=aes256-sha256
    dpdaction=restart
    closeaction=restart

На VPS аналогично, только left – IP VPS, right – IP дома. Сертификат клиента не нужен, достаточно CA-сертификата. В конфиге VPS укажите rightcert с путём к серверному сертификату (если используете взаимную аутентификацию) – проще сгенерировать отдельный клиентский сертификат. Я обычно делаю так:

# На VPS
pki --gen > /etc/ipsec.d/private/client-key.pem
pki --pub --in /etc/ipsec.d/private/client-key.pem | pki --issue --cacert /etc/ipsec.d/cacerts/ca-cert.pem --cakey /etc/ipsec.d/private/ca-key.pem --dn "CN=vps-client" --san=YOUR_VPS_IP > /etc/ipsec.d/certs/client-cert.pem

После настройки запустите strongSwan на обеих машинах:

sudo systemctl restart strongswan
sudo systemctl enable strongswan
sudo ipsec status

Если видите ESTABLISHED – всё ок. Теперь между VPS и домом есть зашифрованный канал. Проверьте пинг по внутренним IP (виртуальным) – их можно настроить, но проще использовать физические IP, туннель их шифрует автоматически.

Шаг 2: Запускаем Ollama на домашнем сервере

Тут всё стандартно, но с одной хитростью – нужно разрешить подключения с VPS IP (через туннель).

# Установка Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Откройте порт для LAN (безопасно только внутри туннеля)
sudo ufw allow from 10.0.0.0/8 to any port 11434  # Подставьте свою подсеть туннеля

Затем запустите модель, которая поместится в вашу видеопамять. Для RTX 4090 (24 ГБ) отлично идёт llama3:70b в 4-битной квантованной версии. Для RTX 3060 (12 ГБ) – qwen2.5:14b или mistral.

ollama pull llama3:70b-instruct-q4_K_M
ollama serve

Проверьте, что Ollama отвечает:

curl http://localhost:11434/api/tags

Теперь нужно сделать так, чтобы Ollama слушал на 0.0.0.0 (или на IP домашнего сервера). По умолчанию он слушает только localhost. Отредактируйте systemd сервис:

sudo systemctl edit ollama.service
# Добавьте:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"

sudo systemctl daemon-reload && sudo systemctl restart ollama

🔒 ВАЖНО: Port forwarding на роутере НЕ делайте. Доступ к Ollama разрешён ТОЛЬКО через IPsec-туннель, потому что VPS будет подключаться к домашнему серверу по его внутреннему IP (192.168.x.x). Если у вас нет прямого доступа к локальной сети, можно пробросить порт на роутере, но только для IP VPS – лучше этого избегать.

Шаг 3: Разворачиваем AnythingLLM на VPS

Вот где начинается магия. AnythingLLM – это open-source платформа для создания чат-ботов с RAG. Она умеет подключаться к любому LLM-провайдеру, включая Ollama по API.

Создайте на VPS папку /opt/anythingllm и файл docker-compose.yml:

version: '3.8'
services:
  anythingllm:
    image: mintplexlabs/anythingllm:latest
    container_name: anythingllm
    ports:
      - "3001:3001"
    environment:
      - SERVER_PORT=3001
      - LLM_PROVIDER=ollama
      - OLLAMA_BASE_PATH=http://192.168.1.100:11434  # IP домашнего сервера (через туннель!)
      - OLLAMA_MODEL_PREF=llama3:70b-instruct-q4_K_M
      - EMBEDDING_PROVIDER=ollama
      - OLLAMA_EMBEDDING_MODEL=nomic-embed-text:latest
    volumes:
      - ./data:/app/server/storage
      - ./models:/app/server/models
    restart: unless-stopped
💡
Для эмбеддингов я использую nomic-embed-text – лёгкая, быстрая, 137 MB. Можно взять bge-m3 или mxbai-embed-large – они точнее, но тяжелее. AnythingLLM поддерживает выбор модели эмбеддинга отдельно от LLM.

Запустите:

docker compose up -d

Откройте браузер по адресу http://YOUR_VPS_IP:3001. Пройдите начальную настройку: создайте рабочее пространство, загрузите документы (PDF, DOCX, тексты). Система сама разобьёт их на чанки, создаст векторные индексы.

Когда зададите вопрос, AnythingLLM отправит запрос к Ollama на домашнем сервере через зашифрованный туннель. Задержка будет 5-20 мс – незаметно для пользователя.

Шаг 4: Тюним RAG под бизнес-задачи

Мало просто запустить – надо, чтобы модель реально помогала. Вот три вещи, которые я меняю почти в каждом проекте:

1 Настройка prompt’а в AnythingLLM

Зайдите в Settings → Chat Settings → System Prompt. Пишите чётко: «Ты – ассистент отдела продаж компании X. Отвечай на основе предоставленных документов. Если ответа нет в документах – честно скажи, что не знаешь, не выдумывай.»

Без такого промпта модель начнёт галлюцинировать – проверено.

2 Выбор chunk size и overlap

По умолчанию AnythingLLM режет документы на куски по 1000 символов с пересечением 200. Для юридических договоров лучше уменьшить до 500 символов – контекст точнее. Для технической документации можно 1500. Настройка в Settings → Embedding → Chunk size.

3 Включаем гибридный поиск

В настройках Workspace активируйте Hybrid Search (BM25 + векторный). Это поднимает релевантность на 20-30%. Для этого нужен полнотекстовый индекс – AnythingLLM его строит автоматически на SQLite.

Типичные ошибки и как их избежать

Собрал грабли, на которые наступил сам и мои клиенты:

  • VPN упал – модель недоступна. Решение: добавьте auto=start и dpdaction=restart в конфиг IPsec, а ещё лучше – cron скрипт, проверяющий туннель каждую минуту.
  • Ollama падает из-за перегрузки GPU. При параллельных запросах от нескольких пользователей видеопамять переполняется. Ограничьте число одновременных сессий в AnythingLLM (Settings → Multi-User) или используйте модель меньшего размера.
  • Медленная загрузка больших документов. Для PDF с сотнями страниц настройте параллельную обработку. В AnythingLLM этого нет из коробки, но можно предварительно разбить файл на части.
  • Домашний IP меняется. Если у провайдера динамический IP, используйте DDNS (например duckdns.org) и в конфиге IPsec пропишите DNS-имя вместо IP.

А что дальше?

После запуска вы получите полностью рабочую RAG-систему. Дальше можно:

  • Добавить аутентификацию (AnythingLLM умеет SSO через OpenID).
  • Подключить несколько моделей для разных задач (например, для аналитики – более мощную, для чата – легковесную).
  • Интегрировать через API с CRM или телеграм-ботом.

И главное – вы больше не платите за каждый токен. Железо уже ваше, трафик между VPS и домом через VPN бесплатный. Если захотите расшириться – см. мой гайд «Корпоративный LLM за бетонной стеной», там про кластеризацию.

Не советую так делать, но одну вещь скажу: я видел компании, которые просто проксировали Ollama через VPS без шифрования. Через месяц у них украли модель и базу знаний. Не будьте такими. IPsec – это больно настраивать, но оно того стоит.

В следующей статье разберу, как заменить IPsec на WireGuard (проще, но чуть медленнее) и добавить балансировку на несколько домашних GPU. Подпишитесь, чтобы не пропустить.

Подписаться на канал