Skip to content

Repository files navigation

docker-compose.production.yml

Проект FOODGRAM


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

Стек используемых технологий


Backend:

  1. Python 3.9
  2. Django
  3. Django REST Framework (DRF)

База данных:

SQLite или Postgres.

Для использования Postgres в качестве СУБД, в файле .env, задайте значение переменной окружения DBMS=postgres.

Frontend:

SPA приложение.

React.

Запуск проекта.

Локальный запуск в Docker контейнерах.


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

git clone https://github.com/kom-ae/foodgram.git

Перейдите в директорию foodgram:

cd foodgram

Создайте файл с именем '.env', пропишите в нем переменные и присвойте им значения. Пример заполнения '.env' файла приведен в конце.

Запустите контейнеры командой:

docker compose -f docker-compose.yml up -d

Применение миграций и сбор статики выполняется автоматически.

Веб страница проекта будет доступна по адресу

http://127.0.0.1:7000

Веб страница админки проекта будет доступна по адресу

http://127.0.0.1:7000/admin/

Для входа в админку создайте супер пользователя, для этого:

подключитесь к контейнеру с бэкэндом:

docker compose exec -it backend bash

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

python manage.py createsuperuser

Для первоначального наполнения данными смотрите соответствующий раздел ниже.

Локальный запуск без использования контейнеризации.


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

git clone https://github.com/kom-ae/foodgram.git

Перейдите в директорию foodgram:

cd foodgram

Настройка бэкэнда.

Cоздайте и активируйте виртуальное окружение:

python3 -m venv venv

source venv/bin/activate

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

python3 -m pip install --upgrade pip

pip install -r backend/requirements.txt

Выполните миграции:

python3 backend/manage.py migrate

Для локального запуска будет использована СУБД SQLite, которая была создана шагом выше при выполнении миграций. Это позволит сократить время на запуске проекта.

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

python backend/manage.py createsuperuser

Настройка фронтэнда.

Перейдите в директорию frontend:

cd frontend

Запустите установку зависимостей npm:

npm install

Запустите сборку фронтэнда:

npm run build

Запуск проекта

Запустите frontend:

npm run start

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

cd ../backend

python3 manage.py runserver

Веб страница проекта будет доступна по адресу

http://127.0.0.1:3000

Веб страница админки проекта будет доступна по адресу

http://127.0.0.1:8000/admin/

Для первоначального наполнения данными смотрите соответствующий раздел ниже.

Запуск на удаленном сервере.


На удаленном сервере создайте директорию foodgram. В указанную директорию скопируйте подготовленный .env файл и docker-compose.production.yml, для этого:

Находясь в домашней директории пользователя запустите команду:

mkdir foodgram

Перейдите в директорию foodgram:

cd foodgram

Файлы .env и docker-compose.production.yml скопируйте с использованием команды scp или вставкой содержимого через доступный редактор на сервере. Пример заполнения '.env' файла приведен в конце. Установите переменную DBMS=postgres, для использования PostgreSQL в качестве СУБД.

Запустите проект командой:

docker compose -f docker-compose.production.yml up -d

Для входа в админку создайте супер пользователя, для этого:

подключитесь к контейнеру с бэкэндом:

docker compose exec -it backend bash

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

python manage.py createsuperuser

Настройте nginx хоста на проброс запросов к проекту на порт 7000.

Веб страница проекта будет доступна по адресу

http://<domain_name_Or_IP_address>

Веб страница админки проекта будет доступна по адресу

http://<domain_name_Or_IP_address>:8000/admin/

Для первоначального наполнения данными смотрите раздел ниже.

Первоначальное наполнение данными.


Загрузка ингредиентов и тегов выполняется через админку.

Войдите в админку по адресу соответствующему типу развертывания проекта. Используйте учетные данные созданного супер пользователя.

Переключитесь на представление модели "Ингредиенты" или "Тэги", нажмите кнопку "Импорт" и выберите соответствующий модели файл (csv, json) для загрузки. Готовые файлы расположены в папке 'data' проекта.

Пример .env файла.


POSTGRES_DB=name_db  # Имя базы данных 
POSTGRES_USER=user_db  # Пользователь базы данных
POSTGRES_PASSWORD=password_user_db  # Пароль пользователя базы данных
DB_HOST=name_host_db  # Имя хоста с СУБД postgres
DB_PORT=5432  # Порт БД
SECRET_KEY=''  # секретный ключ для Django
DEBUG=True  # Режим дебага
ALLOWED_HOSTS=127.0.0.1,localhost  # список разрешенных хостов для подключения к Django
#Database Management System
DBMS=postgres  # СУБД 

Автор проекта: Александр Комаров

About

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

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages