«Кулинар» — это сайт, на котором можно публиковать собственные рецепты, добавлять чужие рецепты в избранное, подписываться на других авторов и создавать список покупок для заданных блюд. Вот, что было сделано в ходе работы над проектом:
- настроено взаимодействие Python-приложения с внешними API-сервисами;
- создан собственный API-сервис на базе проекта Django;
- подключено SPA к бэкенду на Django через API;
- созданы образы и запущены контейнеры Docker;
- созданы, развёрнуты и запущены на сервере мультиконтейнерные приложения;
- закреплены на практике основы DevOps, включая CI&CD.
Инструменты и стек: #python #JSON #YAML #Django #React #Telegram #API #Docker #Nginx #PostgreSQL #Gunicorn #JWT #Postman
- http://51.250.98.200 - доступ по IP (временно)
- http://localhost:8000/ - главная страница сайта;
- http://localhost:8000/admin/ - админ панель;
- http://localhost:8000/api/ - API проекта
- http://localhost:8000/api/docs/redoc.html - документация к API
- Email:
1@yandex.ru - Password:
admin
Скриншот главной страницы сайта

- Установите Docker
- Клонируйте репозиторий
git clone git@github.com:Dron-71/foodgram-project-react.git - Создайте и заполните файл .env (в корне проекта)
- POSTGRES_USER=django_user
- POSTGRES_PASSWORD=mysecretpassword
- POSTGRES_DB=django
- DB_HOST=db
- DB_PORT=5432
- ALLOWED_HOSTS=,51.250.98.200,127.0.0.1,localhost
- SECRET_KEY=django_secret_key
- DEBUG=True
- Запустите docker-compose:
docker-compose up -d --build - Выполните миграции:
docker-compose exec backend python manage.py migrate - Для сбора статики воспользуйтесь командами:
docker-compose exec backend python manage.py collectstaticdocker compose exec backend cp -r /app/collected_static/. /backend_static/static/ - Для загрузки базы данных ингрединтов:
docker-compose exec backend python manage.py import_ingredients - Для загрузки базы данных тэгов:
docker-compose exec backend python manage.py import_tags - Для создания или загрузки суперпользователя:
docker-compose exec backend python manage.py createsuperuser - или
docker-compose exec backend python manage.py import_createsuperuser
- Выполните вход на свой удаленный сервер
- Установите docker на сервер:
sudo apt update
sudo apt install curl
curl -fSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo apt-get install docker-compose-plugin
Создайте на сервере пустой файл docker-compose.production.yml, и с помощью редактора nano добавьте в него содержимое из локального docker-compose.production.yml. Скопируйте файл .env на сервер, в директорию foodgram/.
mkdir foodgram && cd foodgram
touch docker-compose.production.yml && nano docker-compose.production.yml
touch .env && nano .env
После запуска, выполните миграции и соберите статические файлы бэкенда
sudo docker compose -f docker-compose.production.yml up -d
sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate
sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic --no-input
sudo docker compose -f docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/
sudo docker compose -f docker-compose.production.yml exec backend python manage.py import_ingredients
sudo docker compose -f docker-compose.production.yml exec backend python manage.py import_tags
sudo docker compose -f docker-compose.production.yml exec backend python manage.py createsuperuser
или
sudo docker compose -f docker-compose.production.yml exec backend python manage.py import_createsuperuser
Андрей Л. 2023
