Инструкции

Ollama на VPS: свой ИИ для бизнеса

Как сделать из Ollama закрытый API для команды на VPS: установка, API-ключи, TLS, замеры скорости на CPU и GPU и какой сервер нужен под каждую модель.

Команда is*hosting 10 нояб. 2026 10 мин
Ollama на VPS: свой ИИ для бизнеса
Содержание

Ollama на ноутбуке доступна одному человеку и только пока ноутбук включён. В этом руководстве мы превратим её в сервер Ollama на VPS, к которому вся команда подключается по HTTPS с API-ключом, а рабочие инструменты продолжают отправлять привычные запросы в формате OpenAI. Понадобятся сервер на Ubuntu 24.04, доменное имя и root-доступ по SSH.

Почему локальной Ollama мало для команды

Когда в команде пять человек и больше, у локальной Ollama обнаруживаются слабые места. Подключиться к ней можно только с одной машины, ноутбук ограничивает размер модели и скорость, а всё, что кто-то с ней настроил, так и остаётся у него на диске. По умолчанию Ollama слушает только 127.0.0.1:11434, поэтому без перенастройки другие компьютеры к ней не подключатся (FAQ Ollama). Если моделью пользуются несколько человек, её лучше перенести на сервер.

Доступ только с одной машины

Если ИИ запущен локально на ноутбуке одного разработчика, все скрипты и коллеги, которые к нему обращаются, перестают работать, как только ноутбук уходит в сон. Открыть порт в офисную сеть тоже мало помогает: у локального API нет никакой авторизации. В документации Ollama прямо сказано, что локальный API «не требует аутентификации» (документация API Ollama).

Потолок производительности ноутбука

Запустить LLM локально можно и на ноутбуке с 16 ГБ памяти, но модель на 9B, например qwen3.5:9b, весит от 6,6 до 7,6 ГБ (такой диапазон указан на ollama.com), и это без учёта памяти под сами диалоги. Вдобавок ей приходится делить оперативную память с браузером и IDE. Кроме того, Ollama обрабатывает по одному запросу на модель, пока вы не измените OLLAMA_NUM_PARALLEL, так что второму пользователю приходится ждать своей очереди.

Всё хранится у одного человека

Промпты, выбранные модели и собственные Modelfile лежат на диске у одного сотрудника. На общем сервере у команды появляется единый список моделей и одно место, где решается, кому какие модели доступны.

Сервер Ollama, Ollama Cloud или облачные ИИ-API

Сервер Ollama, Ollama Cloud или облачные ИИ-API

Если команда пользуется моделью каждый день или работает с данными, которые нельзя передавать третьим лицам, свой сервер Ollama подходит лучше: промпты не покидают ваше оборудование, а платите вы фиксированную сумму в месяц. Ollama Cloud и облачные ИИ-API берут плату за токены и обрабатывают промпты на машинах поставщика. На странице с ценами Ollama сказано, что облачные модели работают на инфраструктуре, размещённой «преимущественно в США», а использование «измеряется в токенах по тарифам каждой модели» (цены Ollama). Если в промптах встречаются данные клиентов, смотрите прежде всего на первый столбец таблицы.

В Ollama Cloud промпты выполняются на серверах самой Ollama, а в её политике конфиденциальности сказано, что содержимое обрабатывается «временно», только для ответа на запрос (политика конфиденциальности Ollama). Ollama на VPS работает как ваше личное облако Ollama: тот же API, но на арендованной машине, которой управляете вы.

критерии

Своя Ollama на VPS

Ollama Cloud

Облачный ИИ-API (OpenAI)

Куда уходят промпты

Только на ваш сервер

На серверы Ollama, в основном в США, иногда в Европе

На серверы OpenAI

Кто управляет моделями

Вы: скачиваете модели, фиксируете версии и удаляете ненужные

Модели, которые предлагает Ollama

Модели OpenAI и её график отключения старых версий

Как платить

Фиксированная плата за аренду сервера, например Exclusive VPS от $76,49 в месяц при оплате за год

Free $0, Pro $20 в месяц (кредиты на $60), Max $100 в месяц (кредиты на $300), Team $500 в месяц (ранний доступ)

За токены: GPT-6.1 Sol $2 за входные и $10 за выходные токены на 1 млн токенов; GPT-6 Luna $0,10 и $0,50

Задержка и лимиты

Сетевая задержка до выбранной локации плюс генерация на сервере; в нашем тесте на T4 модель 9B выдала первый токен через 0,1 с

Число одновременных запросов зависит от тарифа: 1 на Free, 3 на Pro, 10 на Max и Team

Лимиты запросов и очередь на стороне OpenAI

Источники: цены Ollama, цены API OpenAI. Цены актуальны на октябрь 2026 года.

На задержку сильнее всего влияет расположение сервера. VPS у is*hosting можно арендовать в 40+ локациях, так что сервер легко разместить в том же регионе, где находится офис, и не гонять каждый промпт через океан. Сколько каждый из трёх вариантов обойдётся команде, мы посчитали в руководстве по стратегии внедрения ИИ.

Как развернуть на VPS сервер Ollama с API для команды: пошаговая инструкция

Как развернуть на VPS сервер Ollama с API для команды: пошаговая инструкция

Вся настройка занимает около 15 минут. На нашем тестовом сервере с CPU сами команды выполнялись примерно четыре минуты, большую часть времени заняло скачивание моделей. Остальное время уходит на DNS-запись и проверку результатов.

Перед началом подготовьте:

  • Сервер на Ubuntu 24.04. При заказе в is*hosting выберите Ubuntu, затем v. 24.
  • Root-доступ по SSH. Он есть на всех тарифах is*hosting, поэтому все команды ниже выполняются без sudo.
  • Домен или поддомен (ниже YOUR_DOMAIN) с A-записью, которая указывает на IP сервера.
  • Версии, на которых мы всё проверяли: Ollama 0.40.6 (загрузку изображений из шага 3 проверяли на 0.40.11), nginx 1.24.0, Ubuntu 24.04.5 LTS.

Шаг 1. Установите Ollama

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

На нашем тестовом сервере с 8 vCPU установка заняла 14 секунд, после чего появились строки >>> The Ollama API is now available at 127.0.0.1:11434. и >>> Install complete. Run "ollama" from the command line. На VPS без GPU вы увидите ещё и WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode. Так и должно быть.

Установщик Ollama на сервере Ubuntu 24.04 без GPU

Если на GPU-сервере ещё нет драйвера NVIDIA, тот же скрипт подключит репозиторий NVIDIA, установит драйвер CUDA и в конце выведет >>> Reboot to complete NVIDIA CUDA driver install. На нашей тестовой машине с Tesla T4 на это ушло 269 секунд. Перезагрузите сервер и убедитесь, что видеокарта видна, командой nvidia-smi.

На чистом GPU-сервере установщик дополнительно ставит драйвер NVIDIA и просит перезагрузить сервер

Шаг 2. Настройте сервис для нескольких пользователей

Ollama читает настройки из переменных окружения своего systemd-сервиса. Пропишите их в override-файле:

mkdir -p /etc/systemd/system/ollama.service.d
cat > /etc/systemd/system/ollama.service.d/override.conf << 'EOF'
[Service]
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="OLLAMA_CONTEXT_LENGTH=8192"
Environment="OLLAMA_KEEP_ALIVE=30m"
EOF
systemctl daemon-reload && systemctl restart ollama
journalctl -u ollama --no-pager | grep "server config" | tail -1

Последняя команда покажет настройки, с которыми запустилась Ollama. Проверьте, что среди них есть OLLAMA_NUM_PARALLEL:4. OLLAMA_HOST не трогайте и оставьте значение по умолчанию 127.0.0.1: снаружи к серверу можно будет подключиться только через Nginx.

Шаг 3. Закройте Ollama за Nginx с TLS и API-ключом

Встроенных учётных записей у Ollama нет. В FAQ Ollama описано, как поставить её за обратный прокси, например Nginx, и в примере из FAQ используется та же строка proxy_set_header Host localhost:11434;, что и в конфиге ниже. Сгенерируйте отдельный ключ для каждой команды или приложения:

apt-get update && apt-get install -y nginx certbot python3-certbot-nginx
openssl rand -hex 32

Затем создайте конфиг сайта, подставив свои значения вместо YOUR_DOMAIN и YOUR_TEAM_KEY:

cat > /etc/nginx/sites-available/ollama << 'EOF'
map_hash_bucket_size 128;

map $http_authorization $ollama_key_ok {
    default 0;
    "Bearer YOUR_TEAM_KEY" 1;
}

server {
    listen 80;
    server_name YOUR_DOMAIN;

    location / {
        if ($ollama_key_ok = 0) {
            return 401;
        }
        proxy_pass http://127.0.0.1:11434;
        proxy_set_header Host localhost:11434;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_read_timeout 600s;
        client_max_body_size 50m;
    }
}
EOF
ln -s /etc/nginx/sites-available/ollama /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
certbot --nginx -d YOUR_DOMAIN --redirect
ufw allow OpenSSH && ufw allow 'Nginx Full' && ufw --force enable

Три строки в этом конфиге появились после ошибок, с которыми мы столкнулись на тестах. Без map_hash_bucket_size 128; проверка nginx -t завершается ошибкой could not build map_hash, you should increase map_hash_bucket_size: 64: ключ длиной 64 символа не помещается в бакет стандартного размера.

Пока не увеличен map_hash_bucket_size, nginx -t не пропускает длинный API-ключ

Без proxy_set_header Host localhost:11434; Ollama отвечает 403 на все запросы, которые приходят через прокси: если она слушает localhost, то отклоняет запросы, где в заголовке Host указан другой домен. В нашей схеме Ollama установлена прямо на сервер, без Docker, поэтому правила ufw действуют на неё как обычно, а порт 11434 остаётся доступен только локально.

Без client_max_body_size 50m; не проходят промпты с крупными изображениями. По умолчанию Nginx ограничивает тело запроса одним мегабайтом, а изображения передаются внутри запроса в кодировке base64. В нашем тесте запрос с картинкой на 1,2 МБ (вместе с кодировкой 1,64 МБ) к мультимодальной модели gemma4:e2b получил ответ 413 Request Entity Too Large. С этой строкой модель на тот же запрос описала картинку.

Шаг 4. Скачайте модели

ollama pull qwen3.5:9b
ollama pull gemma4:12b
ollama list

На нашем тестовом сервере qwen3.5:4b (от 3,3 до 4,0 ГБ на ollama.com) скачалась за 31 секунду, qwen3.5:9b (от 6,6 до 7,6 ГБ) за 57 секунд, gemma4:12b (от 7,7 до 8,0 ГБ) за 81 секунду. У вас скорость загрузки будет зависеть от канала в выбранной локации.

Шаг 5. Отправьте тестовый запрос

С любого компьютера, кроме самого сервера:

curl -s -o /dev/null -w "%{http_code}\n" https://YOUR_DOMAIN/api/tags
curl -s https://YOUR_DOMAIN/v1/chat/completions \
  -H "Authorization: Bearer YOUR_TEAM_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3.5:9b","messages":[{"role":"user","content":"Reply with one sentence: what is a reverse proxy?"}]}'

Первая команда должна вывести 401. Вторая вернёт обычный JSON-объект chat.completion.

Без ключа сервер отвечает 401, а с ключом работают OpenAI-совместимые эндпоинты

Как запустить Ollama в Docker Compose и полный чек-лист защиты для продакшна, мы подробно рассказали в руководстве по Clawdbot с Docker и Ollama, поэтому здесь не будем повторяться.

VPS

Запустите собственный сервер Ollama на VPS с полным root-доступом, выделенным IPv4 и выбором из 40+ локаций.

Выбрать VPS

Как подключить команду к серверу Ollama

Скрипты, внутренние инструменты и большинство плагинов для IDE подключаются к серверу так же, как к OpenAI: им нужен базовый URL с /v1 на конце и API-ключ. Ollama поддерживает эндпоинты OpenAI для чата, completions, списка моделей и эмбеддингов. В документации Ollama отмечено, что клиенту «нужно значение API-ключа, но Ollama его игнорирует» (совместимость с OpenAI), поэтому ключ проверяет Nginx. Раздайте коллегам URL и ключ, и большинство инструментов заработает без доработок.

Скрипты и внутренние инструменты

Этот код в неизменном виде заработал на нашем тестовом сервере с официальным Python-пакетом openai версии 3.35.1:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://YOUR_DOMAIN/v1",
    api_key=os.environ["OLLAMA_TEAM_KEY"],
)
resp = client.chat.completions.create(
    model="qwen3.5:9b",
    messages=[{"role": "user", "content": "Summarize this ticket in one line."}],
)
print(resp.choices[0].message.content)

Плагины для IDE

В Continue адрес удалённой Ollama задаётся в параметре apiBase, а собственные заголовки можно прописать в requestOptions, так что плагин умеет передавать Bearer-ключ. В официальном расширении Ollama для VS Code для этого есть настройки ollama.endpoint и ollama.headers. В JetBrains AI Assistant провайдер Ollama спрашивает только URL, и передать ключ через него нельзя. Вместо него выберите OpenAI-совместимого провайдера в разделе Settings | Tools | AI Assistant | Providers & API keys, укажите https://YOUR_DOMAIN/v1 в поле URL, а ключ команды в поле API-ключа. JetBrains сам не назначает модели с OpenAI-совместимого эндпоинта функциям AI Assistant, поэтому после проверки подключения сделайте это вручную (документация JetBrains).

Чат-интерфейс

Если коллегам удобнее чат в духе ChatGPT, подключите к тому же серверу Open WebUI. В нём есть встроенные учётные записи, панель администратора и права доступа к моделям. На Open WebUI работает и собственный сервис is*hosting ai.ishosting.com. Как его установить, мы рассказали в руководстве по Open WebUI.

Как Ollama справляется с несколькими пользователями

Каждая загруженная модель одновременно обрабатывает до OLLAMA_NUM_PARALLEL запросов, и в FAQ Ollama предупреждают, что потребность в памяти «растёт пропорционально OLLAMA_NUM_PARALLEL * OLLAMA_CONTEXT_LENGTH». Запросы сверх лимита встают в очередь длиной до 512 (OLLAMA_MAX_QUEUE), а когда заполнена и она, Ollama возвращает 503. Простаивающая модель выгружается из памяти через время, заданное в OLLAMA_KEEP_ALIVE (по умолчанию пять минут), и следующему запросу приходится снова ждать её загрузки.

В наших тестах на Tesla T4 модель gemma4:12b с четырьмя параллельными слотами обслуживала четырёх пользователей со скоростью от 31 до 33 токенов в секунду на каждого. С восемью слотами и контекстом 8K она справлялась с восемью пользователями, выдавая каждому от 19 до 22 токенов в секунду, и занимала 14,5 ГБ из 15,4 ГБ видеопамяти.

Модели qwen3.5 и на CPU, и на GPU обрабатывали запросы по очереди, хотя в настройках стояло четыре слота. Это ограничение планировщика Ollama для архитектуры qwen3.5: при загрузке модели в логе появляется model architecture does not currently support parallel requests, и запросы к ней выполняются по одному. Проверяйте параллельную обработку на той модели, которую собираетесь дать команде.

Когда без собственного сервера не обойтись из-за конфиденциальности

Когда без собственного сервера не обойтись из-за конфиденциальности

Клиникам, health-tech-командам, юридическим фирмам и юридическим отделам компаний разумнее сразу выбирать собственный ИИ-сервер: если отправлять медицинские записи или материалы под адвокатской тайной стороннему ИИ-сервису, возникают юридические риски. В феврале 2026 года федеральный суд в Нью-Йорке постановил, что документы, которые обвиняемый подготовил с помощью публичного ИИ-чат-бота, не защищены адвокатской тайной (United States v. Heppner). Если сотрудники вставляют в ИИ-инструменты данные клиентов или пациентов, держите модель на инфраструктуре, которую контролируете сами.

HIPAA и медицинские данные

Согласно разъяснениям HHS, облачный провайдер, который хранит или обрабатывает электронную защищённую медицинскую информацию, считается бизнес-партнёром (business associate) и обязан подписать соглашение BAA, даже если хранит только зашифрованные данные без ключа (разъяснения HHS по облачным вычислениям). OpenAI заключает BAA для отдельных эндпоинтов API, если подписать дополнительное соглашение и настроить хранение данных (управление данными в OpenAI). На страницах Ollama с ценами, политикой конфиденциальности и условиями использования HIPAA и BAA не упоминаются.

Если команда разворачивает LLM у себя, поставщик модели больше не получает её данные. Но соответствия требованиям это само по себе не гарантирует: по-прежнему нужны контроль доступа, журналы аудита и шифрование, а договор BAA тогда придётся обсуждать с тем, кто предоставляет сервер. Решите этот вопрос до того, как на сервер попадут данные пациентов.

Адвокатская тайна

В деле Heppner судья Южного округа Нью-Йорка Джед Ракофф признал, что около 31 документа, созданного обвиняемым на публичной ИИ-платформе, не защищены ни адвокатской тайной, ни доктриной рабочего продукта (work product doctrine). Суд сослался на политику конфиденциальности платформы, которая разрешала использовать введённые данные для обучения и раскрывать их третьим лицам.

Формальное заключение ABA № 512 (июль 2024 года) распространяет обязанность соблюдать конфиденциальность на работу юристов с генеративным ИИ. Если промпты остаются на вашем сервере, на них не действует чужая политика конфиденциальности, а именно на неё в том числе опирался суд в деле Heppner.

Какая конфигурация VPS нужна для Ollama

Сервер подбирают сначала по объёму памяти, который нужен модели, а затем по тому, сколько человек отправляют запросы одновременно. VPS для Ollama на CPU подойдёт для пилотного запуска или для команды до трёх человек, а для ежедневной работы всей команды нужен GPU. В наших тестах qwen3.5:9b на CPU занимала 6,2 ГБ оперативной памяти и выдавала 4,0 токена в секунду, а на Tesla T4 та же модель выдавала 33 токена в секунду. Если ответы нужны за считаные секунды, сразу закладывайте в бюджет GPU-сервер.

Замеры на CPU сделаны на сервере с 8 vCPU Xeon (2,3 ГГц) и 32 ГБ RAM: столько же ядер и памяти даёт тариф Exclusive в is*hosting. Замеры на GPU сделаны на NVIDIA Tesla T4 16 ГБ. Длина каждого ответа составляла 200 токенов.

Модель (размер загрузки)

Одновременных запросов

Занято памяти

GPU

Скорость в тесте

qwen3.5:4b (от 3,3 до 4,0 ГБ)

1

3,1 ГБ RAM

Нет

6,1 токена/с; ответ за 32 с

qwen3.5:9b (от 6,6 до 7,6 ГБ)

1

6,2 ГБ RAM

Нет

4,0 токена/с; ответ за 51 с

gemma4:12b (от 7,7 до 8,0 ГБ)

4

8,7 ГБ RAM

Нет

1,3 токена/с на запрос; все четыре ответа за 170 с

qwen3.5:9b (от 6,6 до 7,6 ГБ)

1

6,4 ГБ VRAM

Tesla T4 16 ГБ

33 токена/с; ответ за 6 с

gemma4:12b (от 7,7 до 8,0 ГБ)

4

11,2 ГБ VRAM

Tesla T4 16 ГБ

от 31 до 33 токенов/с на запрос; все четыре ответа за 7 с

gemma4:12b, контекст 8K

8

14,5 ГБ VRAM

Tesla T4 16 ГБ

от 19 до 22 токенов/с на запрос; все восемь ответов за 11 с

gpt-oss:20b (14 ГБ)

4

12,8 ГБ VRAM

Tesla T4 16 ГБ

20 токенов/с на запрос; все четыре ответа за 11 с

Для пилотного запуска на CPU подойдёт Exclusive VPS (8 CPU, 32 ГБ RAM, 100 ГБ SSD) от $76,49 в месяц при оплате за год (цена зависит от локации). Все модели из CPU-части таблицы помещаются на нём с запасом. Не забудьте и про диск: сама Ollama заняла 2,1 ГБ ещё до загрузки моделей. В каждый тариф is*hosting входят выделенный IPv4-адрес, который понадобится для DNS-записи, и еженедельные бэкапы VPS, а RAM и диск можно добавить позже без переустановки сервера.

Для работы всей команды есть GPU-серверы is*hosting с Tesla T4 16 ГБ или NVIDIA L4 24 ГБ. NL4-8 (AMD EPYC 7702P, 256 ГБ RAM) с Tesla T4, на котором мы проводили тесты, стоит $693,75 в месяц при оплате за год. NL3-22 (AMD Ryzen 7 7600X, 64 ГБ RAM) с L4 стоит $409,17 в месяц при оплате за год, но на 28 октября 2026 года его можно было только предзаказать. Обе цены указаны для Нидерландов по данным конфигуратора на эту дату.

Мощный рабочий ПК с хорошей видеокартой подойдёт паре-тройке продвинутых пользователей, которые хотят запускать ИИ локально прямо на рабочем месте. Когда одной моделью пользуются пять человек, удобнее GPU-сервер для ИИ: он работает круглосуточно, а доступ к нему настраивается в одном месте.

FAQ

  • Да. Официальный скрипт установки работает на обычном VPS с Ubuntu 24.04, а если GPU нет, модели запускаются на процессоре. На VPS для Ollama с 8 vCPU модель на 4B в наших тестах выдавала около 6 токенов в секунду. Этого хватит команде до трёх человек.

  • Нет. Локальный API принимает любой запрос, который до него дошёл. Закройте его за Nginx или другим прокси с API-ключом или единым входом (SSO), как в шаге 3.

  • На Tesla T4 модель gemma4:12b обслуживала восемь пользователей одновременно примерно по 20 токенов в секунду на каждого при контексте 8K. На CPU рассчитывайте на один активный запрос за раз.

  • Ollama Cloud запускает модели на инфраструктуре Ollama и берёт плату за использованные токены. На собственном сервере работает тот же API, но на машине под вашим контролем и за фиксированную плату в месяц.

Что в итоге

У вас есть сервер Ollama, который установился за 14 секунд, принимает только HTTPS-запросы с ключом команды и обрабатывает до четырёх запросов параллельно (значение OLLAMA_NUM_PARALLEL), если модель это поддерживает, как gemma4:12b. На CPU модель qwen3.5:9b занимает 6,2 ГБ оперативной памяти и выдаёт около 4 токенов в секунду, а на Tesla T4 та же модель выдаёт 33.

Для CPU-конфигурации из этого гайда подойдёт тариф Exclusive: 8 CPU, 32 ГБ RAM и 100 ГБ SSD от $76,49 в месяц при оплате за год на странице VPS is*hosting. Когда команда перерастёт этот сервер, перенесите ту же конфигурацию на GPU-сервер. Если планируете строить на нём платные инструменты, почитайте, как зарабатывать на ИИ-агентах.

Выделенный сервер с GPU

Мощность для ML, рендеринга и тяжелых расчетов без соседей.

От $88.75/месяц