Ollama на VPS без видеокарты: установка, выбор модели по памяти и безопасный доступ к API

Запускаем Gemma, Llama и Qwen на CPU-сервере через Ollama, считаем память, открываем API через SSH-туннель или Caddy с паролем и HTTPS. Ubuntu 22.04/24.04, Debian 12.

11 октября 2026 г.·4 мин чтения·ollama, llm, caddy, cpu

Ollama запускает открытые языковые модели — Gemma, Llama, Qwen — на вашей машине и даёт к ним простой HTTP API. Видеокарта не обязательна: без GPU Ollama работает на процессоре, и маленькие модели отвечают с приемлемой скоростью на нескольких ядрах. Здесь — установка на VPS, первая модель и два безопасных способа ходить в API снаружи.

Что нужно

  • Сервер на tanaka.host с Ubuntu 22.04/24.04 или Debian 12. GPU на VPS нет, всё считает процессор. Память решает, какие модели влезут, количество ядер — как быстро они ответят. Для моделей до ~8 миллиардов параметров разумный минимум — 4 vCPU и 8 ГБ.
  • Доступ по SSH — как подключиться.
  • Реалистичные ожидания: на CPU модели 1B–4B годятся для чата, классификации, выжимок и ботов. Большие запускаются, но медленно.

Сколько памяти нужно

Модель должна поместиться в RAM вместе с системой и самой Ollama. Правило: размер скачивания плюс 1–2 ГБ. Размеры ниже — из каталога Ollama для стандартных 4-битных тегов.

Модель Размер Памяти на сервере
gemma3:270m, qwen3:0.6b 0,3–0,5 ГБ 2 ГБ
gemma3:1b, llama3.2:1b, qwen3:1.7b 0,8–1,4 ГБ 4 ГБ
llama3.2:3b, qwen3:4b, gemma3:4b 2,0–3,3 ГБ 8 ГБ
qwen3:8b 5,2 ГБ 8 ГБ
gemma3:12b, qwen3:14b 8,1–9,3 ГБ 16 ГБ
gemma3:27b 17 ГБ 24 ГБ, на CPU медленно

Контекст тоже ест память. Длинное окно контекста требует RAM сверх модели. Если модель влезает впритык, не увеличивайте контекст.

1. Подготовка сервера

ssh root@YOUR_SERVER_IP
apt update && apt upgrade -y

Установщик Ollama качает архив .tar.zst, поэтому нужен zstd:

apt install -y zstd

2. Установка Ollama

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

Скрипт создаёт системного пользователя ollama, ставит одноимённую службу systemd и запускает её. На сервере без видеокарты он напишет, что NVIDIA/AMD GPU не найдена и Ollama будет работать в режиме CPU — это ожидаемо.

ollama -v
systemctl status ollama

3. Первая модель

gemma3:1b — хороший первый тест на любом сервере от 4 ГБ:

ollama pull gemma3:1b
ollama run gemma3:1b

Напишите вопрос, Enter; выход — /bye. Базовые команды:

ollama list      # скачанные модели
ollama ps        # загруженные в память
ollama rm gemma3:1b

Модели хранятся в /usr/share/ollama/.ollama/models. Полный справочник — команды Ollama.

4. API на localhost

API слушает 127.0.0.1:11434, только внутри сервера:

curl http://localhost:11434/api/chat -d '{
  "model": "gemma3:1b",
  "messages": [{ "role": "user", "content": "Why is the sky blue?" }],
  "stream": false
}'

Программы на том же сервере — бот, n8n, OpenClaw — ходят на http://localhost:11434 напрямую, больше ничего не нужно.

Не открывайте порт 11434 в интернет. У API Ollama нет аутентификации. Поставите OLLAMA_HOST=0.0.0.0 и откроете порт — любой сможет грузить ваш процессор и ваши модели. Используйте один из двух вариантов ниже.

5. Вариант А: SSH-туннель для себя

Если API нужен только вам, пробросьте порт. На своём компьютере:

ssh -L 11434:127.0.0.1:11434 root@YOUR_SERVER_IP

Пока сессия открыта, http://localhost:11434 на вашем компьютере ведёт к Ollama на сервере. Десктопные чаты и редакторы кода с поддержкой Ollama используют этот адрес как есть.

6. Вариант Б: Caddy с HTTPS и паролем

Для доступа с других серверов и сервисов — Ollama за Caddy с basic auth. Нужен домен, например ollama.example.com, с A-записью на IP сервера.

Caddy из официального репозитория:

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install -y caddy

Хеш пароля — команда спросит пароль и напечатает хеш:

caddy hash-password

Замените содержимое /etc/caddy/Caddyfile:

ollama.example.com {
    basic_auth {
        apiuser PASTE_THE_HASH_HERE
    }
    reverse_proxy 127.0.0.1:11434 {
        header_up Host localhost:11434
    }
}

Строка header_up повторяет пример из документации Ollama, которая ждёт в заголовке Host localhost:11434. Примените конфиг и откройте веб-порты:

systemctl reload caddy
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443
ufw enable

Caddy получит сертификат Let’s Encrypt при первом запросе. Проверка с любой машины:

curl -u apiuser:YOUR_PASSWORD https://ollama.example.com/api/tags

Сама Ollama по-прежнему слушает только localhost, так что домен с паролем — единственный вход. Про брандмауэр подробнее — UFW и firewalld.

Держать модель в памяти дольше

По умолчанию Ollama выгружает модель через 5 минут после последнего запроса, и следующий запрос ждёт повторной загрузки. Если памяти хватает:

systemctl edit ollama.service

Под [Service]:

[Service]
Environment="OLLAMA_KEEP_ALIVE=24h"
systemctl daemon-reload
systemctl restart ollama

Юнит-файл установщика не правьте — обновление его перезапишет, override переживёт.

Обновление

Повторный запуск скрипта заменяет бинарник, модели остаются:

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

Логи — journalctl -e -u ollama.

Ollama ставится одной командой и нормально работает на CPU с моделями до нескольких миллиардов параметров. API держите на localhost, себе — туннель, другим сервисам — Caddy с паролем, память выбирайте по размеру модели. Рассуждающие модели DeepSeek и чат в браузере через Open WebUI — в статье DeepSeek R1 через Ollama.