Перейти к содержанию

Обзор развертывания Open WebUI и Ollama на сервере

Предпосылки и предварительные требования

Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. Система должна иметь доступ к интернету для загрузки пакетов и образов контейнеров. Требуется наличие прав суперпользователя (root) или доступа через sudo для установки системных компонентов и управления сервисами.

Необходимы следующие сетевые порты: - Порт 80 и 443 для работы веб-сервера Nginx и получения SSL-сертификатов. - Порт 8080 для доступа к интерфейсу Open WebUI. - Порт 11434 для локального доступа к API Ollama.

Структура файлов и каталогов

Конфигурация и данные приложения распределены по следующим директориям: - /root/nginx — каталог для конфигурации Docker Compose прокси-сервера. - /root/nginx/compose.yml — файл конфигурации для запуска контейнеров Nginx и Certbot. - /data/nginx/user_conf.d — директория с пользовательскими конфигурационными файлами Nginx. - /data/nginx/nginx-certbot.env — файл переменных окружения для настройки Certbot. - /etc/systemd/system/ollama.service — файл сервиса для управления Ollama. - /usr/share/ollama/.ollama/models — хранилище моделей искусственного интеллекта.

Процесс установки приложения

Установка состоит из двух основных этапов: развертывание бэкенда Ollama и фронтенда Open WebUI в контейнере Docker.

Установка Ollama: 1. Скачивается и выполняется скрипт установки Ollama. 2. Создается системный пользователь ollama. 3. Модифицируется файл сервиса /etc/systemd/system/ollama.service для добавления переменных окружения: - OLLAMA_HOST=0.0.0.0 - OLLAMA_ORIGINS=* - LLAMA_FLASH_ATTENTION=1 4. Демон systemd перезагружается, а сервис ollama перезапускается и включается в автозагрузку. 5. Скачивается модель qwen3:32b с использованием команды ollama pull.

Запуск Open WebUI: 1. Устанавливается утилита curl через менеджер пакетов apt. 2. Запускается контейнер Docker с образом ghcr.io/open-webui/open-webui:cuda. 3. Контейнер привязывается к порту 8080 и получает доступ ко всем GPU. 4. Настраивается переменная окружения OLLAMA_BASE_URLS для подключения к локальному экземпляру Ollama.

Контейнеры Docker и их запуск

В системе используются два типа контейнеризации: отдельный запуск контейнера Open WebUI и оркестрация через Docker Compose для прокси-сервера.

Контейнер Open WebUI: Запускается с помощью команды docker run со следующими параметрами: - Имя контейнера: open-webui. - Порт: -p 8080:8080. - Доступ к GPU: --gpus all. - Привязка тома: -v open-webui:/app/backend/data. - Переменные окружения: ENV=dev и OLLAMA_BASE_URLS=http://host.docker.internal:11434. - Политика перезапуска: --restart always.

Контейнеры Nginx и Certbot: Запускаются через файл compose.yml в директории /root/nginx. Конфигурация включает: - Образ: jonasal/nginx-certbot:latest. - Режим сети: host. - Том nginx_secrets для хранения сертификатов Let's Encrypt. - Монтирование конфигураций из /data/nginx/user_conf.d в /etc/nginx/user_conf.d. - Переменная CERTBOT_EMAIL для уведомлений.

Прокси серверы

Для обработки входящего трафика и обеспечения SSL-шифрования используется контейнер Nginx с Certbot.

Конфигурация прокси-сервера включает: - Автоматическое получение и обновление SSL-сертификатов через Certbot. - Направление трафика на внутренний порт 8080 через директиву proxy_pass http://127.0.0.1:8080;. - Использование пользовательских конфигурационных файлов в директории /data/nginx/user_conf.d. - Запуск контейнеров осуществляется командой docker compose up -d в директории /root/nginx.

Настройки прав

Права доступа к файлам и директориям настроены следующим образом: - Директория /root/nginx имеет владельца root и права 0755. - Файл конфигурации /root/nginx/compose.yml имеет владельца root и права 0644. - Пользователь ollama создан как системный пользователь. - Контейнер Open WebUI запускается с привилегиями, необходимыми для доступа к GPU и сетевым ресурсам.

Запуск, остановка и обновление

Управление сервисами осуществляется через стандартные инструменты Linux и Docker.

Управление Ollama: - Перезагрузка демона: systemctl daemon-reload. - Перезапуск сервиса: systemctl restart ollama. - Включение в автозагрузку: systemctl enable ollama.

Управление Open WebUI: - Контейнер управляется через команды Docker: - Остановка: docker stop open-webui. - Запуск: docker start open-webui. - Перезапуск: docker restart open-webui. - Удаление: docker rm open-webui.

Управление Nginx и Certbot: - Запуск: docker compose up -d в директории /root/nginx. - Остановка: docker compose down в директории /root/nginx. - Обновление конфигурации требует пересоздания контейнеров через docker compose up -d.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×