Skip to content

4its/foodgram

Repository files navigation

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

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

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

Python Django DjangoREST Postgres Docker Nginx GitHub Actions

Разворачивание проекта

  • Разворачиваем с использованием образов в DockerHUB

    Cоздаём папку проекта foodgram и переходим в нее:

    mkdir foodgram && cd foodgram

    В папку проекта копируем (или создаём) файлы docker-compose.production.yml nginx.conf из папки infra. Также необходим файл .env (пример ниже). Запускаем проект командой:

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

    Будут загружены последние образы, созданы и запущены контейнеры, созданы необходимые тома и сеть.

  • Разворачиваем используя Github

    Клонируем себе репозиторий и переходим в него:

    git clone git@github.com:4its/foodgram-project-react.git

    Выполняем запуск:

    sudo docker compose -f docker-compose.yml up

    После запуска необходимо применить миграции, а также копирование статики

    Статика frontend'а собирается автоматически, после чего контейнер будет остановлен.
    Необходимо выполнить следующие команды:

    sudo docker compose -f [имя-файла-docker-compose.yml] exec backend python manage.py migrate
    sudo docker compose -f [имя-файла-docker-compose.yml] exec backend python manage.py collectstatic
    sudo docker compose -f [имя-файла-docker-compose.yml] exec backend cp -r /app/collected_static/. /backend_static/static/

    Также можно(рекомендуется) единоразово выполнить импорт базовых данных:

    sudo docker compose -f [имя-файла-docker-compose.yml] exec backend python manage.py import_tags
    sudo docker compose -f [имя-файла-docker-compose.yml] exec backend python manage.py import_ingredients

Файл .env

Пример файла .env c переменными окружения, необходимыми для запуска

  DEBUG=True
  SECRET_KEY=CHANGE_IT_BEFORE_USE_IN_PRODUCTION
  ALLOWED_HOSTS=localhost,127.0.0.1,YOUR.DOMAIN,
  LANGUAGE_CODE=ru-RU
  TIME_ZONE=Europe/Moscow

  # Database settings block
  USE_SQLITE=     True/False(whatever else you want to)
  POSTGRES_DB=    NAME OF YOUR DB
  POSTGRES_DB_HOST= NAME OF YOUR DB HOST (ex. 127.0.0.1 or db)
  POSTGRES_DB_PORT= PORT TO ACCESS DB
  POSTGRES_PASSWORD= YOUR DB PASSWORD
  POSTGRES_USER= YOUR DB USER

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

После запуска проекта, можно ознакопиться с endpoint'ами прокта и их возможностями. Документация будет доступна по адресу: имя_сервера/api/docs/
Пример: https://foodgram.egiazaryan.ru/api/docs/ (кликабельно, можно ознакомиться)

Автор backend части

Проект доступен в сети интернет: