34 lines
2.2 KiB
Markdown
34 lines
2.2 KiB
Markdown
# FreeLLMAPI Catalog Proxy
|
|
|
|
Прозрачный кэширующий реверс-прокси для доставки оригинального официального каталога моделей FreeLLMAPI (`api.freellmapi.co/v1/latest`).
|
|
|
|
## Зачем это нужно
|
|
|
|
FreeLLMAPI не запрашивает список моделей напрямую у сторонних провайдеров (кроме LongCat и SiliconFlow). Для остальных (Routeway, UnoRouter, BazaarLink, OrcaRouter и др.) список моделей подгружается из внешнего подписанного каталога:
|
|
`https://api.freellmapi.co/v1/latest` (~560 КБ).
|
|
|
|
При прямой загрузке на российских каналах передача файла зависает после первых ~20 КБ из-за DPI/фильтрации больших ответов. Контейнер FreeLLMAPI падает по таймауту, и в базе остаются только предзашитые базовые модели, а добавленные ключи получают пустой список моделей.
|
|
|
|
## Как это работает
|
|
|
|
1. Прокси подключается к `https://api.freellmapi.co/v1/latest` через стабильный SOCKS5-маршрут (Германия).
|
|
2. Забирает **оригинальные байты** и официальный криптографический заголовок `x-catalog-signature` (Ed25519).
|
|
3. Кэширует файл локально на 12 часов.
|
|
4. Отдаёт каталог контейнеру FreeLLMAPI по локальной сети (`http://catalog-proxy:8080/v1/latest`).
|
|
5. FreeLLMAPI штатно верифицирует оригинальную цифровую подпись Ed25519 (`PINNED_CATALOG_PUBKEY`) и применяет актуальные модели.
|
|
|
|
## Запуск в Docker Compose
|
|
|
|
1. Скопируйте `.env.example` в `.env` и укажите переменные:
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
2. Запустите стек:
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
3. Проверьте логи синхронизации:
|
|
```bash
|
|
docker compose logs -f freellmapi
|
|
```
|