1 min read

DeepSeek + OpenWebUI + Ollama через Docker Compose

DeepSeek + OpenWebUI + Ollama через Docker Compose

Локальный AI-стек на своём сервере — без подписок и без отправки данных третьим сторонам. Поднимаю DeepSeek через связку OpenWebUI и Ollama одним docker-compose файлом. Подходит и для личного использования, и для сервера с общим доступом.

Что понадобится

Если Docker ещё не установлен — у меня есть отдельный гайд по установке. Для массового развёртывания есть готовый Ansible playbook.

Шаг 1. Файл окружения

В директории проекта создаю .env:

# Настройки OpenWebUI
OPENWEBUI_PORT=8080
OLLAMA_BASE_URL=http://ollama:11434

# Настройки Ollama
OLLAMA_PORT=11434
OLLAMA_VOLUME=/root/.ollama
WEBUI_VOLUME=/app/backend/data

Шаг 2. Docker Compose файл

В той же директории — docker-compose.yml:

version: '3.8'

services:
  openwebui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: openwebui
    hostname: openwebui
    restart: unless-stopped
    ports:
      - "${OPENWEBUI_PORT}:8080"
    environment:
      OLLAMA_BASE_URLS: ${OLLAMA_BASE_URL}
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - open-webui-local:${WEBUI_VOLUME}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:${OPENWEBUI_PORT}"]
      interval: 10s
      retries: 5
      start_period: 15s

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    hostname: ollama
    restart: unless-stopped
    ports:
      - "${OLLAMA_PORT}:11434"
    volumes:
      - ollama-local:${OLLAMA_VOLUME}

volumes:
  ollama-local:
  open-webui-local:

Два сервиса: Ollama хранит и запускает модели, OpenWebUI даёт веб-интерфейс для общения с ними. Они общаются друг с другом по внутренней сети Docker через OLLAMA_BASE_URL.

Шаг 3. Запуск

docker-compose up -d

Команда скачает образы, создаст контейнеры и запустит их в фоне.

Шаг 4. Проверка

Какие контейнеры запущены:

docker ps

Логи каждого сервиса:

docker logs openwebui
docker logs ollama

Шаг 5. Открыть OpenWebUI

В браузере:

http://localhost:8080

Порт меняется, если задан другой OPENWEBUI_PORT в .env.

Управление сервисами

Перезапуск:

docker-compose restart

Остановка:

docker-compose down

Обновление образов:

docker-compose pull
docker-compose up -d --force-recreate

Стек поднят и готов к работе — быстро, модульно, легко управляется через те же три-четыре команды Docker Compose, что и любой другой сервис на сервере.


Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email