Пример готового проекта расположен по адресу (временно недоступно):
http://foodlike.ddns.net/
Почта: [email protected]
Пароль: admin
Сервис предназначен для взаимодействия с рецептами. У пользователей есть возможность создавать рецепты, изменять их, добавлять в избранное, а также подписываться на других авторов. Раздел «Список покупок» позволит пользователям составить список ингредиентов и их количество для приготовления выбранных блюд, который можно скачать в формате «.txt».
- Проверка кода на соответствие PEP8.
- Сборка и публикация образа на DockerHub.
- Автоматический деплой на боевой сервер при пуше в главную ветку.
- Отправка уведомления в телеграм-чат.
Склонируйте репозиторий на локальную машину:
git clone https://github.com/Slavchick12/foodgram-project-react.git
Прежде, чем приступать к работе, необходимо выполнить вход на свой удаленный сервер:
ssh <USERNAME>@<IP_ADDRESS>
Введите команду:
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
Локально отредактируйте файл infra/nginx/default.conf
и в строке server_name
впишите свой IP.
Скопируйте подготовленные файлы infra/docker-compose.yml
и infra/nginx/default.conf
из вашего проекта на сервер в home/<ваш_username>/foodgram-project-react/infra/docker-compose.yml
и home/<ваш_username>/foodgram-project-react/infra/nginx/default.conf
соответственно.
Введите команду из корневой папки проекта:
scp docker-compose.yml <username>@<host>:/home/<username>/foodgram-project-react/infra/docker-compose.yml
scp default.conf <username>@<host>:/home/foodgram-project-react/infra/nginx/default.conf
На сервере создайте файл nano .env
и заполните переменные окружения (или создайте этот файл локально и скопируйте файл по аналогии с предыдущим шагом):
SECRET_KEY=<SECRET_KEY>
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
Для работы с Workflow добавьте в Secrets GitHub переменные окружения для работы:
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
DOCKER_PASSWORD=<пароль DockerHub>
DOCKER_USERNAME=<имя пользователя DockerHub>
USER=<username для подключения к серверу>
HOST=<IP сервера>
PASSPHRASE=<пароль для сервера, если он установлен>
SSH_KEY=<ваш SSH ключ (команда для получения ключа: cat ~/.ssh/id_rsa)>
TELEGRAM_TO=<ID своего телеграм-аккаунта>
TELEGRAM_TOKEN=<токен вашего бота>
Зайдите на боевой сервер и выполните команды:
sudo docker-compose up -d --build
sudo docker-compose exec backend python manage.py makemigrations --noinput
sudo docker-compose exec backend python manage.py migrate --noinput
sudo docker-compose exec backend python manage.py collectstatic --noinput
sudo docker-compose exec backend python manage.py loaddata fixtures/ingredients_data.json
sudo docker-compose exec backend python manage.py createsuperuser
Проект будет доступен по вашему IP-адресу.