348 lines
8.3 KiB
Markdown
348 lines
8.3 KiB
Markdown
# Руководство по установке асинхронной системы Lyngsat
|
||
|
||
## Вариант 1: Полная установка с Celery (рекомендуется)
|
||
|
||
### Шаг 1: Установка зависимостей
|
||
|
||
```bash
|
||
pip install -r dbapp/requirements.txt
|
||
```
|
||
|
||
Это установит:
|
||
- `celery>=5.4.0`
|
||
- `django-celery-results>=2.5.1`
|
||
- И все остальные зависимости
|
||
|
||
### Шаг 2: Применение миграций
|
||
|
||
```bash
|
||
cd dbapp
|
||
python manage.py migrate
|
||
```
|
||
|
||
Это создаст:
|
||
- Таблицу `lyngsatapp_lyngsat` для данных Lyngsat
|
||
- Таблицы `django_celery_results_*` для результатов Celery
|
||
|
||
### Шаг 3: Запуск сервисов
|
||
|
||
```bash
|
||
# Запуск Redis и FlareSolver
|
||
docker-compose up -d redis flaresolverr
|
||
|
||
# Проверка
|
||
redis-cli ping # Должно вернуть PONG
|
||
curl http://localhost:8191/v1 # Должно вернуть JSON
|
||
```
|
||
|
||
### Шаг 4: Запуск приложения
|
||
|
||
**Терминал 1 - Django:**
|
||
```bash
|
||
cd dbapp
|
||
python manage.py runserver
|
||
```
|
||
|
||
**Терминал 2 - Celery Worker:**
|
||
```bash
|
||
cd dbapp
|
||
celery -A dbapp worker --loglevel=info
|
||
```
|
||
|
||
### Шаг 5: Тестирование
|
||
|
||
1. Откройте `http://localhost:8000/actions/`
|
||
2. Нажмите "Заполнить данные Lyngsat"
|
||
3. Выберите спутники и регионы
|
||
4. Наблюдайте за прогрессом!
|
||
|
||
---
|
||
|
||
## Вариант 2: Базовая установка без Celery
|
||
|
||
Если вы не хотите использовать асинхронную обработку, система будет работать в синхронном режиме.
|
||
|
||
### Шаг 1: Установка базовых зависимостей
|
||
|
||
```bash
|
||
# Установите все зависимости кроме Celery
|
||
pip install -r dbapp/requirements.txt --ignore-installed celery django-celery-results
|
||
```
|
||
|
||
Или вручную удалите из `requirements.txt`:
|
||
- `celery>=5.4.0`
|
||
- `django-celery-results>=2.5.1`
|
||
|
||
Затем:
|
||
```bash
|
||
pip install -r dbapp/requirements.txt
|
||
```
|
||
|
||
### Шаг 2: Применение миграций
|
||
|
||
```bash
|
||
cd dbapp
|
||
python manage.py migrate
|
||
```
|
||
|
||
### Шаг 3: Запуск FlareSolver
|
||
|
||
```bash
|
||
docker-compose up -d flaresolverr
|
||
```
|
||
|
||
### Шаг 4: Запуск Django
|
||
|
||
```bash
|
||
cd dbapp
|
||
python manage.py runserver
|
||
```
|
||
|
||
### Ограничения базовой установки
|
||
|
||
⚠️ **Внимание**: В синхронном режиме:
|
||
- Веб-интерфейс будет заблокирован во время обработки
|
||
- Нет отслеживания прогресса в реальном времени
|
||
- Нет детального логирования
|
||
- Обработка может занять много времени
|
||
|
||
---
|
||
|
||
## Проверка установки
|
||
|
||
### Проверка Django
|
||
```bash
|
||
python dbapp/manage.py check
|
||
# Должно вывести: System check identified no issues (0 silenced).
|
||
```
|
||
|
||
### Проверка Celery (если установлен)
|
||
```bash
|
||
celery -A dbapp inspect ping
|
||
# Должно вывести: pong
|
||
```
|
||
|
||
### Проверка Redis (если установлен)
|
||
```bash
|
||
redis-cli ping
|
||
# Должно вывести: PONG
|
||
```
|
||
|
||
### Проверка FlareSolver
|
||
```bash
|
||
curl http://localhost:8191/v1
|
||
# Должно вернуть JSON с информацией о сервисе
|
||
```
|
||
|
||
---
|
||
|
||
## Решение проблем при установке
|
||
|
||
### Проблема: ModuleNotFoundError: No module named 'celery'
|
||
|
||
**Решение 1**: Установите Celery
|
||
```bash
|
||
pip install celery django-celery-results
|
||
```
|
||
|
||
**Решение 2**: Используйте базовую установку (см. Вариант 2)
|
||
|
||
### Проблема: Redis connection refused
|
||
|
||
**Решение**: Запустите Redis
|
||
```bash
|
||
docker-compose up -d redis
|
||
# или
|
||
sudo systemctl start redis
|
||
```
|
||
|
||
### Проблема: FlareSolver не отвечает
|
||
|
||
**Решение**: Запустите FlareSolver
|
||
```bash
|
||
docker-compose up -d flaresolverr
|
||
# или
|
||
docker run -d -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest
|
||
```
|
||
|
||
### Проблема: Миграции не применяются
|
||
|
||
**Решение**: Проверьте подключение к базе данных
|
||
```bash
|
||
# Проверьте .env файл
|
||
cat dbapp/.env
|
||
|
||
# Проверьте PostgreSQL
|
||
docker-compose up -d db
|
||
docker-compose logs db
|
||
```
|
||
|
||
---
|
||
|
||
## Переменные окружения
|
||
|
||
Создайте файл `dbapp/.env` (если еще не создан):
|
||
|
||
```bash
|
||
# Database
|
||
DB_ENGINE=django.contrib.gis.db.backends.postgis
|
||
DB_NAME=geodb
|
||
DB_USER=geralt
|
||
DB_PASSWORD=123456
|
||
DB_HOST=localhost
|
||
DB_PORT=5432
|
||
|
||
# Django
|
||
SECRET_KEY=your-secret-key-here
|
||
DEBUG=True
|
||
ALLOWED_HOSTS=localhost,127.0.0.1
|
||
|
||
# Celery (опционально)
|
||
CELERY_BROKER_URL=redis://localhost:6379/0
|
||
|
||
# FlareSolver
|
||
FLARESOLVERR_URL=http://localhost:8191/v1
|
||
```
|
||
|
||
---
|
||
|
||
## Следующие шаги
|
||
|
||
После успешной установки:
|
||
|
||
1. **Прочитайте документацию**:
|
||
- `QUICKSTART_ASYNC.md` - быстрый старт
|
||
- `ASYNC_LYNGSAT_GUIDE.md` - полное руководство
|
||
- `ASYNC_CHANGES_SUMMARY.md` - технические детали
|
||
|
||
2. **Настройте production окружение** (если необходимо):
|
||
- Настройте Systemd/Supervisor для Celery
|
||
- Настройте Nginx/Apache
|
||
- Настройте SSL
|
||
- Настройте мониторинг
|
||
|
||
3. **Добавьте данные**:
|
||
- Добавьте спутники через админ-панель
|
||
- Запустите заполнение данных Lyngsat
|
||
|
||
4. **Настройте мониторинг**:
|
||
- Установите Flower для мониторинга Celery
|
||
- Настройте логирование
|
||
- Настройте алерты
|
||
|
||
---
|
||
|
||
## Дополнительные инструменты
|
||
|
||
### Flower - мониторинг Celery
|
||
|
||
```bash
|
||
pip install flower
|
||
celery -A dbapp flower
|
||
# Откройте http://localhost:5555
|
||
```
|
||
|
||
### Redis Commander - GUI для Redis
|
||
|
||
```bash
|
||
docker run -d -p 8081:8081 --name redis-commander \
|
||
--env REDIS_HOSTS=local:localhost:6379 \
|
||
rediscommander/redis-commander
|
||
# Откройте http://localhost:8081
|
||
```
|
||
|
||
### pgAdmin - GUI для PostgreSQL
|
||
|
||
```bash
|
||
docker run -d -p 5050:80 --name pgadmin \
|
||
-e PGADMIN_DEFAULT_EMAIL=admin@admin.com \
|
||
-e PGADMIN_DEFAULT_PASSWORD=admin \
|
||
dpage/pgadmin4
|
||
# Откройте http://localhost:5050
|
||
```
|
||
|
||
---
|
||
|
||
## Обновление системы
|
||
|
||
### Обновление зависимостей
|
||
|
||
```bash
|
||
pip install --upgrade -r dbapp/requirements.txt
|
||
```
|
||
|
||
### Применение новых миграций
|
||
|
||
```bash
|
||
cd dbapp
|
||
python manage.py migrate
|
||
```
|
||
|
||
### Перезапуск сервисов
|
||
|
||
```bash
|
||
# Перезапуск Docker контейнеров
|
||
docker-compose restart
|
||
|
||
# Перезапуск Celery Worker
|
||
# Найдите PID процесса
|
||
ps aux | grep celery
|
||
# Остановите процесс
|
||
kill <PID>
|
||
# Запустите снова
|
||
celery -A dbapp worker --loglevel=info
|
||
```
|
||
|
||
---
|
||
|
||
## Удаление системы
|
||
|
||
### Остановка сервисов
|
||
|
||
```bash
|
||
# Остановка Docker контейнеров
|
||
docker-compose down
|
||
|
||
# Остановка Celery Worker
|
||
pkill -f "celery worker"
|
||
```
|
||
|
||
### Удаление данных
|
||
|
||
```bash
|
||
# Удаление Docker volumes
|
||
docker-compose down -v
|
||
|
||
# Удаление виртуального окружения
|
||
rm -rf dbapp/.venv
|
||
|
||
# Удаление миграций (опционально)
|
||
find dbapp -path "*/migrations/*.py" -not -name "__init__.py" -delete
|
||
find dbapp -path "*/migrations/*.pyc" -delete
|
||
```
|
||
|
||
---
|
||
|
||
## Поддержка
|
||
|
||
Если у вас возникли проблемы:
|
||
|
||
1. Проверьте логи:
|
||
- Django: консоль где запущен runserver
|
||
- Celery: `dbapp/logs/celery_worker.log`
|
||
- Docker: `docker-compose logs`
|
||
|
||
2. Проверьте документацию:
|
||
- `ASYNC_LYNGSAT_GUIDE.md`
|
||
- `QUICKSTART_ASYNC.md`
|
||
- `ASYNC_CHANGES_SUMMARY.md`
|
||
|
||
3. Проверьте статус сервисов:
|
||
```bash
|
||
docker-compose ps
|
||
ps aux | grep celery
|
||
redis-cli ping
|
||
```
|
||
|
||
4. Создайте issue в репозитории с описанием проблемы и логами
|