Skip to content

TSergey1/foodgram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Блог рецептов FoodGram

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

Описание

FoodGram - сайт, на котором пользователи публикуют рецепты, добавляют чужие рецепты в избранное и подписываются на публикации других авторов. Пользователям сайта также доступен сервис «Список покупок». Он позволяет создавать список продуктов, которые нужно купить для приготовления выбранных блюд.

Pic

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

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

git clone [email protected]:TSergey1/foodgram.git

Для работы с удаленным сервером (на 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.production.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 файл и впишите:
    SECRET_KEY=<секретный ключ проекта django>
    POSTGRES_DB=<имя бд>
    POSTGRES_USER=<пользователь бд>
    POSTGRES_PASSWORD=<пароль>
    DB_HOST=<хост>
    DB_PORT=<порт>
    
  • Для работы с Workflow добавьте в Secrets GitHub переменные окружения для работы:
    SECRET_KEY=<секретный ключ проекта django>
    POSTGRES_DB=<имя бд>
    POSTGRES_USER=<пользователь бд>
    POSTGRES_PASSWORD=<пароль>
    DB_HOST=<хост>
    DB_PORT=<порт>
    
    DOCKER_PASSWORD=<пароль от DockerHub>
    DOCKER_USERNAME=<имя пользователя>
    
    SECRET_KEY=<секретный ключ проекта django>
    USER=<IP сервера>
    USER=<username для подключения к серверу>
    SSH_PASSPHRASE=<пароль для сервера, если он установлен>
    SSH_KEY=<ваш SSH ключ (для получения команда: cat ~/.ssh/id_rsa)>
    
    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