С помощью этого руководства вы разверните веб-интерфейс Open WebUI на бесплатной виртуальной машине в облаке Cloud.ru Evolution. Создадите виртуальную машину Ubuntu 22.04, назначите ей публичный IP-адрес, установите Docker и Docker Compose, запустите Open WebUI и опубликуете сервис через Nginx с SSL-сертификатом, выпущенным в Let’s Encrypt. В результате вы сконфигурируете Open WebUI для работы с Foundation Models и получите сервис, готовый к работе.
Вы будете использовать следующие сервисы:
Foundation Models — сервис для доступа к API популярных фундаментальных моделей машинного обучения с открытым исходным кодом.
Виртуальные машины — сервис, в рамках которого предоставляется виртуальная машина.
Docker — система контейнеризации.
Docker Compose — инструмент для запуска и управления Docker-контейнерами.
Бесплатный сервис nip.io для получения публичного доменного имени и сертификата. Вы также можете использовать собственное зарегистрированное доменное имя и SSL-сертификат для организации доступа.
Nginx — веб-сервер для проксирования запросов и организации защищeнного HTTPS-доступа к приложению.
Let’s Encrypt — сервис для автоматического получения бесплатного SSL-сертификата.
Open WebUI — веб-интерфейс с открытым исходным кодом для работы с различными моделями искусственного интеллекта.
Шаги:
Перед началом работы
-
Если вы уже зарегистрированы, войдите под своей учетной записью.
Загрузите публичную часть SSH-ключа в облако Cloud.ru Evolution.
1. Разверните необходимые ресурсы в облаке
На этом шаге вы создадите группу безопасности и виртуальную машину.
Создайте группу безопасности с названием open-web-ui и добавьте в нее правила:
Правило входящего трафика 1:
Протокол: TCP
Порт: 443
Тип источника: IP-адрес
Источник: 0.0.0.0/0
Правило входящего трафика 2:
Протокол: TCP
Порт: 80
Тип источника: IP-адрес
Источник: 0.0.0.0/0
Правило исходящего трафика:
Протокол: Любой
Тип адресата: IP-адрес
Адресат: 0.0.0.0/0
На странице Сети → Группы безопасности убедитесь, что отображается группа безопасности open-web-ui со статусом «Создана».
Создайте бесплатную виртуальную машину со следующими параметрами:
Название: open-web-ui
Образ: публичный образ Ubuntu 22.04
Подключить публичный IP: включено
Публичный IP: Арендовать новый
Группы безопасности: SSH-access_ru.AZ-1, open-web-ui
Логин: openwebui
Метод аутентификации: Публичный ключ и Пароль
Публичный ключ: укажите ранее созданный SSH-ключ
Пароль: задайте надежный пароль
Имя хоста: open-web-ui
На странице Инфраструктура → Виртуальные машины убедитесь, что отображается виртуальная машина open-web-ui со статусом «Запущена».
2. Сгенерируйте API-ключ для доступа к Foundation Models
Следуйте инструкции по созданию API-ключа для Foundation Models. Сохраните API-ключ, он будет использоваться для конфигурации сервиса.
На верхней панели слева нажмите
и перейдите в раздел Пользователи, на вкладку Сервисные аккаунты.
Нажмите на название сервисного аккаунта, который будете использовать для отправки запроса к модели.
Перейдите на вкладку API-ключи.
Нажмите Создать API-ключ.
Введите название и описание API-ключа, которое поможет в будущем идентифицировать его среди других ключей.
Заполните параметры API-ключа:
Сервисы — ml_inference_ai_marketplace.
Время действия — срок действия API-ключа и часовой пояс. Вы можете установить значение от одного дня до одного года с текущей даты. Если параметр не задан, срок действия ключа устанавливается на максимальное значение — один год. С целью повышения уровня безопасности рекомендуется выставлять средние значения, например 90 дней.
Интервал работы ключа — один или несколько интервалов времени, в которые можно использовать API-ключ.
Нажмите Создать.
Сохраните Key Secret. После закрытия окна получить его будет нельзя.
Созданный API-ключ появится в списке ключей в статусе «Активен». Подробнее о работе с API-ключом.
3. Настройте окружение на виртуальной машине
На этом шаге вы установите необходимые пакеты и настроите систему на виртуальной машине.
Подключитесь к виртуальной машине open-web-ui через серийную консоль или по SSH.
Обновите систему и установите необходимые зависимости:
sudo apt update && sudo apt upgrade -y &&\sudo apt install -y curl apt-transport-https\ca-certificates\software-properties-common\gnupg2\lsb-releaseПосле обновления желательно перезагрузить машину:
sudo rebootУстановите Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install docker-ce docker-ce-cli containerd.io -yДайте текущему пользователю права на запуск Docker:
sudo usermod -aG docker $USERnewgrp dockerУстановите Docker Compose:
sudo apt-get install docker-compose -yПроверьте, что Docker и Docker Compose установлены корректно:
docker --versiondocker compose versionУстановите сервер Nginx:
sudo apt install nginx -ysudo systemctl start nginxsudo systemctl enable nginxУстановите Let’s Encrypt и плагин для Nginx:
sudo apt install certbot python3-certbot-nginx -y
4. Настройте Nginx и HTTPS
На этом шаге настройте службу Nginx и обеспечьте доступ по HTTPS.
Подключитесь к виртуальной машине open-web-ui через серийную консоль или по SSH.
Настройте файервол:
sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enableСоздайте конфигурационный файл:
sudo nano /etc/nginx/sites-available/openwebui.confВставьте конфигурацию, заменив <ip-address> на IP-адрес вашей виртуальной машины:
server {listen 80;server_name webui.<ip-address>.nip.io www.webui.<ip-address>.nip.io;location / {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}}Примените конфигурацию и перезапустите Nginx:
sudo ln -sf /etc/nginx/sites-available/openwebui.conf /etc/nginx/sites-enabled/openwebui.confsudo rm -f /etc/nginx/sites-enabled/defaultsudo nginx -tsudo systemctl reload nginxПроверьте, что Nginx работает:
sudo systemctl status nginxСервис Nginx должен быть в статусе «active (running)».
Перейдите по адресу http://webui.<ip-address>.nip.io. Откроется страница с текстом «502 Bad Gateway».
Запустите команду для выпуска SSL-сертификата:
sudo certbot --nginx -d webui.<ip-address>.nip.io --redirect --agree-tos -m <email>Где:
<ip-address> — IP-адрес вашей виртуальной машины.
<email> — email для регистрации сертификата.
После выпуска сертификата перейдите по адресу https://webui.<ip-address>.nip.io.
Откроется страница с текстом «502 Bad Gateway». В свойствах сайта браузер отметит соединение как безопасное.
5. Разверните приложение Open WebUI
Разверните серверное приложение Open WebUI с помощью Docker Compose.
Подключитесь к виртуальной машине open-web-ui через серийную консоль или по SSH.
Создайте структуру проекта:
mkdir -p $HOME/openwebuicd $HOME/openwebuiСоздайте файл docker-compose.yml:
nano docker-compose.ymlВставьте содержимое в файл docker-compose.yml:
services:open-web-ui:image: ghcr.io/open-webui/open-webui:latestports:- '8080:8080'env_file:- ./.envvolumes:- open-web-ui:/app/backend/datarestart: alwaysvolumes:open-web-ui:Создайте файл конфигурации .env:
nano .envВставьте содержимое в файл, заменив переменные на значения:
OPENAI_API_BASE_URL=https://foundation-models.api.cloud.ru/v1/OPENAI_API_KEY=<api-key>Где <api-key> — ключ для доступа к сервису Foundation Models, сгенерированный на шаге 2.
Запустите сервис:
docker-compose up -dПроверьте, что сервис запущен:
docker compose psПерейдите по адресу https://webui.<ip-address>.nip.io. Откроется страница Open WebUI, при первом входе система попросит ввести регистрационные данные Администратора.
В интерфейсе Open WebUI выберите модель для работы.
Введите ваш запрос в чат и получите ответ от LLM-модели Foundation Models.
6. Отключите доступ по SSH для виртуальной машины
Для повышения безопасности закройте доступ по SSH, после того как вы развернули и настроили сервис.
В личном кабинете Cloud.ru на верхней панели слева нажмите
и выберите Инфраструктура → Виртуальные машины.
В списке виртуальных машин выберите open-web-ui.
Перейдите на вкладку Сетевые параметры.
В строке подсети нажмите
и выберите Изменить группы безопасности.
Удалите группу SSH-access_ru и сохраните изменения.
Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH. После отключения доступа по SSH, администрирование сервиса будет доступно через серийную консоль виртуальной машины.
Результат
В данной лабораторной работе вы развернули чат-сервис для работы в облаке Cloud.ru с сетевой изоляцией и публикацией по HTTPS. Полученные навыки помогут вам создавать AI-сервисы с использованием сервисов Foundation Models.
Вы можете добавить аутентификацию по SSO или подключить внешнее S3 хранилище для хранения файлов, которые пользователи добавляют в Open WebUI при работе с моделями, например, Evolution Object Storage.
- Шаги:
- Перед началом работы
- 1. Разверните необходимые ресурсы в облаке
- 2. Сгенерируйте API-ключ для доступа к Foundation Models
- 3. Настройте окружение на виртуальной машине
- 4. Настройте Nginx и HTTPS
- 5. Разверните приложение Open WebUI
- 6. Отключите доступ по SSH для виртуальной машины
- Результат