Добавил форму для загрузки данных с LyngSat
This commit is contained in:
347
INSTALLATION_GUIDE.md
Normal file
347
INSTALLATION_GUIDE.md
Normal file
@@ -0,0 +1,347 @@
|
||||
# Руководство по установке асинхронной системы 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 в репозитории с описанием проблемы и логами
|
||||
Reference in New Issue
Block a user