Skip to content

JediMode/infra_sp2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект YaMDb

Проект YaMDb собирает отзывы пользователей на произведения. Произведения делятся на категории: «Книги», «Фильмы», «Музыка». В каждой категории есть произведения: книги, фильмы или музыка. Произведению может быть присвоен жанр. Новые жанры может создавать только администратор. Пользователи могут оставить к произведениям текстовые отзывы и поставить произведению оценку (в диапазоне от одного до десяти). Из пользовательских оценок формируется усреднённая оценка произведения — рейтинг.

Стек технологий

  • Python 3.7
  • Django 2.2.16
  • Linux 5.4.0
  • Ubuntu 20.04.4
  • Gunicorn 20.0.4
  • Nginx 1.18.0
  • Docker Engine 20.10.17
  • Docker-compose 3.3
  • PosgreSQL 14.4

Как запустить проект:

Настройте приложение для работы с базой данных Postgres, для этого оно должно знать все данные для подключения к базе. Создайте файл .env в директории /infra_sp2/infra/ с переменными окружения для работы с базой данных:

    DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
    DB_NAME=postgres # имя базы данных
    POSTGRES_USER=postgres # логин для подключения к базе данных
    POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
    DB_HOST=db # название сервиса (контейнера)
    DB_PORT=5432 # порт для подключения к БД

Запустите docker-compose, для этого перейдите в директорию infra_sp2/infra/ и введите команду:

    docker-compose up -d --build #У вас развернётся проект, запущенный через Gunicorn с базой данных Postgres.

Теперь в контейнере web нужно выполнить миграции, создать суперпользователя и собрать статику. Выполните по очереди команды:

    docker-compose exec web python manage.py migrate
    docker-compose exec web python manage.py createsuperuser
    docker-compose exec web python manage.py collectstatic --no-input
  • Проект доступен по адресу http://localhost/.
  • По адресу http://localhost/admin/ вы можете авторизоваться под аккаунтом суперпользователя.