Обзор развертывания LiteLLM на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры и настройки:
-
Операционная система: Ubuntu.
-
Права доступа: Права суперпользователя (root) для установки системных пакетов и управления Docker.
-
Доменное имя: Необходимо наличие домена, соответствующего шаблону в разделе FDQN.
-
Порты:
-
80(HTTP) — для проверки SSL-сертификатов и перенаправления. -
443(HTTPS) — основной доступ к приложению. -
4000— внутренний порт приложения LiteLLM.
FDQN итоговой панели на домене hostkey.in¶
Доменное имя формируется автоматически на основе идентификатора сервера в системе управления.
| Параметр | Значение |
|---|---|
| Префикс | litellm |
| Домен | hostkey.in |
| Полный шаблон | litellm{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/root/litellm— рабочая директория приложения (конфигурации, Docker Compose). -
/root/nginx— конфигурация прокси-сервера Nginx. -
/data/nginx— пользовательские конфигурации и файлы для проверки SSL. -
/data/nginx/user_conf.d— файлы настроек виртуальных хостов. -
/data/nginx/letsencrypt— директория для верификации Certbot.
Процесс установки приложения¶
Развертывание выполняется в несколько этапов:
-
Подготовка системы:
-
Очистка репозиториев Docker (удаление старых источников и ключей).
-
Установка системных пакетов
ca-certificatesиcurl. -
Установка среды выполнения Docker.
-
Развертывание стека LiteLLM:
-
Создание рабочей директории
/root/litellm. -
Генерация секретных ключей (
LITELLM_MASTER_KEY,LITELLM_SALT_KEY) и пароля базы данных. -
Создание файла
.envс учетными данными (по умолчанию пользовательadmin). -
Загрузка образов Docker Compose.
-
Настройка проксирования:
-
Настройка Nginx для работы в режиме хоста (
network_mode: host) для обработки SSL через Certbot. -
Создание конфигурационных файлов для автоматического получения и обновления сертификатов Let's Encrypt.
Права доступа и безопасность¶
-
Брандмауэр (UFW): В системе автоматически открываются порты
80/tcpи443/tcp. -
Безопасность данных: Файл
.envимеет права доступа0600(чтение/запись только для root). Директория приложения ограничена правами0750. -
Секреты: Пароли и ключи генерируются случайным образом при первой установке.
Базы данных¶
Для хранения данных LiteLLM используется база данных PostgreSQL:
-
Образ:
postgres:16-alpine. -
Имя базы данных:
litellm. -
Пользователь:
llmproxy. -
Метод подключения: Через внутреннюю сеть Docker (host:
db). -
Хранение: Данные сохраняются в именованном томе
postgres-data.
Контейнеры Docker и их запуск¶
Приложение разворачивается в виде группы контейнеров.
Приложение LiteLLM¶
| Параметр | Значение |
|---|---|
| Имя образа | docker.litellm.ai/berriai/litellm:main-stable |
| Имя контейнера | litellm |
| Порты | 127.0.0.1:4000 -> 4000 (доступ только локально для прокси) |
| Переменные окружения | LITELLM_MODE=PRODUCTION, STORE_MODEL_IN_DB=True, DATABASE_URL |
| Политика перезапуска | unless-stopped |
База данных PostgreSQL¶
| Параметр | Значение |
|---|---|
| Имя образа | postgres:16-alpine |
| Имя контейнера | litellm-db |
| Переменные окружения | POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD |
| Политика перезапуска | unless-stopped |
Прокси-сервер Nginx (Certbot)¶
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:6.2.0-nginx1.31.0 |
| Режим сети | host |
| Тома (volumes) | nginx_secrets, /data/nginx/user_conf.d, /data/nginx/letsencrypt |
Инструкция по обновлению приложения¶
Для обновления основного приложения LiteLLM необходимо выполнить следующие действия:
-
Перейти в рабочую директорию приложения:
-
Обновить образы и перезапустить контейнеры: