auto-sync: 2026-05-14 11:10:01

This commit is contained in:
Stream
2026-05-14 11:10:01 +03:00
parent 39ea7d1585
commit 1342832335
3 changed files with 239 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
# DEV TASK: Деплой CLIProxyAPI на mva154
**Статус:** Ready for dev
**Статус:** ✅ Выполнено
**Проект:** claude-cli-proxy
**BRD:** `tasks/claude-cli-proxy/BRD.md`

View File

@@ -0,0 +1,192 @@
# Claude CLI Proxy — PROJECT.md
**Статус:** ✅ Работает
**Дата запуска:** 2026-05-14
**Хост:** mva154 (82.22.50.71)
---
## Что это
OpenAI-compatible прокси, который оборачивает Claude Code CLI (авторизованный через Max подписку) в HTTP API. Позволяет OpenClaw использовать Claude по подписке вместо оплаты за токены.
## Архитектура
```
OpenClaw (openclaw-gateway контейнер)
↓ HTTP POST /v1/chat/completions
CLIProxyAPI (контейнер claude-cli-proxy, порт 8317)
↓ Claude Code CLI (OAuth)
Anthropic (Max 5x подписка, $100/мес)
```
## Компоненты
| Компонент | Описание |
|-----------|----------|
| CLIProxyAPI v7.0.6 | Go-сервер, Docker image `eceasy/cli-proxy-api:latest` |
| Claude Code CLI | Встроен в image, авторизован через OAuth |
| OAuth токен | `/home/slin/claude-cli-proxy/auth/claude-homenet542@gmail.com.json` |
## Расположение на сервере
```
/home/slin/claude-cli-proxy/
├── config.yaml # Конфигурация CLIProxyAPI
├── docker-compose.yml # Docker Compose файл
└── auth/ # OAuth токены (volume mount)
└── claude-homenet542@gmail.com.json
```
## Docker
```yaml
# docker-compose.yml
services:
cli-proxy-api:
image: eceasy/cli-proxy-api:latest
container_name: claude-cli-proxy
restart: unless-stopped
ports:
- "127.0.0.1:8317:8317"
volumes:
- ./config.yaml:/CLIProxyAPI/config.yaml
- ./auth:/root/.cli-proxy-api
networks:
- openclaw_openclaw-network
networks:
openclaw_openclaw-network:
external: true
```
## Конфигурация
```yaml
# config.yaml
port: 8317
remote-management:
allow-remote: false
secret-key: ""
auth-dir: "/root/.cli-proxy-api"
auth:
providers: [] # Отключает проверку API key, используется OAuth
debug: false
```
## OpenClaw интеграция
Provider в `~/.openclaw/openclaw.json`:
```json
"claude-cli-proxy": {
"baseUrl": "http://claude-cli-proxy:8317/v1",
"apiKey": "dummy",
"api": "openai-completions",
"models": [
{"id": "claude-sonnet-4-20250514", "name": "Claude Sonnet 4 (cli-proxy)"},
{"id": "claude-sonnet-4-6", "name": "Claude Sonnet 4.6 (cli-proxy)"},
{"id": "claude-opus-4-20250514", "name": "Claude Opus 4 (cli-proxy)"},
{"id": "claude-opus-4-7", "name": "Claude Opus 4.7 (cli-proxy)"}
]
}
```
Dev-агент: `model.primary = "claude-cli-proxy/claude-sonnet-4-20250514"`
## Доступные модели
| Модель | ID |
|--------|-----|
| Claude Sonnet 4 | claude-sonnet-4-20250514 |
| Claude Sonnet 4.6 | claude-sonnet-4-6 |
| Claude Opus 4 | claude-opus-4-20250514 |
| Claude Opus 4.7 | claude-opus-4-7 |
| Claude Opus 4.6 | claude-opus-4-6 |
| Claude Opus 4.1 | claude-opus-4-1-20250805 |
| Claude Haiku 4.5 | claude-haiku-4-5-20251001 |
## Лимиты (Max 5x, $100/мес)
- **5-часовое скользящее окно** — бюджет обновляется каждые 5 часов
- **Недельный cap** — считается только активное compute-время
- **Пиковые часы** (15:00-21:00 MSK) — расход x1.3-1.5
- ~50-200 промптов на 5-часовое окно (зависит от модели и длины)
### ⚠️ С 15 июня 2026
Agent SDK / `claude -p` будет тратить отдельный "Agent SDK credit". Детали TBD.
## Управление
```bash
# SSH на сервер
ssh slin@82.22.50.71
# Статус
cd /home/slin/claude-cli-proxy
docker compose ps
docker logs claude-cli-proxy --tail 20
# Перезапуск
docker compose restart
# Обновление image
docker compose pull && docker compose up -d
# Тест API
curl -s http://127.0.0.1:8317/v1/models | python3 -m json.tool
curl -s -X POST http://127.0.0.1:8317/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer dummy" \
-d '{"model":"claude-sonnet-4-20250514","messages":[{"role":"user","content":"hello"}]}'
```
## Переавторизация OAuth
Если токен протух:
```bash
cd /home/slin/claude-cli-proxy
# Остановить сервис
docker compose down
# Запустить login
docker run --rm -it \
-p 54545:54545 \
-v $(pwd)/auth:/root/.cli-proxy-api \
eceasy/cli-proxy-api:latest \
/CLIProxyAPI/CLIProxyAPI --claude-login --no-browser
# На локальной машине — SSH туннель:
# ssh -L 54545:127.0.0.1:54545 slin@82.22.50.71
# Открыть URL из вывода в браузере, залогиниться
# После логина — запустить сервис
docker compose up -d
```
## Безопасность
- Порт 8317 слушает **только на 127.0.0.1** (не наружу)
- Доступен только из docker network `openclaw_openclaw-network`
- `remote-management.allow-remote: false`
- Один аккаунт, без multi-account
## Troubleshooting
| Проблема | Решение |
|----------|---------|
| `{"data":[],"object":"list"}` (пустые модели) | OAuth токен отсутствует или протух → переавторизация |
| 429 от прокси | Rate limit Max подписки → подождать 5ч окно |
| Контейнер не стартует | `docker logs claude-cli-proxy` → проверить ошибки |
| OpenClaw не видит прокси | Проверить что оба в одной docker network |
## Файлы проекта
- `tasks/claude-cli-proxy/BRD.md` — бизнес-требования
- `tasks/claude-cli-proxy/DEV_TASK.md`ТЗ на деплой
- `tasks/claude-cli-proxy/PROJECT.md` — этот файл
---
*Создано: 2026-05-14 | Автор: Стрим 🌊*