Репозиторий на Github ссылка.
Сайт продуктовый помощник с базой кулинарных рецептов. Позволяет публиковать рецепты, сохранять избранные, а также формировать список покупок для выбранных рецептов. Можно подписываться на авторов любимых рецептов.
- склонируйте проект
git clone https://github.com/JuliaBars/platform_for_recipes
- Добавьте файл .env в папку infra/
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=foodgram
DB_HOST=db
DB_PORT=5432
- Запустите docker compose local из директории infra/
docker compose -f docker-compose-local.yml up -d
- Если хотите сразу заполнить БД рецептами, то выполните команду из папки infra/:
./load_db
- Если нужна БД без рецептов, то можно загрузить только ингредиенты, выполните команду из директории infra/:
./load_ingredients
После первой загрузки все данные будут храниться в volume.
Посмотреть докуметацию к АПИ при локальном запуске можно по адресу:
http://localhost/api/docs/
- Клонировать репозиторий:
git clone git@github.com:JuliaBars/foodgram-project-react.git
- Установить на сервере Docker, Docker Compose.
- Скопировать на сервер файлы docker-compose.yml, nginx.conf из папки infra:
scp docker-compose.yml nginx.conf username@IP:/home/username/
- Для работы с GitHub Actions необходимо в репозитории в разделе Secrets > Actions создать переменные окружения:
SECRET_KEY # секретный ключ Django проекта
DOCKER_PASSWORD # пароль от Docker Hub
DOCKER_USERNAME # логин Docker Hub
HOST # публичный IP сервера
USER # имя пользователя на сервере
PASSPHRASE # если ssh-ключ защищен паролем
SSH_KEY # приватный ssh-ключ
TELEGRAM_TO # ID вашего телеграм-аккаунта
TELEGRAM_TOKEN # токен вашего телеграм-бота
DB_ENGINE # django.db.backends.postgresql
DB_NAME # postgres
POSTGRES_USER # postgres
POSTGRES_PASSWORD # postgres
DB_HOST # db
DB_PORT # 5432 (порт по умолчанию)
- Создать и запустить контейнеры Docker
sudo docker-compose up -d
- После успешной сборки, в контейнере backend выполнить миграции, и собрать статику.
Для загрузки тестовой БД из контейнера backend выполните команду:
python manage.py loaddata fixtures.json
В проекте настроен CI/CD с гитхаб Actions. После каждого обновления репозитория (push в ветку main) будет происходить:
- Проверка кода на соответствие стандарту PEP8
- Сборка и доставка докер-образа backend на Docker Hub
- Разворачивание проекта на удаленном сервере
- Отправка сообщения в Telegram об успешном выполнении workflow