- Описание проекта
- Используемые технологии
- Архитектура проекта
- Как запустить проект в Docker?
- Как развернуть проект локально?
- Заполнение базы начальными данными
- Workflow
- Авторы проекта
Открытое API для просмотра произведений, их оценки и комментариев. API запросы можно протестировать через приложение Postman, которое можно скачать по ссылке: https://www.postman.com/downloads/
Директория | Описание |
---|---|
api_yamdb |
Код Django приложения |
infra |
Файлы для запуска с помощью Docker, настройки Nginx |
test |
Директория с тестами приложения |
-
Запустите терминал и клонируйте репозиторий
git clone https://github.com/FakaFakaYeah/feedback_platform.git
-
Установите Docker по ссылке https://www.docker.com/products/docker-desktop
-
Перейдите в директорию с docker-compose.yaml
cd infra
-
Создайте .env файл и заполните его по шаблону
USE_POSTGRESQL=True # Установите True, чтобы в докере использовалась PostgreSQL SECRET_KEY= #укажите свой SECRET_KEY DB_ENGINE=django.db.backends.postgresql #указываем, что работаем с postgresql DB_NAME= #имя базы данных POSTGRES_USER= #логин для подключения к базе данных POSTGRES_PASSWORD= #пароль для подключения к БД (установите свой) DB_HOST= #название сервиса (контейнера) DB_PORT= #порт для подключения к БД
-
Выполните команду по разворачиванию docker-compose
docker-compose up -d
-
Будет проведена сборка образа по Dockerfile и запуск проекта в трех контейнерах
-
Выполните миграции по следующей команде:
docker-compose exec web python manage.py migrate
-
Выполните сбор статики проекта по следующей команде:
docker-compose exec web python manage.py collectstatic --no-input
-
Cоздайте суперпользователя
docker-compose exec web python manage.py createsuperuser
укажите имя пользователя, почту и пароль
-
Проект будет доступен по следующим адресам:
http://localhost/redoc/ - документация со всеми эндпоинтами http://localhost/admin/ - админ зона
-
Запустите терминал и клонируйте репозиторий
git clone https://github.com/FakaFakaYeah/feedback_platform.git
-
Создайте и активируйте виртуальное окружение
Если у вас Linux/macOS
python3 -m venv venv source venv/bin/activate
Если у вас windows
python -m venv venv source venv/scripts/activate
-
Установите зависимости из файла requirements.txt:
pip install -r requirements.txt
-
Перейдите в директорию с файлами проекта
cd api_yamdb
-
Выполните миграции по следующей команде:
python manage.py migrate
-
Создайте суперпользователя
python manage.py createsuperuser
укажите имя пользователя, почту и пароль
-
Запустите проект
python manage.py runserver
-
Проект будет доступен по следующим адресам:
http://127.0.0.1:8000/redoc/ - документация со всеми эндпоинтами http://127.0.0.1:8000/admin/ - админ зона
Для заполнения базы этими данными выполните следующие команды в терминале:
- Если проект развернут в Docker
docker-compose exec web python manage.py loaddata fixtures.json
- Если проект развернут локально
cd api_yamdb python manage.py loaddata fixtures.json
В проекте есть готовый шаблон workflow, в котором есть тесты по PEP8, пуш образов бэкенда и фронтеда на DockerHub, деплой на боевой сервер и информирование в telegram и discord.
В workflow используются следующие константы:
DB_ENGINE = "django.db.backends.postgresql"
DB_NAME = "имя базы данных postgres"
DB_USER = "пользователь бд"
DB_PASSWORD = "пароль"
DB_HOST = "db"
DB_PORT = "5432"
DOCKER_PASSWORD=<пароль от DockerHub>
DOCKER_USERNAME=<имя пользователя>
USER=<username для подключения к серверу>
HOST=<IP сервера>
PASSPHRASE=<пароль для сервера, если он установлен>
SSH_KEY=<ваш SSH ключ (для получения команда: cat ~/.ssh/id_rsa)>(Копировать полностью)
TELEGRAM_TO=<id чата, куда должны приходить уведомления>
TELEGRAM_TOKEN<= токен вашего бота-информатора в телеграмме>
DISCORD_WEBHOOK<= Вебхук из чата в Discord, для резервного информировани>
Смирнов Степан