Обзор развертывания LiteLLM на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: Права суперпользователя (root) для установки системных пакетов и управления Docker.
-
Сеть: Доступ к интернету для загрузки образов Docker и получения SSL-сертификатов.
-
Порты:
-
80(HTTP) — для проверки владения доменом и перенаправления на HTTPS. -
443(HTTPS) — для доступа к API и интерфейсу управления. -
4000(внутренний) — для работы приложения LiteLLM.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению используется динамически формируемый поддомен.
| Параметр | Значение |
|---|---|
| Префикс | litellm |
| Домен | hostkey.in |
| Полный шаблон | litellm{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Все основные данные приложения и конфигурации сосредоточены в следующих директориях:
-
/root/litellm— рабочая директория приложения (содержит.envиcompose.yml). -
/root/nginx— конфигурация прокси-сервера Nginx. -
/data/nginx— пользовательские конфигурации Nginx. -
/data/nginx/user_conf.d— файлы настроек виртуальных хостов. -
/data/nginx/letsencrypt— данные для проверки сертификатов SSL.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка системы:
-
Очистка системы от старых репозиториев Docker и устаревших ключей безопасности.
-
Установка системных пакетов
ca-certificatesиcurl. -
Установка среды выполнения Docker.
-
Развертывание контейнеров приложения:
-
Создание рабочей директории
/root/litellm. -
Генерация секретных ключей (
LITELLM_MASTER_KEY,LITELLM_SALT_KEY) и пароля базы данных для файла.env. -
Загрузка образов Docker.
-
Настройка проксирования и SSL:
-
Создание директорий для Nginx и Certbot.
-
Настройка конфигурации автоматического получения и обновления SSL-сертификатов через Let's Encrypt.
-
Настройка правил брандмауэра (UFW) для открытия портов 80 и 443.
Права доступа и безопасность¶
-
Брандмауэр: В системе
ufwразрешен входящий трафик по протоколам TCP на портах80и443. -
Безопасность данных: Файл
.envс критически важными данными (пароли, ключи) имеет права доступа0600и принадлежит пользователюroot. -
Изоляция: Приложение LiteLLM работает в закрытом режиме на порту
4000, доступ к которому извне осуществляется только через защищенный прокси-сервер Nginx.
Базы данных¶
В качестве хранилища используется контейнер PostgreSQL 16 (Alpine).
| Параметр | Значение |
|---|---|
| Имя базы данных | litellm |
| Пользователь БД | llmproxy |
| Метод хранения | Docker Volume (postgres-data) |
Контейнеры Docker и их запуск¶
Приложение разворачивается в составе двух основных групп контейнеров.
Группа LiteLLM (Application Stack)¶
Эти контейнеры управляются через compose.yml в директории /root/litellm.
Контейнер базы данных:
-
Имя образа:
docker.io/library/postgres:16-alpine -
Имя контейнера:
litellm-db -
Политика перезапуска:
unless-stopped -
Тома (volumes):
postgres-data:/var/lib/postgresql/data
Контейнер приложения:
-
Имя образа:
docker.litellm.ai/berriai/litellm:main-stable -
Имя контейнера:
litellm -
Политика перезапуска:
unless-stopped -
Порты:
127.0.0.1:4000 -> 4000(доступ только локально) -
Зависимости: Запуск после проверки готовности контейнера базы данных (
db).
Группа Прокси (Nginx Proxy Stack)¶
Эти контейнеры управляются через compose.yml в директории /root/nginx.
Контейнер Nginx Certbot:
-
Имя образа:
jonasal/nginx-certbot:6.2.0-nginx1.31.0 -
Политика перезапуска:
unless-stopped -
Сеть: Режим
host(для прямого взаимодействия с портами 80/443). -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d -
/data/nginx/letsencrypt:/var/www/letsencrypt
Инструкция по обновлению приложения¶
Для обновления основного приложения LiteLLM необходимо выполнить следующие действия:
-
Перейти в рабочую директорию приложения:
-
Загрузить актуальные версии образов:
-
Перезапустить контейнеры для применения изменений:
Расположение конфигурационных файлов и данных¶
-
Конфигурация приложения:
/root/litellm/.env -
Файл композиции Docker (приложение):
/root/litellm/compose.yml -
Конфигурация Nginx (прокси):
/data/nginx/user_conf.d/{ваш_домен}.conf -
Данные базы данных: Docker Volume
postgres-data
Доступные порты для подключения¶
-
HTTPS (API и UI):
443(через доменное имя) -
HTTP (Redirect):
80(автоматический редирект на HTTPS)