Репозиторий интернет-магазина shopelectro. Разрабатываем по методологии PDD.
Линк на роли в команде разработки сайта.
Инструкции для быстрой развёртки проекта для разработки. Подробности смотрите в Makefile и в drone.yml.
Инструкция работает только для Линукса. Под Виндой нужна виртуалка. Как настроить виртуалку под Виндой.
Для сокращения введём такие алиасы::
bash alias dc="docker-compose"
bash alias dcp="docker-compose -f docker-compose-production.yml"
# clone repositories
git clone [email protected]:fidals/refarm-site.git
git clone [email protected]:fidals/shopelectro.git
cd shopelectro/docker/
# this command will ask you to fill some files.
# See this instruction below to get out how to do it.
make deploy-dev
# optional
dc exec app python manage.py excel
dc exec app python manage.py price
make deploy-dev
создаст файлы для окружения (env) со стандартными значениями.
А затем попросит заполнить их.
Пару рекомендаций по заполнению:
- Генерим случайные: Django secret key, пароли к локальным базам
- В файлах
shopelectro/docker/env_files/paths
иshopelectro/docker/.env
определяем путьREFARM_DIR=../../refarm-site
(или другой путь куда вы сделали git clone репозитория refarm-site). Интерфейс refarm-site нестабилен, поэтому иногда при разработке фичи сайта нужно поправить код refarm-site вместе с кодом сайта. - Запрашиваем у Архитектора: Пароль к FTP и почтовому серву
Проверяем адрес http://127.0.0.1:8010
- загружается сайт.
Вместо порта 8010
может быть другой - переменная окружения (env var) VIRTUAL_HOST_EXPOSE_PORT
.
docker/Makefile
- единственная и полная инструкция для работы с локальным dev-окружением.
Содержит все скрипты, которые мы используем для разработки.
Например: подготовка среды, запуск тестов, внутренних команд приложения.
# запускаем все тесты.
make test
# запускаем один тест
dc exec app python manage.py test shopelectro.tests.tests_selenium.TestClass.test_method
Некоторые тесты используют fixtures. Это заранее подготовленные данные из базы. Подробнее о фикстурах в документации Django.
Наши фикстуры лежат в папке shopelectro/fixtures
Файл shopelectro/fixtures/dump.json
сгенерирован специально для тестов.
Если вам нужно добавить данных в тесты, пересоздайте этот файл с новыми данными и закоммитьте.
Для пересоздания фикстур используйте команду shopelectro/management/commands/test_db.py
Файл dump.json
в контроле версий всегда должен соответстовать коду команды test_db
.
Адрес: /admin/
Логин/пароль: admin/asdfjkl;
Этот раздел полезен только Архитекторам. Деплой на сервер делаем руками.
make deploy
Запускаем специальный контейнер - se-backup-data
:
cd <proj root>/docker
make backup
В результате работы контейнер создаст несколько архивов в хост-системе:
/opt/backups/shopelectro/database.tar.gz
- дамп базы данных/opt/backups/shopelectro/media.tar.gz
- дамп медиафайлов/opt/backups/shopelectro/static.tar.gz
- дамп статики
Для восстановления базы данных и медиафайлов достаточно запустить make restore
.
Скрипт скачает последний бекап с сервера и разместит файлы в продакшен-папках.
Для доступа к бэкап-серверу используются public+private ключи.
/opt/database/shopelectro
- база данных, используется как volume контейнера se-postgres/opt/media/shopelectro
- медиафайлы, используется как volume контейнера se-python/opt/static/shopelectro
- статика, не подключается как volume, нужно скопировать вручную в директорию с статикой
N.B.: Некоторые данные (например, медиафайлы) могут иметь большой размер. На момент написания этой заметки, архив с медиафайлами Shopelectro весил ~4GB.
Выполняет две задачи:
- Проверка. Тестит систему для каждого pull request'a, запускает линтеры для кода.
- Сборка. Собирает систему для dev и prod после каждого пуша в мастер-ветку.
https://github.com/fidals/refarm-site/blob/master/pages/README.md
- Tracking aims
- Retail Tags and SEO Templates. See refarm-site module's doc for info about both of them.
Есть отдельная ссылка на товары без картинок для удобства
- Separated no-images link. It's good to print list.
- Link to no-images prods in admin panel. It has filters.
Убрали их с интерфейса в этой задаче. Есть небольшая вероятность, что вернём. #801