Complete markdown documentation
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
# Troubleshooting
|
||||
|
||||
Этот документ помогает быстро проверить типовые проблемы при запуске и работе Crank.
|
||||
|
||||
## Веб-интерфейс открывается, но данные не загружаются
|
||||
|
||||
Проверьте `admin-api`:
|
||||
|
||||
```bash
|
||||
curl http://127.0.0.1:3001/health
|
||||
docker compose logs -f admin-api
|
||||
```
|
||||
|
||||
Типовые причины:
|
||||
|
||||
- `admin-api` не подключился к PostgreSQL;
|
||||
- неверные `POSTGRES_HOST`, `POSTGRES_PORT`, `POSTGRES_USER`, `POSTGRES_PASSWORD`;
|
||||
- reverse proxy не проксирует `/api/admin/`;
|
||||
- браузерная сессия истекла.
|
||||
|
||||
## `502 Bad Gateway` через nginx
|
||||
|
||||
Проверьте, на каком адресе опубликованы контейнеры:
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
Если nginx работает на другом host, в `.env` нужно:
|
||||
|
||||
```env
|
||||
CRANK_PUBLISH_BIND=0.0.0.0
|
||||
```
|
||||
|
||||
Если nginx работает на том же host, обычно достаточно:
|
||||
|
||||
```env
|
||||
CRANK_PUBLISH_BIND=127.0.0.1
|
||||
```
|
||||
|
||||
## MCP-клиент получает `401 Unauthorized`
|
||||
|
||||
Проверьте:
|
||||
|
||||
- API-ключ создан именно для нужного агента;
|
||||
- ключ передается как `Authorization: Bearer <key>`;
|
||||
- ключ не был удален или отозван;
|
||||
- MCP URL содержит правильные `workspace_slug` и `agent_slug`.
|
||||
|
||||
## MCP-клиент не видит инструмент
|
||||
|
||||
Проверьте:
|
||||
|
||||
- операция опубликована;
|
||||
- операция привязана к агенту;
|
||||
- агент опубликован;
|
||||
- ключ выдан на этого агента;
|
||||
- прошел интервал `CRANK_MCP_REFRESH_MS`.
|
||||
|
||||
Для demo seed ожидаемый инструмент:
|
||||
|
||||
```text
|
||||
frankfurter_latest_rate
|
||||
```
|
||||
|
||||
## Тест операции возвращает ошибку внешнего API
|
||||
|
||||
Откройте preview запроса в wizard-е и проверьте:
|
||||
|
||||
- `base_url`;
|
||||
- `path_template`;
|
||||
- HTTP method;
|
||||
- query/path/body mapping;
|
||||
- auth profile;
|
||||
- статические заголовки.
|
||||
|
||||
Для Frankfurter рабочий запрос:
|
||||
|
||||
```text
|
||||
GET https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR
|
||||
```
|
||||
|
||||
## Секрет не виден после создания
|
||||
|
||||
Это ожидаемое поведение. Crank шифрует секрет и больше не возвращает его значение через UI или API.
|
||||
|
||||
Если значение нужно заменить, используйте **Ротировать**.
|
||||
|
||||
## После обновления не появился demo-пример
|
||||
|
||||
Проверьте:
|
||||
|
||||
```env
|
||||
CRANK_DEMO_SEED=true
|
||||
```
|
||||
|
||||
Затем перезапустите `admin-api`:
|
||||
|
||||
```bash
|
||||
docker compose up -d admin-api
|
||||
```
|
||||
|
||||
Seed идемпотентный: он не создает дубликаты, но поддерживает Frankfurter-пример.
|
||||
|
||||
## Контейнеры не стартуют из-за занятых портов
|
||||
|
||||
Проверьте, кто занимает порт:
|
||||
|
||||
```bash
|
||||
docker ps --format 'table {{.Names}}\t{{.Ports}}'
|
||||
sudo ss -ltnp
|
||||
```
|
||||
|
||||
Чаще всего конфликтуют:
|
||||
|
||||
- `3000` - UI;
|
||||
- `3001` - Admin API;
|
||||
- `3002` - MCP server;
|
||||
- `5432` - PostgreSQL, если включен profile `local-db`.
|
||||
|
||||
## PostgreSQL недоступен
|
||||
|
||||
Проверьте доступность из контейнера:
|
||||
|
||||
```bash
|
||||
docker compose exec admin-api sh -lc 'nc -vz "$POSTGRES_HOST" "$POSTGRES_PORT"'
|
||||
```
|
||||
|
||||
Проверьте переменные:
|
||||
|
||||
```bash
|
||||
docker compose exec admin-api env | grep POSTGRES
|
||||
```
|
||||
|
||||
## Где смотреть логи
|
||||
|
||||
```bash
|
||||
docker compose logs -f admin-api
|
||||
docker compose logs -f mcp-server
|
||||
docker compose logs -f ui
|
||||
```
|
||||
|
||||
Для подробных логов временно укажите:
|
||||
|
||||
```env
|
||||
CRANK_LOG_LEVEL=debug
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user