«Фудграм» — сайт, на котором пользователи публикуют свои рецепты, добавляют чужие рецепты в избранное и подписываются на публикации других авторов. Пользователям сайта также доступен сервис «Список покупок». Он позволяет создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
Готовый проект можно посмотреть здесь: Foodgram
- Клонируйте репозиторий с проектом на свой компьютер. В терминале из рабочей директории выполните команду:
git clone https://github.com/Ilya-Reznikov60/foodgram-project-react
- Установить и активировать виртуальное окружение
python -m venv venv
source /venv/Scripts/activate
- Установить зависимости из файла requirements.txt
python -m pip install --upgrade pip
pip install -r requirements.txt
- Создать файл .env в папке проекта с такими данными:
DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=postgres # имя базы данных
POSTGRES_USER=postgres # логин для подключения к базе данных
POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД
- Выполняем миграции:
python manage.py migrate
- Запускаем тсетовый сервер:
python manage.py runserver
- Создаём нового супер пользователя:
python manage.py createsuperuser
- Загрузка статики:
python manage.py collectstatic --no-input
- Загрузка тестовых данных в виде ингредиентов:
python manage.py load_csv_data
- в клоннированном репозитории в папке infra выполните следующую команду:
docker-compose up -d --build
- запустится оркестр контейнеров, проверить их можно командой:
docker-compose ps
- выполняем миграции:
docker-compose exec backend python manage.py migrate
- собираем статику:
docker-compose exec backend python manage.py collectstatic
docker-compose exec backend python manage.py cp -r /app/static/ . /backend_static/
- Грузим тестовые данные:
docker-compose exec backend python manage.py load_csv_data
Адрес | Описание |
---|---|
127.0.0.1 | Главная страница |
127.0.0.1/admin/ | Для входа в панель администратора |
127.0.0.1/api/docs/ | Описание работы API |
-
Файл workflow уже написан. Он находится в директории
foodgram-project-react/.github/workflows/main.yml
-
Для адаптации его на своем сервере добавьте секреты в GitHub Actions:
DOCKER_USERNAME # имя пользователя в DockerHub DOCKER_PASSWORD # пароль пользователя в DockerHub HOST # ip_address сервера USER # имя пользователя SSH_KEY # приватный ssh-ключ (cat ~/.ssh/id_rsa) SSH_PASSPHRASE # кодовая фраза (пароль) для ssh-ключа TELEGRAM_TO # id телеграм-аккаунта (можно узнать у @userinfobot, команда /start) TELEGRAM_TOKEN # токен бота (получить токен можно у @BotFather, /token, имя бота)
- Замените в файле docker-compose.ptoduction.yml наименования образов в соответвии с вашим логином на DockerHub
- Далее git add ./ git commit/ git push Ваш Git Action проведет тесты, соберет образы и отправит их на репозиторий, задеплоит ваш проект на сервер и даже уведомит вас в случае успеха в телеграм.
sudo docker compose -f docker-compose.production.yml exec backend python manage.py load_csv_data
Резников Илья - GitHub