Skip to content

NIK-TIGER-BILL/foodgram-project-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект Foodgram

example workflow

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

Foodgram реализован для публикации рецептов. Авторизованные пользователи могут подписываться на понравившихся авторов, добавлять рецепты в избранное, в покупки, скачать список покупок ингредиентов для добавленных в покупки рецептов.

Подготовка и запуск проекта

Склонировать репозиторий на локальную машину:

git clone https://github.com/NIK-TIGER-BILL/foodgram-project-react

Для работы с удаленным сервером (на ubuntu):

  • Выполните вход на свой удаленный сервер

  • Установите docker на сервер:

sudo apt install docker.io 
  • Установите docker-compose на сервер:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  • Локально отредактируйте файл infra/nginx.conf и в строке server_name впишите свой IP
  • Скопируйте файлы docker-compose.yml и nginx.conf из директории infra на сервер:
scp docker-compose.yml <username>@<host>:/home/<username>/docker-compose.yml
scp nginx.conf <username>@<host>:/home/<username>/nginx.conf
  • Cоздайте .env файл и впишите:

    DB_ENGINE=<django.db.backends.postgresql>
    DB_NAME=<имя базы данных postgres>
    DB_USER=<пользователь бд>
    DB_PASSWORD=<пароль>
    DB_HOST=<db>
    DB_PORT=<5432>
    SECRET_KEY=<секретный ключ проекта django>
    
  • Для работы с Workflow добавьте в Secrets GitHub переменные окружения для работы:

    DB_ENGINE=<django.db.backends.postgresql>
    DB_NAME=<имя базы данных postgres>
    DB_USER=<пользователь бд>
    DB_PASSWORD=<пароль>
    DB_HOST=<db>
    DB_PORT=<5432>
    
    DOCKER_PASSWORD=<пароль от DockerHub>
    DOCKER_USERNAME=<имя пользователя>
    
    SECRET_KEY=<секретный ключ проекта django>
    
    USER=<username для подключения к серверу>
    HOST=<IP сервера>
    PASSPHRASE=<пароль для сервера, если он установлен>
    SSH_KEY=<ваш SSH ключ (для получения команда: cat ~/.ssh/id_rsa)>
    
    TELEGRAM_TO=<ID чата, в который придет сообщение>
    TELEGRAM_TOKEN=<токен вашего бота>
    

    Workflow состоит из трёх шагов:

    • Проверка кода на соответствие PEP8
    • Сборка и публикация образа бекенда на DockerHub.
    • Автоматический деплой на удаленный сервер.
    • Отправка уведомления в телеграм-чат.
  • На сервере соберите docker-compose:

sudo docker-compose up -d --build
  • После успешной сборки на сервере выполните команды (только после первого деплоя):
    • Соберите статические файлы:
    sudo docker-compose exec backend python manage.py collectstatic --noinput
    
    • Примените миграции:
    sudo docker-compose exec backend python manage.py migrate --noinput
    
    • Загрузите ингридиенты в базу данных (необязательно):
      Если файл не указывать, по умолчанию выберется ingredients.json
    sudo docker-compose exec backend python manage.py load_ingredients <Название файла из директории data>
    
    • Создать суперпользователя Django:
    sudo docker-compose exec backend python manage.py createsuperuser
    
    • Проект будет доступен по вашему IP

Проект в интернете

Проект запущен и доступен по адресу

About

Сайт для публикации собственных и очень вкусных рецептов. (не вкусные, просьба не добавлять)

Topics

Resources

Stars

Watchers

Forks