Проект YaMDb собирает отзывы (Review) пользователей на произведения (Titles). Произведения делятся на категории: «Книги», «Фильмы», «Музыка». Список категорий (Category) может быть расширен администратором (например, можно добавить категорию «Изобразительное искусство» или «Ювелирка»). Для приложения настроен Continuous Integration и Continuous Deployment, а это значит, что реализуете: автоматический запуск тестов, обновление образов на Docker Hub, автоматический деплой на боевой сервер при пуше в главную ветку main.
- http://mrgorkiy.sytes.net/admin - Панель управления администратора
- http://mrgorkiy.sytes.net/api/v1/ - Api проекта
- http://mrgorkiy.sytes.net/redoc/ - Техническая документация проекта
-
Клонируйте репозиторий
[email protected]:MrGorkiy/yamdb_final.git
-
Скопируйте файлы
docker-compose.yaml
иnginx/default.conf
из проекта в папке infra на сервер вhome/<ваш_username>/docker-compose.yaml
иhome/<ваш_username>/nginx/default.conf
соответственно. -
Установите docker:
sudo apt install docker.io
-
Установите docker-compose, с этим вам поможет официальная документация.
-
Заполните Secrets Actions по шаблону наполнения env переменных в GitHub Actions
Наименование: Содержание: DB_ENGINE django.db.backends.postgresql # указываем, что работаем с postgresql DB_NAME postgres # имя базы данных POSTGRES_USER postgres # логин для подключения к базе данных POSTGRES_PASSWORD postgres # пароль для подключения к БД (установите свой) DB_HOST db # название сервиса (контейнера) DB_PORT 5432 # порт для подключения к БД HOST 194.212.231.123 # ip сервера USER MrGorkiy # UserName для подключению к серверу SSH_KEY # Приватный ключ доступа для подключению к серверу `cat ~/.ssh/id_rsa` PASSPHRASE # Серкретный ключ\фраза, если ваш ssh-ключ защищён фразой-паролем TELEGRAM_TO # id чата пользователя или чата куда бот будет отправлять результат успешного выполнения TELEGRAM_TOKEN # Токен бота ТГ для отправки уведомления DOCKER_USERNAME # Имя пользователя Docker для публикации образов DOCKER_PASSWORD # Пароль пользоывателя Docker
-
Сделайте коммит в ветку Master/Main и готовый проект развернется у вас на сервере
-
На сервере после запуска выполнить миграции:
docker-compose exec web python manage.py migrate
-
И создать суперпользователя:
docker-compose exec web python manage.py createsuperuser
-
Заполнение БД в ручную или используя готовое наполнение
docker-compose exec web python manage.py shell # выполнить в открывшемся терминале: >>> from django.contrib.contenttypes.models import ContentType >>> ContentType.objects.all().delete() >>> quit() docker-compose exec web python manage.py loaddata fixtures.json
Python, Django, HTTP, HTTPS, Django Rest Framework, PostgreSQL, GitHub Actions, DockerHub
Автор: MrGorkiy