190 lines
5.8 KiB
Markdown
190 lines
5.8 KiB
Markdown
|
|
# Skyvern Proxy Setup - SUCCESS ✅
|
|||
|
|
|
|||
|
|
**Дата**: 20 февраля 2026
|
|||
|
|
**Статус**: ✅ Полностью работает
|
|||
|
|
|
|||
|
|
## Проблема
|
|||
|
|
|
|||
|
|
OpenAI API блокирует запросы из России:
|
|||
|
|
```
|
|||
|
|
Country, region, or territory not supported
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Решение
|
|||
|
|
|
|||
|
|
Настроен HTTP прокси для обхода geo-restriction.
|
|||
|
|
|
|||
|
|
## Конфигурация
|
|||
|
|
|
|||
|
|
### 1. Прокси настройки в .env
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Lines 77-79 in /home/vodorod/dorod/skyvern/.env
|
|||
|
|
HTTP_PROXY=http://user300088:6dwo3v@150.241.224.181:1356
|
|||
|
|
HTTPS_PROXY=http://user300088:6dwo3v@150.241.224.181:1356
|
|||
|
|
NO_PROXY=localhost,127.0.0.1,postgres,redis
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Важно**: Используйте `http://` протокол, а не `socks5://` для лучшей совместимости с httpx библиотекой.
|
|||
|
|
|
|||
|
|
### 2. API токен
|
|||
|
|
|
|||
|
|
Сгенерирован правильный токен для организации `org_development`:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/vodorod/dorod/skyvern
|
|||
|
|
.venv/bin/python scripts/create_api_key.py org_development
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Токен** (действителен до 2126 года):
|
|||
|
|
```
|
|||
|
|
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ5MTY1NzMxNjAsInN1YiI6Im9yZ19kZXZlbG9wbWVudCJ9.SXWQ9WGmJ-UN7sqCBd3oVhdXfi2rsbFatusjyMvczpM
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Запуск
|
|||
|
|
|
|||
|
|
### Backend
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/vodorod/dorod/skyvern
|
|||
|
|
/home/vodorod/dorod/skyvern/.venv/bin/python -m uvicorn skyvern.forge.api_app:app --host 0.0.0.0 --port 8000
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Или в фоне с логами:
|
|||
|
|
```bash
|
|||
|
|
pkill -9 -f "uvicorn skyvern.forge.api_app:app"
|
|||
|
|
cd /home/vodorod/dorod/skyvern
|
|||
|
|
nohup .venv/bin/python -m uvicorn skyvern.forge.api_app:app --host 0.0.0.0 --port 8000 > backend.log 2>&1 &
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Frontend (опционально)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/vodorod/dorod/skyvern/skyvern-frontend
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Тестирование
|
|||
|
|
|
|||
|
|
### 1. Создать тестовую задачу
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST http://localhost:8000/api/v1/tasks \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-H "x-api-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ5MTY1NzMxNjAsInN1YiI6Im9yZ19kZXZlbG9wbWVudCJ9.SXWQ9WGmJ-UN7sqCBd3oVhdXfi2rsbFatusjyMvczpM" \
|
|||
|
|
-d '{
|
|||
|
|
"url": "https://www.python.org",
|
|||
|
|
"navigation_goal": "Extract the main heading text from the page",
|
|||
|
|
"data_extraction_goal": "Extract the main heading that says what Python is",
|
|||
|
|
"proxy_location": "NONE"
|
|||
|
|
}'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Важно**: `proxy_location: "NONE"` заставляет использовать системный `HTTP_PROXY` вместо встроенных прокси Skyvern.
|
|||
|
|
|
|||
|
|
### 2. Проверить статус
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Сохраните task_id из предыдущего ответа
|
|||
|
|
curl http://localhost:8000/api/v1/tasks/<TASK_ID> \
|
|||
|
|
-H "x-api-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ5MTY1NzMxNjAsInN1YiI6Im9yZ19kZXZlbG9wbWVudCJ9.SXWQ9WGmJ-UN7sqCBd3oVhdXfi2rsbFatusjyMvczpM" | python3 -m json.tool
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Пример успешного результата
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"task_id": "tsk_497915468490620726",
|
|||
|
|
"status": "completed",
|
|||
|
|
"extracted_information": {
|
|||
|
|
"main_heading": "Python is a programming language that lets you work quickly and integrate systems more effectively."
|
|||
|
|
},
|
|||
|
|
"errors": [],
|
|||
|
|
"failure_reason": null
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Что работает
|
|||
|
|
|
|||
|
|
✅ Backend на порту 8000
|
|||
|
|
✅ PostgreSQL на порту 5433
|
|||
|
|
✅ Redis на порту 6380
|
|||
|
|
✅ Playwright браузер (Chromium 145.0.7632.6)
|
|||
|
|
✅ HTTP прокси для OpenAI API
|
|||
|
|
✅ Создание и выполнение задач
|
|||
|
|
✅ Извлечение данных со страниц
|
|||
|
|
|
|||
|
|
## Troubleshooting
|
|||
|
|
|
|||
|
|
### Ошибка "Could not validate credentials"
|
|||
|
|
|
|||
|
|
**Причина**: Токен не существует в БД или SECRET_KEY изменился.
|
|||
|
|
|
|||
|
|
**Решение**:
|
|||
|
|
```bash
|
|||
|
|
cd /home/vodorod/dorod/skyvern
|
|||
|
|
.venv/bin/python scripts/create_api_key.py org_development
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Используйте новый токен из output.
|
|||
|
|
|
|||
|
|
### Ошибка "Country, region, or territory not supported"
|
|||
|
|
|
|||
|
|
**Причина**:
|
|||
|
|
1. Прокси не настроен в .env
|
|||
|
|
2. Backend запущен ДО добавления прокси (старые settings)
|
|||
|
|
3. `proxy_location` не установлен в "NONE"
|
|||
|
|
|
|||
|
|
**Решение**:
|
|||
|
|
1. Проверьте `HTTP_PROXY` в `.env` файле
|
|||
|
|
2. Перезапустите backend: `pkill -9 -f uvicorn && .venv/bin/python -m uvicorn ...`
|
|||
|
|
3. Используйте `proxy_location: "NONE"` в API запросах
|
|||
|
|
|
|||
|
|
### Backend не запускается
|
|||
|
|
|
|||
|
|
**Причина**: Порт 8000 занят.
|
|||
|
|
|
|||
|
|
**Решение**:
|
|||
|
|
```bash
|
|||
|
|
# Убить старые процессы
|
|||
|
|
pkill -9 -f "uvicorn skyvern.forge.api_app:app"
|
|||
|
|
|
|||
|
|
# Проверить порт свободен
|
|||
|
|
ss -tlnp | grep 8000
|
|||
|
|
|
|||
|
|
# Запустить снова
|
|||
|
|
cd /home/vodorod/dorod/skyvern
|
|||
|
|
.venv/bin/python -m uvicorn skyvern.forge.api_app:app --host 0.0.0.0 --port 8000
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Следующие шаги
|
|||
|
|
|
|||
|
|
1. ✅ **DONE**: Настроить прокси
|
|||
|
|
2. ✅ **DONE**: Протестировать OpenAI API
|
|||
|
|
3. ⏹️ **TODO**: Создать парсинг задачи для реальных сайтов
|
|||
|
|
4. ⏹️ **TODO**: Интегрировать с n8n
|
|||
|
|
5. ⏹️ **TODO**: Настроить автоматические задачи
|
|||
|
|
|
|||
|
|
## Документация
|
|||
|
|
|
|||
|
|
- [Skyvern Docs](https://docs.skyvern.com)
|
|||
|
|
- [API Reference](https://docs.skyvern.com/api-reference)
|
|||
|
|
- [Proxy Configuration](https://docs.skyvern.com/running-tasks/proxy-locations)
|
|||
|
|
|
|||
|
|
## Backup прокси
|
|||
|
|
|
|||
|
|
На случай если текущий прокси перестанет работать:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Формат: протокол://юзер:пароль@хост:порт
|
|||
|
|
HTTP_PROXY=http://user300088:6dwo3v@150.241.224.181:1356
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Можно заменить на другой SOCKS5/HTTP прокси с доступом к OpenAI API.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Автор**: GitHub Copilot
|
|||
|
|
**Проект**: DOROD Ecosystem / Skyvern Integration
|
|||
|
|
**Обновлено**: 2026-02-20
|