8.3 KiB
Руководство по установке асинхронной системы Lyngsat
Вариант 1: Полная установка с Celery (рекомендуется)
Шаг 1: Установка зависимостей
pip install -r dbapp/requirements.txt
Это установит:
celery>=5.4.0django-celery-results>=2.5.1- И все остальные зависимости
Шаг 2: Применение миграций
cd dbapp
python manage.py migrate
Это создаст:
- Таблицу
lyngsatapp_lyngsatдля данных Lyngsat - Таблицы
django_celery_results_*для результатов Celery
Шаг 3: Запуск сервисов
# Запуск Redis и FlareSolver
docker-compose up -d redis flaresolverr
# Проверка
redis-cli ping # Должно вернуть PONG
curl http://localhost:8191/v1 # Должно вернуть JSON
Шаг 4: Запуск приложения
Терминал 1 - Django:
cd dbapp
python manage.py runserver
Терминал 2 - Celery Worker:
cd dbapp
celery -A dbapp worker --loglevel=info
Шаг 5: Тестирование
- Откройте
http://localhost:8000/actions/ - Нажмите "Заполнить данные Lyngsat"
- Выберите спутники и регионы
- Наблюдайте за прогрессом!
Вариант 2: Базовая установка без Celery
Если вы не хотите использовать асинхронную обработку, система будет работать в синхронном режиме.
Шаг 1: Установка базовых зависимостей
# Установите все зависимости кроме Celery
pip install -r dbapp/requirements.txt --ignore-installed celery django-celery-results
Или вручную удалите из requirements.txt:
celery>=5.4.0django-celery-results>=2.5.1
Затем:
pip install -r dbapp/requirements.txt
Шаг 2: Применение миграций
cd dbapp
python manage.py migrate
Шаг 3: Запуск FlareSolver
docker-compose up -d flaresolverr
Шаг 4: Запуск Django
cd dbapp
python manage.py runserver
Ограничения базовой установки
⚠️ Внимание: В синхронном режиме:
- Веб-интерфейс будет заблокирован во время обработки
- Нет отслеживания прогресса в реальном времени
- Нет детального логирования
- Обработка может занять много времени
Проверка установки
Проверка Django
python dbapp/manage.py check
# Должно вывести: System check identified no issues (0 silenced).
Проверка Celery (если установлен)
celery -A dbapp inspect ping
# Должно вывести: pong
Проверка Redis (если установлен)
redis-cli ping
# Должно вывести: PONG
Проверка FlareSolver
curl http://localhost:8191/v1
# Должно вернуть JSON с информацией о сервисе
Решение проблем при установке
Проблема: ModuleNotFoundError: No module named 'celery'
Решение 1: Установите Celery
pip install celery django-celery-results
Решение 2: Используйте базовую установку (см. Вариант 2)
Проблема: Redis connection refused
Решение: Запустите Redis
docker-compose up -d redis
# или
sudo systemctl start redis
Проблема: FlareSolver не отвечает
Решение: Запустите FlareSolver
docker-compose up -d flaresolverr
# или
docker run -d -p 8191:8191 ghcr.io/flaresolverr/flaresolverr:latest
Проблема: Миграции не применяются
Решение: Проверьте подключение к базе данных
# Проверьте .env файл
cat dbapp/.env
# Проверьте PostgreSQL
docker-compose up -d db
docker-compose logs db
Переменные окружения
Создайте файл dbapp/.env (если еще не создан):
# 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
Следующие шаги
После успешной установки:
-
Прочитайте документацию:
QUICKSTART_ASYNC.md- быстрый стартASYNC_LYNGSAT_GUIDE.md- полное руководствоASYNC_CHANGES_SUMMARY.md- технические детали
-
Настройте production окружение (если необходимо):
- Настройте Systemd/Supervisor для Celery
- Настройте Nginx/Apache
- Настройте SSL
- Настройте мониторинг
-
Добавьте данные:
- Добавьте спутники через админ-панель
- Запустите заполнение данных Lyngsat
-
Настройте мониторинг:
- Установите Flower для мониторинга Celery
- Настройте логирование
- Настройте алерты
Дополнительные инструменты
Flower - мониторинг Celery
pip install flower
celery -A dbapp flower
# Откройте http://localhost:5555
Redis Commander - GUI для Redis
docker run -d -p 8081:8081 --name redis-commander \
--env REDIS_HOSTS=local:localhost:6379 \
rediscommander/redis-commander
# Откройте http://localhost:8081
pgAdmin - GUI для PostgreSQL
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
Обновление системы
Обновление зависимостей
pip install --upgrade -r dbapp/requirements.txt
Применение новых миграций
cd dbapp
python manage.py migrate
Перезапуск сервисов
# Перезапуск Docker контейнеров
docker-compose restart
# Перезапуск Celery Worker
# Найдите PID процесса
ps aux | grep celery
# Остановите процесс
kill <PID>
# Запустите снова
celery -A dbapp worker --loglevel=info
Удаление системы
Остановка сервисов
# Остановка Docker контейнеров
docker-compose down
# Остановка Celery Worker
pkill -f "celery worker"
Удаление данных
# Удаление 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
Поддержка
Если у вас возникли проблемы:
-
Проверьте логи:
- Django: консоль где запущен runserver
- Celery:
dbapp/logs/celery_worker.log - Docker:
docker-compose logs
-
Проверьте документацию:
ASYNC_LYNGSAT_GUIDE.mdQUICKSTART_ASYNC.mdASYNC_CHANGES_SUMMARY.md
-
Проверьте статус сервисов:
docker-compose ps ps aux | grep celery redis-cli ping -
Создайте issue в репозитории с описанием проблемы и логами