Ollama — Local LLM Runtime

If you like this project, consider supporting me on Buy Me a Coffee ☕️


tags:

Description

Ollama is a local LLM runtime built on llama.cpp. It pulls and runs models with a simple CLI and exposes a REST API for chat, embeddings, and tools. Integrates with OpenCode, Claude Code, Open WebUI, and many clients. / Ollama — локальный LLM-рантайм на базе llama.cpp. Простой CLI и REST API для chat/embeddings. Интеграции с OpenCode, Claude Code, Open WebUI и другими клиентами.

Common use cases / Типовые сценарии:

Status: Very active (ollama/ollama, MIT). Alternatives: llama.cpp server, vLLM (throughput), LocalAI (multi-modal), LM Studio (desktop). / Статус: активно развивается; альтернативы — llama.cpp server, vLLM, LocalAI, LM Studio.

Default port: 11434/tcp.
Paths: models ~/.ollama; systemd unit ollama.
Docker image: ollama/ollama.

Cross-reference: llama.cpp, vLLM, Open WebUI, OpenCode, NVIDIA Container Toolkit.


Installation

Install Ollama / Установка Ollama

# Official install script (Linux/macOS)
curl -fsSL https://ollama.com/install.sh | sh

# Package managers
sudo pacman -S ollama
brew install ollama
# Nix
nix-env -iA nixpkgs.ollama
ollama --version
systemctl status ollama

Docker / Docker

docker run -d --name ollama \
  -p 11434:11434 \
  -v ollama:/root/.ollama \
  ollama/ollama

# GPU
docker run -d --name ollama \
  --gpus all \
  -p 11434:11434 \
  -v ollama:/root/.ollama \
  ollama/ollama

Configuration

Main files / Основные файлы

/etc/systemd/system/ollama.service (override if needed)

/etc/systemd/system/ollama.service.d/

~/.ollama/

systemd override / systemd override

/etc/systemd/system/ollama.service.d/override.conf

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/var/lib/ollama/models"
Environment="OLLAMA_ORIGINS=*"
systemctl daemon-reload
systemctl restart ollama

Environment variables / Переменные окружения

Variable Purpose
OLLAMA_HOST Bind address (default 127.0.0.1:11434)
OLLAMA_MODELS Model storage path
OLLAMA_ORIGINS Allowed CORS origins
OLLAMA_KEEP_ALIVE Model unload timeout
OLLAMA_NUM_PARALLEL Parallel requests

Core Management

CLI / CLI

ollama run llama3.2
ollama run llama3.2:1b
ollama list
ollama ps
ollama show llama3.2
ollama pull llama3.2
ollama push <USER>/<MODEL>
ollama cp llama3.2 myalias
ollama rm llama3.2:1b
ollama stop llama3.2

REST API / REST API

# Chat
curl http://localhost:11434/api/chat \
  -d '{
    "model": "llama3.2",
    "messages": [{"role": "user", "content": "hi"}],
    "stream": false
  }'

# Generate
curl http://localhost:11434/api/generate \
  -d '{"model": "llama3.2", "prompt": "hello", "stream": false}'

# List models
curl http://localhost:11434/api/tags

# Show model
curl http://localhost:11434/api/show -d '{"name": "llama3.2"}'

# Version
curl http://localhost:11434/api/version

OpenAI-compatible endpoint / OpenAI-совместимый endpoint

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.2",
    "messages": [{"role": "user", "content": "hi"}]
  }'

curl http://localhost:11434/v1/models

Sysadmin Operations

Logs / Логи

journalctl -u ollama --no-pager -n 50
journalctl -u ollama -f

GPU monitoring / Мониторинг GPU

nvidia-smi
watch -n 1 nvidia-smi
ollama ps

Logrotate / Ротация логов

/etc/logrotate.d/ollama

/var/log/ollama/*.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
}

Firewall / Firewall

# firewalld — only if remote access needed
firewall-cmd --permanent --add-port=11434/tcp
firewall-cmd --reload

# Or bind to localhost only (default)
# OLLAMA_HOST=127.0.0.1:11434

Security

Hardening / Ужесточение

  1. Keep OLLAMA_HOST=127.0.0.1 unless remote access required / Не выставляйте 11434 наружу без нужды
  2. Put reverse proxy + auth in front for teams / Прокси + аутентификация для команды
  3. Restrict filesystem access via systemd / Ограничьте доступ к ФС через systemd
  4. Monitor model downloads / Мониторьте загрузки моделей
  5. Keep Ollama updated / Обновляйте Ollama
  6. Do not expose API without auth / Не выставляйте API без auth
# Example: nginx reverse proxy with basic auth
# proxy_pass http://127.0.0.1:11434;

[!WARNING] Ollama has no built-in authentication. Never expose port 11434 directly to the internet. / У Ollama нет встроенной аутентификации — не выставляйте 11434 в интернет.


Backup and Restore

Backup / Резервное копирование

# Models
tar czf /var/backups/ollama-models-$(date +%F).tar.gz -C /var/lib/ollama models
# Or ~/.ollama
tar czf /var/backups/ollama-$(date +%F).tar.gz -C "$HOME" .ollama

Restore / Восстановление

systemctl stop ollama
tar xzf /var/backups/ollama-<DATE>.tar.gz -C /var/lib/ollama --strip-components=0
# Or extract to ~/.ollama
systemctl start ollama

Troubleshooting

Symptom Cause Fix
connection refused Service down / wrong port systemctl status ollama
OOM on large models Model too big for RAM/VRAM Use smaller quantized model
Slow on CPU No GPU / small quant Use GPU host or :1b models
CORS errors in browser Origins not allowed Set OLLAMA_ORIGINS
Model not found Not pulled ollama pull <MODEL>
GPU not used No NVIDIA runtime Install NVIDIA Container Toolkit
systemctl status ollama
journalctl -u ollama -n 30
ollama ps
nvidia-smi

Comparison Tables

Local LLM runtimes / Локальные LLM-рантаймы

Runtime Best for API
Ollama Simplest local endpoint OpenAI-compatible
llama.cpp Minimal / portable OpenAI-compatible via llama serve
vLLM High throughput OpenAI-compatible
LocalAI Multi-modal OpenAI/Anthropic-compatible
LM Studio Desktop + lms CLI OpenAI-compatible

Production Runbooks

Runbook: Deploy Ollama for a team / Развёртывание Ollama для команды

  1. Install Ollama; enable systemd / Установить Ollama; включить systemd
  2. Pull production model(s) (e.g. llama3.2:8b) / Загрузить модели
  3. Override OLLAMA_HOST if remote; prefer reverse proxy / Настроить доступ
  4. Open firewall only behind proxy / Открыть порт только за прокси
  5. Point Open WebUI or clients at endpoint / Подключить клиенты
  6. Monitor GPU/CPU with nvidia-smi / Мониторить ресурсы
  7. Document model list and quotas / Задокументировать модели и квоты

Runbook: Rotate or update models / Обновление моделей

  1. ollama pull <NEW_MODEL> / Загрузить новую модель
  2. Test chat via API / Проверить chat через API
  3. Update client configs to new model alias / Обновить конфиги клиентов
  4. ollama stop <OLD_MODEL> — unload / Выгрузить старую модель
  5. ollama rm <OLD_MODEL> if unused / Удалить если не нужна
  6. Document change / Задокументировать изменение

On this page

linux 🤖 Ollama Cheatsheet Description Installation Install Ollama / Установка Ollama Docker / Docker Configuration Main files / Основные файлы systemd override / systemd override Environment variables / Переменные окружения Core Management CLI / CLI REST API / REST API OpenAI-compatible endpoint / OpenAI-совместимый endpoint Sysadmin Operations Logs / Логи GPU monitoring / Мониторинг GPU Logrotate / Ротация логов Firewall / Firewall Security Hardening / Ужесточение Backup and Restore Backup / Резервное копирование Restore / Восстановление Troubleshooting Comparison Tables Local LLM runtimes / Локальные LLM-рантаймы Production Runbooks Runbook: Deploy Ollama for a team / Развёртывание Ollama для команды Runbook: Rotate or update models / Обновление моделей Documentation Links