
Введение
Собственный локальный центр ИИ открывает возможности для автоматизации задач, работы с конфиденциальными данными и создания персональных ассистентов без привязки к облаку и регулярных платежей. Здесь шаг за шагом разбирается, как собрать на домашнем сервере хаб для ИИ-автоматизаций с полным контролем, защитой данных и удобным управлением.
В основе лежат Docker для контейнеризации приложений, Ollama для локального запуска моделей машинного обучения, n8n для визуального построения цепочек автоматизаций и Portainer для простого администрирования. Такая конфигурация работает на x86-64-системах средней мощности, например мини-ПК или старом десктопе с минимум 8 ГБ оперативной памяти, способных тянуть несколько сервисов одновременно.
Зачем нужен локальный ИИ-хаб
Самостоятельное размещение инструментов превращает пользователя сервисов в владельца инфраструктуры, что дает серьезные преимущества. Локальный центр обеспечивает конфиденциальность (данные не уходят за пределы сети), экономию (без затрат на API) и полную гибкость настройки.
Сердце хаба — связка компонентов, где:
- Ollama выступает приватным ИИ-мозгом на устройстве, обрабатывая задачи генерации и анализа текста
- n8n соединяет Ollama с другими приложениями (календарями, почтой, файлами) для автоматизированных процессов
- Docker формирует базу, упаковывая каждый инструмент в изолированные контейнеры
Основные компоненты локального ИИ-хаба
| Инструмент | Основная функция | Ключевые плюсы для хаба |
|---|---|---|
| Docker/Portainer | Контейнеризация и управление | Изолирует приложения, упрощает развертывание и дает визуальную панель управления |
| Ollama | Сервер локальных больших языковых моделей (LLM) | Запускает ИИ-модели на устройстве для приватности, предоставляет API для интеграций |
| n8n | Платформа автоматизации workflow | Визуально связывает Ollama с сервисами (API, базы данных, файлы) для мощных автоматизаций |
| Nginx Proxy Manager | Безопасный доступ и маршрутизация | Обеспечивает защищенный веб-шлюз к сервисам с легкой настройкой SSL-сертификатов |
Подготовка серверной основы
Сначала убедитесь, что сервер готов к работе. Рекомендуется свежая установка Ubuntu Server LTS или другой похожей Linux-дистрибутив. После установки подключитесь по SSH. Главный шаг — установка Docker, который запустит все остальные инструменты.
Установка Docker и Docker Compose
Выполните эти команды в терминале для установки Docker и Docker Compose. Последний позволяет описывать и контролировать многоконтейнерные приложения через YAML-файл.
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -yПроверка установки и настройка прав
Проверьте установку и добавьте пользователя в группу Docker, чтобы запускать команды без sudo:
sudo docker version
sudo usermod -aG docker $USERРезультат:

Перелогиньтесь, чтобы изменения вступили в силу.
Управление через Portainer
Вместо чистой командной строки разверните Portainer — веб-интерфейс для Docker. Создайте папку и файл docker-compose.yml:
mkdir -p ~/portainer && cd ~/portainer
nano docker-compose.ymlВставьте конфигурацию: Docker скачает образ Portainer, настроит автозапуск и откроет веб-интерфейс на порту 9000.
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:Сохраните (Ctrl+X, Y, Enter) и запустите:
docker compose up -dВывод:

Откройте в браузере http://YOUR_SERVER_IP:9000 (для локального — http://localhost:9000).

При необходимости перезапустите контейнер:
sudo docker start portainer
Создайте учетку администратора, и откроется дашборд Portainer.

Это центр управления всеми контейнерами: запуск, остановка, логи и мониторинг.
Установка Ollama: Локальный ИИ-движок
Ollama упрощает запуск открытых больших языковых моделей вроде Llama 3.2 или Mistral прямо на устройстве. Она дает простой API для n8n и других приложений.
Развертывание Ollama в Docker
Docker гарантирует стабильность. Создайте папку и docker-compose.yml:
mkdir -p ~/ollama && cd ~/ollama
nano docker-compose.ymlКонфигурация с volumes для хранения моделей:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
volumes:
ollama_data:Запустите: docker compose up -d.
Загрузка и запуск первой модели
После старта контейнера загрузите модель, например Llama 3.2 — эффективную и мощную.
Команда внутри контейнера:
docker exec -it ollama ollama pull llama3.2Демонстрация: Запрос к Ollama
Теперь общайтесь с локальным ИИ. Команда отправляет промт в модель:

docker exec -it ollama ollama run llama3.2 "Write a short haiku about technology."В терминале появится сгенерированный текст. API Ollama доступно по http://YOUR_SERVER_IP:11434 для n8n.

Интеграция n8n для умной автоматизации
n8n — инструмент для визуальных workflow: перетаскивайте узлы, чтобы строить цепочки вроде "при сохранении документа — суммировать через Ollama и отправить в заметки".
Развертывание n8n в Docker
Создайте папку для n8n с базой данных для хранения workflow и данных выполнений.
mkdir -p ~/n8n && cd ~/n8n
nano docker-compose.ymlservices:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_PROTOCOL=http
- WEBHOOK_URL=http://YOUR_SERVER_IP:5678/
- N8N_ENCRYPTION_KEY=your_secure_encryption_key_here
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=your_secure_db_password
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- db
db:
image: postgres:17-alpine
container_name: n8n_db
restart: unless-stopped
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=your_secure_db_password
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:Подставьте YOUR_SERVER_IP и пароли. Запустите docker compose up -d. Доступ по http://YOUR_SERVER_IP:5678.
Демонстрация: Первый ИИ-workflow
Построим цепочку, где n8n через Ollama генерирует идеи для фантастики.
- В редакторе n8n добавьте узел "Schedule Trigger", настройте на ручной запуск для теста
- Добавьте "HTTP Request":
- Method: POST
- URL: http://ollama:11434/api/generate
- Body Content Type: JSON
- JSON body: {"model": "llama3.2", "prompt": "Generate three ideas for a sci-fi short story."}
- Узел "Set" для извлечения текста:
{{ $json["response"] }} - Узел "Code":
items = [{"json": {"story_ideas": $input.item.json}}]; return items;для форматирования - Подключите "Email Send" (с настройкой почты) или "Save to File" для вывода
Нажмите "Execute Workflow". n8n обратится к Ollama, получит идеи и обработает их. Получили приватного ИИ-ассистента.
Защита хаба через Nginx Proxy Manager
Сервисы висят на разных портах (Portainer: 9000, n8n: 5678). Nginx Proxy Manager (NPM) организует доступ по поддоменам (portainer.home.net) с бесплатным SSL от Let’s Encrypt.
Развертывание Nginx Proxy Manager
mkdir -p ~/npm && cd ~/npm
nano docker-compose.ymlservices:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
volumes:
data:
letsencrypt:Запустите docker compose up -d.
Админка на http://YOUR_SERVER_IP:81. Логин: admin@example.com / changeme — смените сразу.

Демонстрация: Защита доступа к n8n
- На роутере пробросьте порты 80 и 443 на IP сервера — единственный нужный проброс
- В админке NPM (your-server-ip:81) Hosts → Proxy Hosts → Add Proxy Host

- Для n8n:
- Domain: n8n.yourdomain.com (или поддомен на ваш домашний IP)
- Scheme: http
- Forward Hostname / IP: n8n (Docker-сеть резолвит имя контейнера)
- Forward Port: 5678
- В SSL запросите Let’s Encrypt, включите force SSL
Теперь n8n по https://n8n.yourdomain.com. Повторите для Portainer (portainer.yourdomain.com → portainer:9000).
Заключение
Готов полноценный приватный хаб ИИ-автоматизаций. Дальше можно:
- Расширение Ollama: Тестируйте модели вроде Mistral для скорости или codellama для кода
- Сложные workflow в n8n: Интегрируйте с внешними API (Google Calendar, Telegram, RSS) или локальными сервисами (файловый сервер)
- Мониторинг: Добавьте Uptime Kuma через Docker для слежки за сервисами
Обычное железо превращается в мощный приватный цифровой мозг. Полный контроль над ПО и данными без абонентки. Навыки работы с контейнерами, оркестрацией и ИИ-автоматизацией — база современной независимой инфраструктуры.
Дополнительные материалы
- Официальные уроки Docker
- Гид по self-hosting на GitHub — обширный список ПО и идей
- Документация Portainer
- Уроки по ИИ в n8n