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

Обзор развертывания 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.

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

Развертывание выполняется в несколько этапов:

  1. Подготовка системы:

  2. Очистка репозиториев Docker (удаление старых источников и ключей).

  3. Установка системных пакетов ca-certificates и curl.

  4. Установка среды выполнения Docker.

  5. Развертывание стека LiteLLM:

  6. Создание рабочей директории /root/litellm.

  7. Генерация секретных ключей (LITELLM_MASTER_KEY, LITELLM_SALT_KEY) и пароля базы данных.

  8. Создание файла .env с учетными данными (по умолчанию пользователь admin).

  9. Загрузка образов Docker Compose.

  10. Настройка проксирования:

  11. Настройка Nginx для работы в режиме хоста (network_mode: host) для обработки SSL через Certbot.

  12. Создание конфигурационных файлов для автоматического получения и обновления сертификатов 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 необходимо выполнить следующие действия:

  1. Перейти в рабочую директорию приложения:

    cd /root/litellm
    

  2. Обновить образы и перезапустить контейнеры:

    docker compose pull && docker compose up -d
    

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