Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dr1dex/foodgram-project-react
Foodgram project template
https://github.com/dr1dex/foodgram-project-react
Last synced: 6 days ago
JSON representation
Foodgram project template
- Host: GitHub
- URL: https://github.com/dr1dex/foodgram-project-react
- Owner: Dr1DeX
- Created: 2022-11-09T09:36:09.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-03T19:53:41.000Z (almost 2 years ago)
- Last Synced: 2023-12-25T05:26:42.253Z (11 months ago)
- Language: JavaScript
- Size: 656 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Проект Foodgram
![workflow](https://github.com/AlieD3d/foodgram-project-react/actions/workflows/main.yml/badge.svg)Foodgram - продуктовый помощник с базой кулинарных рецептов. Позволяет публиковать рецепты, сохранять избранные, а также формировать список покупок для выбранных рецептов. Можно подписываться на любимых авторов.
Проект доступен по [адресу](http://51.250.19.123)
### Технологии:
- Python
- Django
- Django REST framework
- Nginx
- Docker
- Postgres### Развернуть проект на удаленном сервере:
- Клонировать репозиторий:
```
https://github.com/AlieD3d/foodgram-project-react.git
```- Установить на сервере Docker, Docker Compose:
```
sudo apt install curl # установка утилиты для скачивания файлов
curl -fsSL https://get.docker.com -o get-docker.sh # скачать скрипт для установки
sh get-docker.sh # запуск скрипта
sudo apt-get install docker-compose-plugin # последняя версия docker compose```
- Выдать права доступа для docker-compose:
```
sudo chmod +x /usr/local/bin/docker-compose
```
- Создать директорию и перейти в нее:
```
mkdir foodgram && cd foodgram```
- Скопировать на сервер файлы docker-compose.yml, nginx.conf из папки infra:
```
scp -r infra/* username@IP:/home/username/ # username - имя пользователя на сервере
# IP - публичный IP сервера
```- touch .env и заполнить что то типа этим:
```
DEBUG=False
SECRET_KEY=
ALLOWED_HOSTS='localhost, 127.0.0.1, '
CSRF_TRUSTED_ORIGINS='http://localhost, http://127.0.0.1, http://'
DB_ENGINE='django.db.backends.postgresql'
DB_NAME='postgres'
POSTGRES_USER='postgres'
POSTGRES_PASSWORD=
DB_HOST='db'
DB_PORT=5432
```- Создать и запустить контейнеры Docker, выполнить команду на сервере
*(версии команд "docker compose" или "docker-compose" отличаются в зависимости от установленной версии Docker Compose):*
```
sudo docker compose up -d
```- После успешной сборки выполнить миграции:
```
sudo docker compose exec backend python manage.py migrate
```- Создать суперпользователя:
```
sudo docker compose exec backend python manage.py createsuperuser
```- По желанию можно наполнить БД готовыми данными:
```
sudo docker compose exec backend python manage.py loaddata recipes/data/ingredients.json
```- Для остановки контейнеров Docker:
```
sudo docker compose down -v # с их удалением
sudo docker compose stop # без удаления
```### После каждого обновления репозитория (push в ветку master) будет происходить:
1. Проверка кода на соответствие стандарту PEP8 (с помощью пакета flake8)
2. Сборка и доставка докер-образов backend на Docker Hub
3. Разворачивание проекта на удаленном сервере
4. Отправка сообщения в Telegram в случае успеха### Запуск проекта на локальной машине:
- Клонировать репозиторий:
```
https://github.com/AlieD3d/foodgram-project-react.git
```- touch .env:
```
DEBUG=False
SECRET_KEY=
ALLOWED_HOSTS='localhost, 127.0.0.1, '
CSRF_TRUSTED_ORIGINS='http://localhost, http://127.0.0.1, http://'
DB_ENGINE='django.db.backends.postgresql'
DB_NAME='postgres'
POSTGRES_USER='postgres'
POSTGRES_PASSWORD=
DB_HOST='db'
DB_PORT=5432
```- Создать и запустить контейнеры Docker, как указано выше.
- После запуска проект будут доступен по адресу: [http://localhost/](http://localhost/)
- Документация будет доступна по адресу: [http://localhost/api/docs/](http://localhost/api/docs/)
### Автор backend'а:
by [AlieD3d](https://github.com/AlieD3d/) (c) 2022