Skip to content

amaterasq/foodgram-project-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Foodgram - продуктовый помощник

workflow

Описание проекта

Сайт для публицации пользователями рецептов. Пользователи могут создавать рецепты блюд, подписываться на обновления других пользователей, добавлять блюда в избранное и список покупок. Список покупок состоит из ингредиентов и их количества, которые нужны для приготовления блюд. Его можно скачать с сайта в формате .txt.

💻 Технологии в проекте

🔹 Python
🔹 Django
🔹 Django REST Framework
🔹 React JS
🔹 PostgreSQL
🔹 Docker

Необходимое ПО

Docker: https://www.docker.com/get-started
Docker-compose: https://docs.docker.com/compose/install/

✏️ Инструкции по запуску на удаленном сервере (Ubuntu)

  1. Склонировать репозиторий через консоль:
git clone https://github.com/Amaterasq/foodgram-project-react.git
  1. Выполнить вход на удаленный сервер:
ssh <username>@<IP-сервера>
  1. Обновите менеджер пакетов, установите docker и docker-compose на сервер:
sudo apt-get update
sudo apt install docker.io 
sudo apt-get install docker-compose
  1. Скопируйте необходимые для запуска файлы на сервер (В дополнительном окне shell)
scp -r <путь_до_infra_на_устройстве>/ <username>@<host>:/home/<username>/infra
scp -r <путь_до_frontend_на_устройстве>/ <username>@<host>:/home/<username>/frontend
scp -r <путь_до_docs_на_устройстве>/ <username>@<host>:/home/<username>/docs
(проверить и добавить)
  1. Cоздайте .env файл: На сервере создайте файл и заполните переменные окружения:
touch .env
nano .env
SECRET_KEY=<SECRET_KEY>
DEBUG=<True/False>
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
  1. Добавьте Secrets: Добавьте в Secrets GitHub переменные окружения для работы workflow:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
DOCKER_PASSWORD=<пароль DockerHub>
DOCKER_USERNAME=<имя пользователя DockerHub>
USER=<username для подключения к серверу>
HOST=<IP сервера>
PASSPHRASE=<пароль для сервера, если он установлен>
SSH_KEY=<ваш SSH ключ (cat ~/.ssh/id_rsa) >
  1. Запуск проекта и миграций на удаленном сервере

Собрать docker-compose:

sudo docker-compose up -d --build

Создать и применить миграции

sudo docker-compose exec backend python manage.py makemigrations
sudo docker-compose exec backend python manage.py migrate

Загрузить статику

sudo docker-compose exec backend python manage.py collectstatic --noinput 

Наполнить базу данных ингредиентов данными

sudo docker-compose exec backend python manage.py db_fill_ingredient

Создать суперюзера

sudo docker-compose exec backend python manage.py createsuperuser

Проект запущен и доступен на http:/<публичный IP-сервера>/

Документация к проекту:

http://<публичный IP-сервера или localhost>/api/docs/redoc.html