feat: Add Russian i18n translations and fix CORS + API endpoint issues
Some checks failed
Run tests and pre-commit / Run tests and pre-commit hooks (push) Has been cancelled
Run tests and pre-commit / Frontend Lint and Build (push) Has been cancelled
Publish Fern Docs / run (push) Has been cancelled
Update OpenAPI Specification / update-openapi (push) Has been cancelled

- Implemented full Russian translation (ru) for 8 major pages
- Added LanguageSwitcher component with language detection
- Translated: Navigation, Settings, Workflows, Credentials, Banner, Examples
- Fixed API endpoint path: changed to use sans-api-v1 client for /v1/ endpoints
- Fixed CORS: added http://localhost:8081 to ALLOWED_ORIGINS
- Added locales infrastructure with i18next and react-i18next
- Created bilingual JSON files (en/ru) for 4 namespaces
- 220+ translation keys implemented
- Backend CORS configuration updated in .env
- Documentation: I18N implementation guides and installation docs
This commit is contained in:
Vodorod
2026-02-21 08:29:21 +03:00
parent b56d724ed8
commit 6b69159550
34 changed files with 3715 additions and 217 deletions

176
QUICK-START.md Normal file
View File

@@ -0,0 +1,176 @@
# Skyvern Quick Start
**Быстрый запуск Skyvern с прокси для обхода geo-restriction OpenAI API.**
## Prerequisites ✅
- ✅ Python 3.11+
- ✅ PostgreSQL 16 (порт 5433)
- ✅ Redis 7 (порт 6380)
- ✅ Playwright Chromium установлен
- ✅ HTTP прокси с доступом к OpenAI API
## 1. Запуск сервисов
```bash
# PostgreSQL
docker start postgres-dorod # или ваш контейнер
# Redis
docker start redis-dorod # или ваш контейнер
# Проверка
pg_isready -h localhost -p 5433
redis-cli -p 6380 ping
```
## 2. Запуск Backend
```bash
cd /home/vodorod/dorod/skyvern
# Убить старые процессы
pkill -9 -f "uvicorn skyvern.forge.api_app:app"
# Запустить backend
.venv/bin/python -m uvicorn skyvern.forge.api_app:app --host 0.0.0.0 --port 8000
# Или в фоне с логами
nohup .venv/bin/python -m uvicorn skyvern.forge.api_app:app --host 0.0.0.0 --port 8000 > backend.log 2>&1 &
# Проверить
curl -s http://localhost:8000/api/health | python3 -m json.tool
```
## 3. Создать API токен (если нужен новый)
```bash
cd /home/vodorod/dorod/skyvern
.venv/bin/python scripts/create_api_key.py org_development
```
**Текущий токен** (действителен до 2126):
```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ5MTY1NzMxNjAsInN1YiI6Im9yZ19kZXZlbG9wbWVudCJ9.SXWQ9WGmJ-UN7sqCBd3oVhdXfi2rsbFatusjyMvczpM
```
## 4. Тестовая задача
```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",
"data_extraction_goal": "Extract main heading text",
"proxy_location": "NONE"
}'
```
**Ожидаемый результат**:
```json
{"task_id": "tsk_..."}
```
## 5. Проверить результат
```bash
# Замените TASK_ID на полученный task_id
curl http://localhost:8000/api/v1/tasks/TASK_ID \
-H "x-api-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQ5MTY1NzMxNjAsInN1YiI6Im9yZ19kZXZlbG9wbWVudCJ9.SXWQ9WGmJ-UN7sqCBd3oVhdXfi2rsbFatusjyMvczpM" \
| python3 -m json.tool
```
**Ожидаемый статус**: `"status": "completed"`
## Troubleshooting
### ❌ "Could not validate credentials"
```bash
# Создать новый токен
cd /home/vodorod/dorod/skyvern
.venv/bin/python scripts/create_api_key.py org_development
# Использовать новый токен из output
```
### ❌ "Country not supported"
```bash
# Проверить прокси в .env
cat /home/vodorod/dorod/skyvern/.env | grep PROXY
# Должно быть:
# HTTP_PROXY=http://user300088:6dwo3v@150.241.224.181:1356
# HTTPS_PROXY=http://user300088:6dwo3v@150.241.224.181:1356
# Перезапустить backend
pkill -9 -f uvicorn
cd /home/vodorod/dorod/skyvern
.venv/bin/python -m uvicorn skyvern.forge.api_app:app --host 0.0.0.0 --port 8000
```
### ❌ Backend не запускается
```bash
# Проверить порт
ss -tlnp | grep 8000
# Убить процесс если занят
pkill -9 -f "uvicorn skyvern.forge.api_app:app"
# Проверить PostgreSQL
pg_isready -h localhost -p 5433
# Проверить Redis
redis-cli -p 6380 ping
# Запустить снова
cd /home/vodorod/dorod/skyvern
.venv/bin/python -m uvicorn skyvern.forge.api_app:app --host 0.0.0.0 --port 8000
```
### ❌ Task fails или timeout
```bash
# Увеличить max_steps_per_run
"max_steps_per_run": 100
# Или упростить navigation_goal/data_extraction_goal
```
## Файлы конфигурации
- **Environment**: `/home/vodorod/dorod/skyvern/.env`
- **Backend logs**: `/home/vodorod/dorod/skyvern/backend.log`
- **Database**: PostgreSQL localhost:5433
- **Redis**: localhost:6380
## Документация
- [Полная настройка прокси](PROXY-SETUP-SUCCESS.md)
- [Примеры парсинга](PARSING-EXAMPLES.md)
- [Официальная документация](https://docs.skyvern.com)
## Порты
- **Backend API**: 8000
- **Frontend** (опционально): 5173
- **PostgreSQL**: 5433
- **Redis**: 6380
## Следующие шаги
1. ✅ Запустить backend
2. ✅ Протестировать простую задачу
3. ⏹️ Создать более сложные парсинг сценарии (см. PARSING-EXAMPLES.md)
4. ⏹️ Интегрировать с n8n для автоматизации
5. ⏹️ Настроить мониторинг задач
---
**Статус**: ✅ Работает
**Последний тест**: 2026-02-20
**Версия**: Skyvern open-source (latest)