Foodgram - сайт, являющийся продуктовым помощником, на котором пользователи публикуют рецепты, добавляют другие рецепты в избранное и подписываются на публикации других авторов. Пользователям сайта также доступен сервис «Список покупок». Он позволяет создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Python 3.10
Django
Django REST Framework
Gunicorn
Nginx
PostgreSQL
Docker
Docker Compose
Github Actions
Посетить сайт можно здесь
А найти документацию к API здесь
- Установите докер и клонируйте репозиторий
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
git clone [email protected]:antonata-c/foodgram-project-react.git
cd foodgram-project-react
- Создайте файл
.env
, в котором перечислите все переменные окружения, пример находится в файле.env.example
- Подключитесь к удаленному серверу и создайте директорию
foodgram-project-react
ssh -i path_to_ssh_key/ssh_key_filename username@ip_address
mkdir foodgram-project-react
- Установите Docker Compose
sudo apt update
sudo apt install curl
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo apt install docker-compose
- В директории
infra
выполните команду для запуска Docker Compose в режиме демона и выполнения необходимых операций с базой данных
sudo docker compose -f docker-compose.production.yml up -d
sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate
sudo docker compose -f docker-compose.production.yml exec backend python manage.py load_json
sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic --noinput
- Установите и настройте веб- и прокси-сервер Nginx
sudo apt install nginx -y
sudo systemctl start nginx
sudo nano /etc/nginx/sites-enabled/default
- Запишите новые настройки для блока server проекта foodgram:
server {
server_name ваш_домен;
server_tokens off;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
}
}
- Сохраните изменения, протестируйте и перезагрузите конфигурацию nginx
sudo nginx -t
sudo systemctl reload nginx