Доступен по адресу: http://51.250.19.66/
Доступ в админку:
- email: admin@admin.ru
- pass: admin
В данном проекте реализован API функционал для проекта FOODGRAM и настроен CI/CD с помощью Github Actions.
После того, как сделан пуш в основную ветку:
- Разворачивается окружение;
- Прогоняются тесты;
- Cобирается DOCKER образ и пушится в DockerHub;
- На удаленном сервере запускаются команды из файла docker-compose.yaml которые поднимают 3 контейнера (db, web, nginx). Эти команды описаны в файле: backend_workflow.yml.
- Установить nginx
sudo apt install nginx -y
- Разрешить запросы по протоколам http, https и ssh
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
- Включить файрвол
sudo ufw enable
- Запустить nginx
sudo systemctl start nginx
- Установить Docker и Docker-compose
sudo apt install docker.io
-
Добавить env переменные в Github Actions
DB_ENGINE DB_HOST DB_NAME DB_PORT DOCKER_PASSWORD DOCKER_USERNAME HOST PASSPHRASE POSTGRES_PASSWORD POSTGRES_USER SSH_KEY TELEGRAM_TO TELEGRAM_TOKEN USER
-
Скопировать файлы docker-compose.yaml и nginx/default.conf из репозитория на сервер в home/<ваш_username>/docker-compose.yaml и home/<ваш_username>/nginx/default.conf
- Собрать docker-compose
sudo docker-compose up -d --build
- Собрать статику
sudo docker-compose exec backend python manage.py collectstatic --no-input
- Создать и применить миграции
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 createsuperuser
- Проект работает с СУБД PostgreSQL.
- Проект запущен на сервере в Яндекс.Облаке в трёх Docker контейнерах: nginx, PostgreSQL и Django+Gunicorn.
- Контейнер с проектом обновляется на Docker Hub.
- В nginx настроена раздача статики, остальные запросы переадресуются в Gunicorn.