1.9 KiB
Claude Wrapper Proxy — Docker
Расположение
| Item | Value |
|---|---|
| Путь | ~/Docker/claude-wrapper-proxy/ |
| Compose | docker-compose.yml |
| Dockerfile | Dockerfile |
| Env | .env — содержит CLAUDE_CODE_OAUTH_TOKEN |
| Порт | 3457 (хостовый на 3456) |
Основа
ChrisCross3/claude-proxy-full — самый продвинутый форк с MCP injection, Isolated mode, Caller-Dispatched Tools.
Проблемы
"Not logged in" при старте
Причина: OAuth токен expired. ~/.claude/.credentials.json имеет expiresAt, который истекает. Claude CLI не может обновить через read-only volume.
Решение: передать CLAUDE_CODE_OAUTH_TOKEN в .env. Токен берётся из живой сессии Claude CLI или из .hermes/.env.
Node.js на Alpine не отвечает на внешние запросы
Причина: index.js слушает на 127.0.0.1 внутри контейнера. Docker port mapping не перенаправляет с 0.0.0.0 на 127.0.0.1.
Решение: в Dockerfile пропатчен index.js — host заменён с 127.0.0.1 на 0.0.0.0.
JsonWebTokenError при старте
Причина: пустой OAuth токен. Claude CLI внутри контейнера требует CLAUDE_CODE_OAUTH_TOKEN в env.
Решение: токен передан через .env + env_file в docker-compose.
Сборка и запуск
cd ~/Docker/claude-wrapper-proxy
docker-compose build
docker-compose up -d
Проверка: curl http://localhost:3457/v1/health → должен вернуть Hello.
Использование в Hermes
В ~/.hermes/config.yaml:
providers:
claude:
base_url: http://localhost:3457/v1