Позволяет всем пользователям просматривать рецепты, опубликованные на сайте. Зарегистрированные пользователи также могут:
- размещать и редактировать на сайте рецепты различных блюд;
- подписываться на других авторов рецептов;
- вносить рецепты в избранное и в список покупок;
- скачивать себе на компьютер список покупок в текстовом виде.
-
бэкенд: Python 3.10, Django 4.2, Django Rest Framework 3.14, PostgreSQL;
-
фронтенд: JavaScript, React;
-
деплой: Gunicorn, Nginx, Docker, Docker Compose.
- Создать на хосте папку проекта (например, /foodgram).
- Скопировать в папку проекта файл
docker-compose.production.yml, расположенный в папкеinfra/репозитория проекта. - Скопировать в папку проекта файл
ingredients.json, расположенный в папкеdata/репозитория проекта. - Создать в папке проекта файл
.envс необходимыми переменными окружения. - Перейти в папку проекта и выполнить запуск сети контейнеров приложения:
sudo docker compose -f docker-compose.production.yml up -d` - Скопировать в бэкэнд проекта файл с ингредиентами
ingredients.json:sudo docker compose -f docker-compose.production.yml cp ingredients.json backend:/app/ - Выполнить первоначальную настройку проекта, для чего запустить консоль в бэкэнде проекта:
и далее выполнить в ней:
sudo docker compose -f docker-compose.production.yml exec -it backend bash- применение миграций:
python manage.py migrate; - сбор и копирование статики:
python manage.py collectstatic cp -r /app/collected_static/. /app/static_files/static/ - создать суперпользователя:
python manage.py createsuperuser- в ответ на запрос системы ввести данные суперпользователя: e-mail, login (имя пользователя), имя, фамилию и пароль (дважды); - заполнить базу данных ингредиентами:
python manage.py load_ingredients ingredients.json
- применение миграций:
- Проект будет работать через стандартный порт 80 хоста.
- Теперь можно зайти в раздел администрирования сайта (http:///admin/) от имени созданного суперпользователя и добавить в БД необходимые тэги для рецептов.
Файл .env должен содержать следующие переменные окружения:
- POSTGRES_DB - имя БД PostgreSQL;
- POSTGRES_USER - имя пользователя для подключения к БД PostgreSQL;
- POSTGRES_PASSWORD - пароль для подключения к БД PostgreSQL;
- DB_HOST - имя контейнера-хоста БД PostgreSQL (задайте значение: db);
- DB_PORT - порт для подключения к БД PostgreSQL;
- SECRET_KEY - секретный ключ;
- ALLOWED_HOSTS - список разрешённых хостов, например:
<ip-адрес хоста>;127.0.0.1;localhost;<доменное имя сайта>
Файл .env может также содержать следующие переменные окружения:
- DEBUG - задаёт отладочный режим работы, если определена;
- SQLITE_DB - путь к файлу БД Sqlite. Если эта переменная определена и не пуста, то вместо БД PostgreSQL будет использоваться БД Sqlite. Переменные среды, задающие настройки для работы с БД PostgreSQL, в этом случае игнорируются.
В папке infra/ репозитория проекта содержится файл .env.example - пример файла .env.
Москалянов Евгений