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

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

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

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

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

  2. Очистка системы от старых репозиториев Docker и устаревших ключей безопасности.

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

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

  5. Развертывание контейнеров приложения:

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

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

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

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

  10. Создание директорий для Nginx и Certbot.

  11. Настройка конфигурации автоматического получения и обновления SSL-сертификатов через Let's Encrypt.

  12. Настройка правил брандмауэра (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 необходимо выполнить следующие действия:

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

    cd /root/litellm
    

  2. Загрузить актуальные версии образов:

    docker compose pull
    

  3. Перезапустить контейнеры для применения изменений:

    docker compose up -d
    

Расположение конфигурационных файлов и данных

  • Конфигурация приложения: /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)

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