Цель этого сайта — дать возможность пользователям создавать и хранить рецепты на онлайн-платформе. Кроме того, можно скачать список продуктов, необходимых для приготовления блюда, просмотреть рецепты друзей и добавить любимые рецепты в список избранных.
Чтобы использовать все возможности сайта — нужна регистрация. Проверка адреса электронной почты не осуществляется, вы можете ввести любой email.
Заходите и делитесь своими любимыми рецептами!
- Аутентификация пользователей: Создавайте аккаунты или входите, чтобы получить доступ к платформе.
- Создание рецептов: Делитесь своими рецептами с другими пользователями.
- Поиск и исследование: Находите и открывайте новые рецепты, добавляйте их в избранное.
- Django 3.2
- JWT
- Python 3.9
- DRF
- PostgreSQL 13.10
- Docker
-
Подключитесь к удаленному серверу
ssh -i PATH_TO_SSH_KEY/SSH_KEY_NAME YOUR_USERNAME@SERVER_IP_ADDRESS -
Создайте на сервере директорию
gastrogram:mkdir gastrogram -
Установите 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 -
Скопируйте файлы
docker-compose.production.ymlи.envв директориюgastrogram/на сервере:scp -i PATH_TO_SSH_KEY/SSH_KEY_NAME docker-compose.production.yml YOUR_USERNAME@SERVER_IP_ADDRESS:/home/YOUR_USERNAME/gastrogram/docker-compose.production.ymlГде:
PATH_TO_SSH_KEY- путь к файлу с вашим SSH-ключомSSH_KEY_NAME- имя файла с вашим SSH-ключомYOUR_USERNAME- ваше имя пользователя на сервереSERVER_IP_ADDRESS- IP-адрес вашего сервера
-
Запустите Docker Compose в режиме демона:
sudo docker-compose -f /home/YOUR_USERNAME/gastrogram/docker-compose.production.yml up -d -
Выполните миграции, соберите статические файлы бэкенда и скопируйте их в
/backend_static/static/:sudo docker-compose -f /home/YOUR_USERNAME/gastrogram/docker-compose.production.yml exec backend python manage.py migrate sudo docker-compose -f /home/YOUR_USERNAME/gastrogram/docker-compose.production.yml exec backend python manage.py collectstatic sudo docker-compose -f /home/YOUR_USERNAME/gastrogram/docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/ -
Откройте конфигурационный файл Nginx в редакторе nano:
sudo nano /etc/nginx/sites-enabled/default -
Измените настройки
locationв секцииserver:location / { proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:8001; } -
Проверьте правильность конфигурации Nginx:
sudo nginx -tЕсли вы получаете следующий ответ, значит, ошибок нет:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful -
Перезапустите Nginx:
sudo service nginx reload
-
Файл workflow уже написан и находится в директории:
gastrogram/.github/workflows/main.yml -
Для адаптации его к вашему серверу добавьте секреты в GitHub Actions:
DOCKER_USERNAME # имя пользователя в DockerHub DOCKER_PASSWORD # пароль пользователя в DockerHub HOST # IP-адрес сервера USER # имя пользователя SSH_KEY # содержимое приватного SSH-ключа (cat ~/.ssh/id_rsa) SSH_PASSPHRASE # пароль для SSH-ключа TELEGRAM_TO # ID вашего телеграм-аккаунта (можно узнать у @userinfobot, команда /start) TELEGRAM_TOKEN # токен вашего бота (получить токен можно у @BotFather, команда /token, имя бота)
Для успешного развертывания проекта необходимо в главной директории создать файл .env, где будут указаны следующие параметры:
- POSTGRES_USER=gastrogram_user
- POSTGRES_PASSWORD=gastrogram_password
- POSTGRES_DB=gastrogram_db
- DB_NAME=gastrogram
- DB_HOST=db
- DB_PORT=5432
- SECRET_KEY=somesecretkey
- ALLOWED_HOSTS=127.0.0.1,localhost,ваш_доменный_адрес,ваш_IP_адрес
- DEBUG=False
- USE_SQLITE=False (параметр для быстрой смены БД с PostgreSQL на SQLite)