Skip to content

Latest commit

 

History

History
84 lines (66 loc) · 4.6 KB

README.md

File metadata and controls

84 lines (66 loc) · 4.6 KB

Foodgram

http://62.84.114.162/ - Foodgram(Продуктовый помощник)

  • Протестировать готовый проект можно по ссылке http://62.84.114.162/admin/
  • login: admin
  • password: 75523616

Описание

Foodgram - сервис для публикации и обмена рецептами блюд и напитков. Для незарегестрированных пользователей доступны просмотр рецептов на главной странице, фильтрация рецептов по тегам и просмотр рецепта на отдельной странице. Авторизованные пользователи могут создавать / редактировать собственные рецепты, добавлять понравившиеся рецепты в список избранного. Также они могут просматривать страницы пользователей и подписываться на понравившихся авторов. Рецепты можно добавить в список покупок и выгрузить список необходимых ингредиентов в pdf формате.

Технологии

Python 3.7 Django 3.0.5

Установка

Проект собран в Docker и содержит четыре образа:

  • backend - образ бэка проекта
  • frontend - образ фронта проекта
  • postgres - образ базы данных PostgreSQL
  • nginx - образ web сервера nginx

В целях безопасности некоторые переменные должны быть вынесены в файл окружения .env. Создайте его самостоятельно, а при разворачивании проекта на сервере перенесите их в Github actions secrets. Полный перечень переменных с комментариями:

SECRET_KEY - секретный ключ для конкретной установки Django DB_ENGINE - используемая база данных (по умолчанию django.db.backends.postgresql) DB_HOST - название контейнера базы данных (по умолчанию db) DB_NAME - имя базы данных DB_PORT - порт для подключения к базе данных (по умолчанию 5432) DOCKER_PASSWORD - пароль Docker Hub DOCKER_USERNAME - логин Docker Hub HOST - IP-адрес вашего сервера PASSPHRASE - Если при создании ssh-ключа вы использовали фразу-пароль, то укажите ее POSTGRES_PASSWORD - пароль для подключения к базе данных POSTGRES_USER - логин для подключения к базе данных SSH_KEY - приватный ключ с компьютера, имеющего доступ к боевому серверу USER - имя пользователя для подключения к серверу

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

Проект разворачивается на сервере с ОС ubuntu 20.04. Не забудьте создать переменные окружения в Github actions secrets.

  • Установите 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 
  • Скопируйте на сервер файлы Docker-compose.yml и nginx.conf из папки infra-deploy/. Не забудьте указать свой ip в конфиге. Там-же создайте файл зависимостей .env

  • Запуск контейнеров выполняется командой:

sudo docker-compose up
  • После запуска контейнеров выполните команды в терминале:
docker-compose exec web python manage.py migrate --noinput
docker-compose exec web python manage.py collectstatic --no-input

Тесты

  • Создать суперпользователя вы можете командой:
docker-compose exec backend python manage.py createsuperuser

(Не забудьте команду "sudo", если проект развернут на сервере)

Авторы

Сергей

example workflow