Loading repository data…
Loading repository data…
a-menshikov / repository
май 2023. Дипломный проект для Яндекс Практикум. REST API для веб-приложение "Продуктовый помощник"
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Если вам помог этот репозиторий - не пожалейте звездочки для него))
Приложение «Продуктовый помощник» - это сайт, на котором пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Сервис «Список покупок» позволит пользователям создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Стек технологий: Python 3, Django, DjangoRestFramework, Docker, Docker Compose, Nginx, Postgres, React
Веб-сервер: nginx Frontend фреймворк: React Backend фреймворк: Django API фреймворк: Django REST База данных: PostgreSQL
Веб-сервер nginx перенаправляет запросы клиентов к контейнерам frontend и backend, либо к хранилищам (volume) статики и файлов. Контейнер nginx взаимодействует с контейнером backend через gunicorn. Контейнер frontend взаимодействует с контейнером backend посредством API-запросов.
Документация для API после установки доступна по адресу
/api/docs/redoc.html
Клонировать репозиторий и перейти в него в командной строке: Для развертывания на моих образах потребуются только файлы docker-compose.yml и nginx.conf. Для сборки своих образов с доработанным кодом - откорректируйте файл docker-compose.yml чтобы образы билдились, а не скачивались.
git clone <ссылка с git-hub>
Шаблон наполнения .env (не включен в текущий репозиторий), расположить по пути infra/.env
DB_ENGINE=django.db.backends.postgresql
DB_NAME= # имя базы данных
POSTGRES_USER= # логин для подключения к базе данных
POSTGRES_PASSWORD= # пароль для подключения к БД (установите свой)
DB_HOST=database
DB_PORT= # порт для подключения к БД
SECRET_KEY= # секретный ключ Django
DEBUG= # True или False
ALLOWED_HOSTS= # через запятую
также настройте адрес сервера в nginx.conf.
Находясь в папке infra/ поднять контейнеры
docker-compose up -d --build
Выполнить миграции:
docker-compose exec backend python manage.py migrate
Создать суперпользователя:
docker-compose exec backend python manage.py createsuperuser
Собрать статику:
docker-compose exec backend python manage.py collectstatic --no-input
Наполнить базу заранее заготовленными файлами:
docker-compose exec backend python manage.py import_data