Skip to content

Яндекс Практикум. Проект 16-го спринта: Continuous Integration и Continuous Deployment проекта api_yamdb. Автоматический запуск тестов, обновление образов на Docker Hub, деплой на боевой сервер при пуше в главную ветку main.

Notifications You must be signed in to change notification settings

egorcoders/yamdb_final

Repository files navigation

Проект YaMDb

Python Django Pytest

Яндекс Практикум. Проект 16-го спринта: CI и CD проекта api_yamdb.

Описание

Проект YaMDb собирает отзывы пользователей на произведения из категорий: «Книги», «Фильмы», «Музыка».

Функционал

  • Произведения делятся на категории. Список категорий может быть расширен администратором;
  • Произведения, фильмы и музыка не хранятся в приложении;
  • В каждой категории есть произведения: книги, фильмы или музыка;
  • Произведению может быть присвоен жанр из списка предустановленных. Новые жанры может создавать только администратор;
  • Пользователи могут оставлять отзывы и ставить оценку произведениям. Из пользовательских оценок формируется рейтинг. На одно произведение можно оставить только один отзыв.

Установка

  1. Клонировать репозиторий:

    git clone https://github.com/egorcoders/yamdb_final.git
  2. Создать .env файл на уровне с файлом docker-compose.yaml в директории infra с указаниме данных:

    • SECRET_KEY - секретный ключ Django;
    • DB_ENGINE - движок базы данных (БД) postgresql: django.db.backends.postgresql;
    • DB_NAME - имя БД: postgres;
    • POSTGRES_USER - пользователь БД: postgres;
    • POSTGRES_PASSWORD - пароль рользователя БД: postgres;
    • DB_HOST - адрес удалённого сервера БД, по умолчанию: db;
    • DB_PORT - порт сервера базы данных: 5432;
  3. Создать и активировать виртуальное пространство, установить зависимости и запустить тесты:

    Для Windows:

    cd yamdb_final
    python -m venv venv
    source venv/Scripts/activate
    cd api_yamdb
    pip install -r requirements.txt
    cd ..
    pytest

    Для Mac/Linux:

    cd yamdb_final
    python3 -m venv venv
    source venv/bin/activate
    cd api_yamdb
    pip install -r requirements.txt
    cd ..
    pytest
  4. Запустить контейнер Docker:

    • Проверить статус Docker:
    docker --version
    • Запустить docker-compose:
    cd infra/
    docker-compose up -d
  5. Выполнить миграции, создать суперпользователя и мигрировать статику:

    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
  6. Для запуска в виртуальном окружении, после создания и активации виртуального пространства, установки зависимостей, запустить проект локально:

    Для Windows:

    python manage.py runserver

    Для Mac/Linux:

    python3 manage.py runserver
  7. Проверить доступность сервиса:

    http://localhost/admin
    http://51.250.80.244/admin

About

Яндекс Практикум. Проект 16-го спринта: Continuous Integration и Continuous Deployment проекта api_yamdb. Автоматический запуск тестов, обновление образов на Docker Hub, деплой на боевой сервер при пуше в главную ветку main.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages