Перейти к содержанию

Настройка dev-окружения

Для запуска Паприки нужны следующие пакеты:

  • git
  • make
  • docker

Для настройки dev-окружения выполните команду:

make dev.init

Эта команда создаст необходимые контейнеры и .env файл в корне проекта.

ВАЖНО: На данный момент также необходимо сделать следующее

  • Создать отдельный .env в корне фронтенда со следующим содержимым:
VITE_API_URL=http://localhost:8000/

это адрес и порт на котором запускается dev-контейнер бэкенда.

  • Выполнить в корне фронтенда команду
npm install

чтобы создать папку node_modules. Это необходимо для запуска контейнера со фронтендом.

Запуск dev-версии

make dev

Наполняем сайт данными

Предполагается, что у вас есть дамп данных и медиа-файлы. TODO: нужен небольшой демо-проект.

Ниже есть инструкция как скачать данные с рабочего сервера.

Заполняем базу данных

Копируем дамп данных в докер и запускаем команду loaddata:

sudo cp /path/to/dump.json /var/lib/docker/volumes/paprika_media_volume/_data
docker compose --file docker-compose-dev.yml exec paprika-app ./manage.py loaddata media/dump.json

Копируем медиа-файлы

Предположим, что медиа-файлы скачаны в папку paprika_media. Копируем содержимое этой папки в докер:

sudo rsync -ahr --progress /path/to/paprika_media/* /var/lib/docker/volumes/paprika_media_volume/_data

После этого все картинки и видео должны корректно отображатся на сайте.

Скачать дамп с рабочего сервера

Здесь и далее paprika-prod — это ssh алиас для рабочего сервера.

ssh paprika-prod "cd paprika/ && docker compose exec paprika-app python manage.py dumpdata --exclude=contenttypes --exclude=auth.permission > datadump.json"
scp paprika-prod:paprika/datadump.json ./datadump.json
ssh paprika-prod "rm paprika/datadump.json"

Скачать медиа с рабочего сервера

Скачать всю папку целиком:

rsync -avz --progress --log-file=rsync.log paprika-prod:/mnt/NAS/media .

Скачать только *.jpg с сохранением структуры директорий:

rsync -avz --progress --log-file=rsync.log --include='*/' --include='*.jpg' --exclude='*' paprika-prod:/mnt/NAS/media .

Важно:

  • Порядок include/exclude важен. Сначала разрешаем вход в директории (*/) и включаем нужные файлы, потом всё остальное исключаем.
  • Убедитесь, что на стороне источника есть доступ к файлам (права чтения).