Skip to content

ozzimyt/foodgram-project-react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

workflow

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

Стек технологий

python version django version djangorestframework version djoser version docker version

О проекте:

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

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

Локальный деплой

Клонируйте репозиторий:

https://github.com/ozzimyt/foodgram-project-react

Установите и активируйте виртуальное окружение:

Win:

python -m venv venv
. venv/Scripts/activate

Mac/linux:

python3 -m venv venv
source venv/bin/activate

Установите зависимости из файла requirements.txt:

pip install -r requirements.txt

Перейдите в директорию с файлом manage.py, создайте и примените миграции:

Win

cd backend/
python manage.py makemigrations
python manage.py migrate

Mac/Linux

cd backend/
python3 manage.py makemigrations
python3 manage.py migrate

Создайте суперпользователя :

Win

python manage.py createsuperuser

Mac/linux

python3 manage.py createsuperuser

Запустите сервер:

Win

python manage.py runserver

Mac/linux

python3 manage.py runserver

Запуск в Docker

В папке infra создайте файл .env и заполните его в соответствии с нижеуказанным:

DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
SECRET_KEY=your
DEBUG=False         # Или True для возможности отображение DEBUG-информации
ALLOWED_HOSTS='*'
DEBUG_SQLITE=True   # Или False для выбора PostgreSQL

далее в папке infra выполнить команды:

docker compose up -d --build

После создания и запуска контйнеров зайти в контейнер с бэкэндом и выполнить команды:

docker compose exec backend python manage.py makemigrations
docker compose exec backend python manage.py migrate
docker compose exec backend python manage.py collectstatic --no-input
docker compose exec backend python manage.py json_to_db.py
docker compose exec backend python manage.py createsuperuser

Деплой на удаленном сервере

Подготовка сервера

Аутентифицируйтесь на удаленном сервере: ssh <username>@<hostname>

Обновите пакеты:

sudo apt update
sudo apt upgrade -y

Установите 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

Скопируйте файлы конфигурации:

scp docker-compose.yml <username>@<host>:/home/<username>/docker-compose.yml
scp nginx.conf <username>@<host>:/home/<username>/nginx.conf

Создайте суперпользователя:

sudo docker-compose exec -T backend python manage.py createsuperuser

...profit !

Документация к API

Для открытия документации локально, запустите сервер и перейдите по ссылке: http://localhost/api/docs/

Для открытия документации на удаленном сервере: REDOC

Контакты

About

Foodgram project template

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published