Skip to content

Dron-71/culinary

Repository files navigation

Python Django Django REST Framework PostgreSQL Nginx gunicorn docker GitHub%20Actions

Проект — «Кулинар».

«Кулинар» — это сайт, на котором можно публиковать собственные рецепты, добавлять чужие рецепты в избранное, подписываться на других авторов и создавать список покупок для заданных блюд. Вот, что было сделано в ходе работы над проектом:

  • настроено взаимодействие Python-приложения с внешними API-сервисами;
  • создан собственный API-сервис на базе проекта Django;
  • подключено SPA к бэкенду на Django через API;
  • созданы образы и запущены контейнеры Docker;
  • созданы, развёрнуты и запущены на сервере мультиконтейнерные приложения;
  • закреплены на практике основы DevOps, включая CI&CD.

Инструменты и стек: #python #JSON #YAML #Django #React #Telegram #API #Docker #Nginx #PostgreSQL #Gunicorn #JWT #Postman


Ниже представлены доступные адреса проекта:

Для доступа в админ-зону:

  • Email: 1@yandex.ru
  • Password: admin

Скриншот главной страницы сайта Скриншот главной страницы сайта


Для запуска приложения в контейнерах:

  • Установите Docker
  • Клонируйте репозиторий
    git clone git@github.com:Dron-71/foodgram-project-react.git
    
  • Создайте и заполните файл .env (в корне проекта)

Заполнение .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 collectstatic
    
    docker 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


Визуальное представление:

Визуальное представление

About

Веб-приложение для публикации рецептов

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published