Self-Hosting ChatGPT: Локальный Офлайн-бот в Docker 2024

Разверните Ja Н в Docker — полностью офлайн‑бот‑альтернатива ChatGPT. Пошаговый гайд по установке для homelab и конфиденциальной работы.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор17 января 2026 г.

Установка Docker

Установите Docker для управления зависимостями и изоляции среды. Инструкции даны для Ubuntu/Debian (стандарт для self-hosting).

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker

Установка Ollama

Ollama служит 'движком' для нейросети, скачивает веса моделей и запускает их как локальный HTTP-сервер.

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

Загрузка модели

Скачайте модель. Рекомендуется Llama 3 (8B) для баланса качества и скорости. Для слабых систем используйте phi3 или gemma2.

ollama pull llama3
ollama list

Запуск веб-интерфейса

Запустите Open WebUI через Docker. Интерфейс будет доступен на порту 3000.

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Начальная настройка и использование

Откройте браузер по адресу http://localhost:3000, создайте аккаунт (локальный) и выберите модель llama3:latest в выпадающем списке.

http://localhost:3000

Использование API (опционально)

Для разработчиков: Ollama эмулирует API OpenAI. Пример запроса на Python.

import requests
import json

url = "http://localhost:11434/api/chat"
data = {
    "model": "llama3",
    "messages": [
        {"role": "user", "content": "Расскажи анекдот про кота"}
    ],
    "stream": False
}

response = requests.post(url, json=data)
print(response.json()['message']['content'])

Управление и обновление

Команды для остановки сервисов и обновления веб-интерфейса.

# Остановка сервисов
docker stop open-webui
sudo systemctl stop ollama

# Обновление WebUI
docker stop open-webui && docker rm open-webui
# Затем повторите команду из шага 4

Вот подробный технический гайд по установке и развертыванию локальной альтернативы ChatGPT (J.A.) с использованием популярных open-source решений.


Как self-host J.A. — локальный, офлайн-альтернатива ChatGPT

Этот гайд описывает процесс развертывания локальной нейросетевой среды, полностью работающей на вашем оборудовании. Мы будем использовать технологический стек, позволяющий запустить大型语言模型 (LLM) в режиме сервера и взаимодействовать с ними через веб-интерфейс, аналогичный ChatGPT.

Архитектура решения

Для достижения цели мы используем следующий стек:

  1. LLM Runtime: Ollama — менеджер моделей и сервер для их запуска. Поддерживает формат GGUF и работает через API, совместимое с OpenAI.
  2. Веб-интерфейс: Open WebUI — богатый интерфейс, поддерживающий чаты, промты, настройки параметров генерации и управление моделями.
  3. Операционная система: Linux (Ubuntu/Debian) или macOS (инструкции для Linux, так как это стандарт self-hosting).

Системные требования

Перед началом убедитесь, что ваше оборудование соответствует минимальным требованиям:

  • Процессор: 4+ ядра (рекомендуется x86-64 или ARM64).
  • Оперативная память (RAM): Минимум 8 ГБ (для работы моделей до 7B параметров). Для моделей 13B+ рекомендуется 16+ ГБ.
  • Видеокарта (GPU): Необязательно, но настоятельно рекомендуется.
    • NVIDIA: От 4 ГБ VRAM (для ускорения).
    • Apple Silicon (M1/M2/M3): Использует Unified Memory, модели работают быстро нативно.
  • Дисковое пространство: От 5 ГБ свободного места (для базовой модели 7B + веб-интерфейс).

Подготовка окружения

Установите Docker. Это самый надежный способ изоляции и управления зависимостями.

Для Ubuntu/Debian:

# Обновление индексов
sudo apt-get update

# Установка необходимых пакетов
sudo apt-get install ca-certificates curl gnupg

# Добавление официального ключа Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Добавление репозитория
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Установка Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Добавление пользователя в группу docker (чтобы не писать sudo каждый раз)
sudo usermod -aG docker $USER

# ВАЖНО: Перелогиньтесь или выполните:
newgrp docker

Шаг 1: Установка Ollama

Ollama будет служить "движком" для нейросети. Она скачивает веса моделей и запускает их как локальный HTTP-сервер.

Выполните в терминале:

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

После установки сервис Ollama запустится автоматически. Проверьте его доступность:

curl http://localhost:11434
# Должно вернуть "Ollama is running"

Шаг 2: Загрузка модели

Теперь скачаем модель. Для начала рекомендуется Llama 3 (8B) — отличный баланс между качеством и скоростью.

В терминале выполните:

ollama pull llama3

Если у вас слабое железо, используйте ollama pull phi3 (меньше ресурсов) или ollama pull gemma2.

Проверьте, что модель загружена:

ollama list

Шаг 3: Запуск веб-интерфейса (Open WebUI)

Теперь запустим интерфейс, через который вы будете общаться с нейросетью. Мы используем Docker, чтобы не "засорять" систему зависимостями Python.

Выполните команду:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Разбор команды:

  • -d: Запуск в фоновом режиме (демон).
  • -p 3000:8080: Открыть порт 3000 на вашем компьютере (http://localhost:3000).
  • -v open-webui:/app/backend/data: Сохранение данных (история чатов, настройки) в Docker-том.
  • --restart always: Автозапуск при перезагрузке системы.

Шаг 4: Начальная настройка

  1. Откройте браузер и перейдите по адресу: http://localhost:3000.
  2. Вы увидите экран регистрации. Придумайте логин и пароль (они хранятся локально).
  3. После входа вы увидите интерфейс, похожий на ChatGPT.
  4. В верхнем выпадающем списке выберите модель, которую мы скачали (llama3:latest).

Теперь вы можете начать диалог. Взаимодействие полностью локальное: промпты не покидают ваш компьютер.

Шаг 5: Работа с API (Для разработчиков)

Поскольку Ollama эмулирует API OpenAI, вы можете использовать локальную нейросеть в своих скриптах.

Пример запроса на Python:

import requests
import json

url = "http://localhost:11434/api/chat"
data = {
    "model": "llama3",
    "messages": [
        {"role": "user", "content": "Расскажи анекдот про кота"}
    ],
    "stream": False
}

response = requests.post(url, json=data)
print(response.json()['message']['content'])

Шаг 6: Управление и обновление

Как остановить сервисы

Если нужно освободить ресурсы:

# Остановить веб-интерфейс
docker stop open-webui

# Остановить движок нейросети (если запускался как сервис)
sudo systemctl stop ollama

Как обновить

  1. Веб-интерфейс: Остановите и удалите старый контейнер, затем запустите новый:
    docker stop open-webui && docker rm open-webui
    # Запустите команду из Шага 3 заново
    
  2. Ollama: Обычно обновление происходит автоматически при перезапуске или через повторный запуск установочного скрипта.

Заключение

Вы развернули полноценную локальную систему ИИ. Это гарантирует:

  • Конфиденциальность: Ваши данные никогда не покидают компьютер.
  • Стоимость: Отсутствие ежемесячной подписки.
  • Гибкость: Вы можете загружать любые другие модели из библиотеки Ollama (ollama pull ...) и переключаться между ними в интерфейсе в реальном времени.
Поделиться:TelegramX / TwitterVK