Ollama на ноутбуке доступна одному человеку и только пока ноутбук включён. В этом руководстве мы превратим её в сервер Ollama на VPS, к которому вся команда подключается по HTTPS с API-ключом, а рабочие инструменты продолжают отправлять привычные запросы в формате OpenAI. Понадобятся сервер на Ubuntu 24.04, доменное имя и root-доступ по SSH.
Когда в команде пять человек и больше, у локальной 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). Если в промптах встречаются данные клиентов, смотрите прежде всего на первый столбец таблицы.
В 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+ локациях, так что сервер легко разместить в том же регионе, где находится офис, и не гонять каждый промпт через океан. Сколько каждый из трёх вариантов обойдётся команде, мы посчитали в руководстве по стратегии внедрения ИИ.
Вся настройка занимает около 15 минут. На нашем тестовом сервере с CPU сами команды выполнялись примерно четыре минуты, большую часть времени заняло скачивание моделей. Остальное время уходит на DNS-запись и проверку результатов.
Перед началом подготовьте:
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. Так и должно быть.
Если на GPU-сервере ещё нет драйвера NVIDIA, тот же скрипт подключит репозиторий NVIDIA, установит драйвер CUDA и в конце выведет >>> Reboot to complete NVIDIA CUDA driver install. На нашей тестовой машине с Tesla T4 на это ушло 269 секунд. Перезагрузите сервер и убедитесь, что видеокарта видна, командой nvidia-smi.
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.
Встроенных учётных записей у 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 символа не помещается в бакет стандартного размера.
Без 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. С этой строкой модель на тот же запрос описала картинку.
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 секунду. У вас скорость загрузки будет зависеть от канала в выбранной локации.
С любого компьютера, кроме самого сервера:
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.
Как запустить Ollama в Docker Compose и полный чек-лист защиты для продакшна, мы подробно рассказали в руководстве по Clawdbot с Docker и Ollama, поэтому здесь не будем повторяться.
Запустите собственный сервер Ollama на VPS с полным root-доступом, выделенным IPv4 и выбором из 40+ локаций.
Скрипты, внутренние инструменты и большинство плагинов для 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)
В 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_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). Если сотрудники вставляют в ИИ-инструменты данные клиентов или пациентов, держите модель на инфраструктуре, которую контролируете сами.
Согласно разъяснениям 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 на 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-сервер для ИИ: он работает круглосуточно, а доступ к нему настраивается в одном месте.
У вас есть сервер 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-сервер. Если планируете строить на нём платные инструменты, почитайте, как зарабатывать на ИИ-агентах.