Проект Foodgram, «Продуктовый помощник». На этом сервисе пользователи смогут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.
bash Python 3.7, Django 2.2, Django REST Framework, PostgreSQL 13.0, Docker, Docker Hub, Nginx, Gunicorn 20.0.4, GitHub Actions, Yandex.Cloud.
Для работы с Workflow в репозитории на Гитхабе добавьте данные в Settings - Secrets - Actions secrets
:
DOCKER_USERNAME = имя пользователя в DockerHub
DOCKER_PASSWORD = пароль пользователя в DockerHub
HOST = публичный ip-адрес сервера
USER = пользователь для подключения к серверу
SSH_KEY = приватный ssh-ключ (публичный должен быть на сервере)
PASSPHRASE = если используете пароль для ssh
TELEGRAM_TO = id своего телеграм-аккаунта (можно узнать у @userinfobot, команда /start)
TELEGRAM_TOKEN = токен бота (получить токен можно у @BotFather, /token, имя бота)
Следующие переменные также нужно добавить в файлй .env расположенный по пути infra/.env
DB_ENGINE=django.db.backends.postgresql # движок БД
DB_NAME=postgres # имя БД
POSTGRES_USER=postgres # логин для подключения к БД
POSTGRES_PASSWORD=postgres # пароль для подключения к БД
DB_HOST=db # название контейнера
DB_PORT=5432 # порт для подключения к БД
ALLOWED_HOSTS=*, localhost # указываем разрешенные хосты
SECRET_KEY=key # секретный ключ приложения django
git clone https://github.com/PivnoyFei/foodgram-project-react
cd foodgram-project-react
python3 -m venv venv
source venv/bin/activate
python -m venv venv
source venv/Scripts/activate
python -m pip install --upgrade pip &&
pip install -r backend/requirements.txt
cd infra
docker-compose up -d --build
docker-compose exec backend python manage.py collectstatic --noinput
docker-compose exec backend python manage.py makemigrations
docker-compose exec backend python manage.py migrate --noinput
docker-compose exec backend python manage.py loaddata db.json
в папке data - ingredients.json, tags.json
docker-compose exec backend python manage.py load_ingredients <Название файла>
Теперь проект доступен по адресу http://localhost/,
документация по API проекта - по адресу http://localhost/api/docs/.
docker-compose exec backend python manage.py createsuperuser
Теперь по адресу http://localhost/admin/ доступна админка.
docker-compose down -v
ssh <username>@<ip-adress>
sudo apt install docker.io
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
sudo chmod +x /usr/local/bin/docker-compose
sudo docker-compose --version
sudo mkdir <создает нужную папка>
scp docker-compose.yaml <username>@<host>:<Нужная папка>/docker-compose.yaml
scp default.conf <username>@<host>:<Нужная папка>/nginx.conf
scp -r infra <username>@<host>:/infra