Files
dbstorage/INSTALLATION_GUIDE.md

8.6 KiB
Raw Blame History

Руководство по установке асинхронной системы Lyngsat

Вариант 1: Полная установка с Celery (рекомендуется)

Шаг 1: Установка зависимостей

pip install -r dbapp/requirements.txt

Это установит:

  • celery>=5.4.0
  • django-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: Тестирование

  1. Откройте http://localhost:8000/actions/
  2. Нажмите "Заполнить данные Lyngsat"
  3. Выберите спутники и регионы
  4. Наблюдайте за прогрессом!

Вариант 2: Базовая установка без Celery

Если вы не хотите использовать асинхронную обработку, система будет работать в синхронном режиме.

Шаг 1: Установка базовых зависимостей

# Установите все зависимости кроме 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

Затем:

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

Следующие шаги

После успешной установки:

  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

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

Поддержка

Если у вас возникли проблемы:

  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. Проверьте статус сервисов:

    docker-compose ps
    ps aux | grep celery
    redis-cli ping
    
  4. Создайте issue в репозитории с описанием проблемы и логами