🤖 Локальний ШІ на домашньому сервері: Ollama + Open WebUI в Proxmox
Мета: підняти власний ШІ вдома — без підписок, лімітів і без витоку даних у хмару.
Як це влаштовано
Локальний ШІ — це три незалежних шари:
Ми використовуємо Ollama як runtime і Open WebUI як інтерфейс. Ollama — це обгортка над llama.cpp, яка завантажує модель, керує GPU і обслуговує REST API на порту 11434. Open WebUI просто ходить до цього API по HTTP.
Архітектура сетапу:
:11434
↓
Open WebUI :3000Ollama запускаємо як системний сервіс (не в Docker) — так простіше з доступом до відеокарти. Open WebUI — в Docker, бо це просто веб-інтерфейс без вимог до GPU.
💡 Якщо ставите все на готовий Linux-комп’ютер — секцію з Proxmox і VM можна пропустити.
1. Створення VM в Proxmox
| Параметр | Значення | Чому |
|---|---|---|
| OS | Ubuntu 24.04 Server ISO | LTS, найкраща підтримка NVIDIA |
| BIOS | OVMF (UEFI) | Надійніше для PCIe passthrough |
| Machine | q35 | Підтримує PCIe |
| CPU type | host | Критично! Без цього Ollama може не бачити GPU |
| CPU cores | 4–8 | За наявністю |
| RAM | 4–8 GB | Для ОС, Docker і Ollama |
| Ballooning | false | Фіксована пам’ять для стабільності |
| Disk | 80–100 GB | Моделі займають 5–15 GB кожна |
| Pre-enroll keys | false | Може блокувати NVIDIA драйвер |
| Display | VirtIO-GPU | Залишаємо, Primary GPU не вмикаємо |
⚠️ CPU type: host — найпоширеніша помилка. З дефолтним QEMU CPU Ollama може не побачити GPU взагалі.
2. GPU Passthrough
Proxmox WebUI → VM → Hardware → Add → PCI Device → обираємо відеокарту.
Прапорці:
- ✅ All Functions — передає всі функції карти разом (відео, аудіо)
- ✅ ROM-Bar — допомагає з ініціалізацією NVIDIA драйвера у VM
- ☑️ PCI-Express — вмикаємо якщо є (лише з q35)
- ❌ Primary GPU — не вмикати, інакше втратите консоль Proxmox
💡 Налаштування IOMMU, vfio і GPU passthrough на хості — в окремому матеріалі про ігрову VM на Proxmox. Тут передбачається, що хост вже підготовлений.

Перевірити що GPU захоплена vfio (на хості):
lspci -nnk | grep -A3 NVIDIA
# Має бути: Kernel driver in use: vfio-pci3. Ubuntu + NVIDIA драйвери
Підключаємось до VM по SSH і встановлюємо оновлення:
sudo apt update && sudo apt upgrade -yПеревіряємо чи GPU видно системі:
lspci | grep -i nvidia
nvidia-smiЯкщо nvidia-smi не відповідає — дивимось які драйвери доступні і встановлюємо:
ubuntu-drivers list
sudo apt install nvidia-driver-590-open # або версію під вашу карту
sudo rebootПісля перезавантаження перевіряємо:
nvidia-smi
# Має показати GPU, версію драйвера, VRAM, температуру
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.58.03 Driver Version: 595.58.03 CUDA Version: 13.2 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5060 Ti Off | 00000000:01:00.0 On | N/A |
| 0% 32C P8 5W / 180W | 34MiB / 16311MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+Додатково встановлюємо btop для моніторингу CPU і GPU в реальному часі:
sudo apt install btop -y💡 AMD: замість драйверів NVIDIA спочатку встановлюється ROCm. Список сумісних карт — docs.ollama.com/gpu, інструкція — docs.ollama.com/linux.
💡 RTX 40xx / 50xx (Blackwell/Ada): Ubuntu 24.04 встановить
openмодуль ядра — це нормально. Для Ollama різниці немає.
4. Встановлення Ollama
Встановлення однією командою:
curl -fsSL https://ollama.com/install.sh | shOllama автоматично стає systemd сервісом. Перевіряємо:
sudo systemctl status ollamaВажливо: за замовчуванням Ollama слухає тільки localhost. Docker-контейнер Open WebUI до нього не достукається. Відкриваємо через systemd override:
sudo systemctl edit ollamaВписуємо в секцію [Service]:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"Перезапускаємо:
sudo systemctl daemon-reload && sudo systemctl restart ollamaПеревіряємо що GPU працює — запускаємо тестову модель:
ollama run llama3.2:3b "Привіт! Скажи щось українською"Паралельно в другому терміналі дивимось на GPU:
watch -n 1 nvidia-smi
# GPU Load має підскочити, VRAM — зайнятись
5. Корисні команди Ollama
Моделі
ollama pull qwen3.5:9b # завантажити модель
ollama list # список завантажених моделей
ollama rm qwen3.5:9b # видалити модель
ollama show qwen3.5:9b # деталі: розмір, параметри, системний промптЗапуск
ollama run qwen3.5:9b # інтерактивний чат у терміналі
ollama run qwen3.5:9b "поясни що таке VLAN" # одноразовий запитСтатус і моніторинг
ollama ps # які моделі зараз завантажені і скільки VRAM займають
systemctl status ollama # стан сервісу
journalctl -u ollama -f # логи в реальному часі6. Які моделі обрати
Хто робить ці моделі
Більшість популярних моделей — це «відкриті ваги» від великих компаній: вони тренують модель на своїх серверах, а потім публікують файл, який можна завантажити і запустити локально.
| Компанія | Модель |
|---|---|
| Meta | Llama |
| Gemma | |
| Alibaba | Qwen |
| Mistral AI | Mistral |
| DeepSeek | DeepSeek R1 |
💡 «Відкриті ваги» — не те саме, що open source. Файл моделі публічний, але код навчання і дані зазвичай закриті. Для локального запуску це не має значення.
Читаємо теги
qwen3 : 14b - instruct - q4_K_M
│ │ │ │
│ │ │ └── квантизація (стиснення)
│ │ └────────────── тип / спеціалізація
│ └──────────────────────── розмір (кількість параметрів)
└─────────────────────────────────── сімейство моделіТипи:
| Тег | Для чого |
|---|---|
:instruct / :chat | Розмова і виконання інструкцій — найпоширеніший вибір |
:code | Заточена під написання і аналіз коду |
:vision | Розуміє зображення — можна надсилати скріншоти |
:thinking / :r1 | “Думає” перед відповіддю — повільніше, але краще для логіки |
| без тега | latest — зазвичай найменший доступний варіант |
Квантизація
fp16 ████████████████ ~28 GB — повна точність, занадто велика
q8_0 ████████ ~15 GB — майже оригінальна якість
q6_K ███████ ~12 GB — дуже близько до оригіналу
q5_K_M ██████ ~10 GB — добре
q4_K_M █████ ~9 GB ← оптимальний вибір ✓
q3_K_M ████ ~5 GB — помітна деградація
q2_K ██ ~3 GB — погана якістьQ<число>— кількість біт на вагу.Q4займає вдвічі менше ніжQ8._K— K-quant: розумніший алгоритм стиснення, краща якість при тому ж розмірі. Завжди краще ніж_0або_1._S / _M / _L— Small / Medium / Large: рівень якості всередині K-quant.Q4_K_M— найпоширеніший збалансований варіант.
Головне правило: краще більша модель з нижчою квантизацією, ніж менша з вищою.
14b q4_K_Mмайже завжди розумніша за7b q8_0.
Рекомендовані моделі для 16 ГБ VRAM
💡 Нові моделі виходять чи не щомісяця — цей список актуальний на момент публікації. Перевіряйте свіжі версії на ollama.com/library.
| Модель | Розмір файлу (Q4) | Швидкість | Найкраще для |
|---|---|---|---|
llama3.2:3b | 2.0 GB | ⚡⚡⚡ | Тест, розробка |
qwen3.5:4b | 3.4 GB | ⚡⚡⚡ | Дрібні задачі, дуже шустро |
ministral-3:8b | 6.0 GB | ⚡⚡⚡ | Альтернатива Qwen, родина Mistral |
qwen3.5:9b | 6.6 GB | ⚡⚡⚡ | Загальне, баланс — 🏆 мій вибір |
gemma4:e2b | 7.2 GB | ⚡⚡ | Мультимодальна (текст + зображення) |
ministral-3:14b | 9.1 GB | ⚡⚡ | Найбільша з Mistral, що комфортно влазить |
gemma4:e4b | 9.6 GB | ⚡⚡ | Якість + мультимодальність |
⚠️ Якщо модель не вміщується у VRAM повністю — Ollama може перенести частину на CPU. Генерація різко сповільнюється. Моделі 27B+ для 16 ГБ практично не підходять.
Завантажити модель:
ollama pull qwen3.5:9b
ollama list # переглянути завантажені
ollama rm llama3.2:3b # видалити непотрібну
💡 Моделі знаходити зручно на ollama.com/library. В Open WebUI вбудованого каталогу немає — потрібно знати назву наперед і тягнути через Settings → Admin Panel → Manage Models.
7. Open WebUI
Де запускати
Open WebUI спілкується з Ollama по HTTP — йому байдуже де фізично знаходиться Ollama.
| Варіант | Коли підходить |
|---|---|
| Та сама VM | Найпростіше |
| Окремий LXC/VM | Якщо хочете ізольовані сервіси |
| Інша машина | Вкажіть OLLAMA_BASE_URL=http://[IP-VM]:11434 |
💡 Якщо використовуєте community-scripts для Proxmox — там є готовий скрипт
openwebui.sh, який підіймає окремий LXC. Просто вкажіть IP вашої VM в налаштуваннях.
Встановлення Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker --version # перевіряємо⚠️ Після встановлення Docker Ollama може перестати бачити відеокарту. Перевіряємо:
sudo -u ollama nvidia-smi. Якщо не бачить — додаємо юзера в групи:sudo usermod -a -G video,render ollama sudo systemctl restart ollama ollama ps # PROCESSOR має бути 100% GPU, не CPU
Docker Compose
mkdir -p ~/open-webui && cd ~/open-webui
nano docker-compose.ymlservices:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
environment:
- OLLAMA_BASE_URL=http://192.168.X.X:11434
restart: unless-stopped
volumes:
open-webui:Замініть
192.168.X.Xна IP вашої Ubuntu VM.
docker compose up -d
docker ps # перевіряємо що контейнер runningВідкриваємо в браузері: http://[IP-VM]:3000
Перший зареєстрований акаунт автоматично стає адміністратором.

Типові помилки
| Проблема | Причина | Рішення |
|---|---|---|
| Ollama не бачить GPU | CPU type не “host” | VM → CPU → Type: host |
| NVIDIA драйвер не встановлюється | Secure Boot увімкнений | При створенні VM: Pre-enroll keys: false |
| Open WebUI не підключається до Ollama | OLLAMA_HOST не виставлений | systemd override: OLLAMA_HOST=0.0.0.0:11434 |
| Open WebUI не підключається до Ollama | Неправильний IP або порт | Перевірити OLLAMA_BASE_URL в docker-compose.yml |
| Генерація дуже повільна (~3–5 tok/s) | Ollama впав на CPU — GPU не бачить | nvidia-smi і ollama ps — чи показує GPU |
| Генерація помірно повільна (~15–20 tok/s) | CPU offloading — модель не влізла у VRAM | Обрати меншу модель або нижчу квантизацію |
ollama ps показує 100% CPU після Docker | ollama втратив доступ до GPU після Docker | sudo usermod -a -G video,render ollama + restart |
| Ollama не стартує / незрозуміла помилка | — | journalctl -u ollama -f |
Корисні посилання
- Ollama — підтримка GPU: docs.ollama.com/gpu
- Ollama — встановлення на Linux (AMD/ROCm): docs.ollama.com/linux
- Каталог моделей: ollama.com/library
- Open WebUI — Quick Start: docs.openwebui.com/getting-started/quick-start
- Proxmox — PCI(e) Passthrough: pve.proxmox.com/wiki/PCI(e)_Passthrough
- Proxmox форум — 2025 NVIDIA passthrough: forum.proxmox.com/…/169543
- Community-Scripts — Open WebUI: community-scripts.org/scripts/openwebui