- Описание сервиса
- Особенности подключения к БД
- Особенности работы со статикой и медиа файлами
- Особенности CI/CD конфигурации
Данный сервис представляет собой панель управеления проектом. В версии 1.0 предполагается наличие следующих параметров/функций:
- Разграничение на роли внутри проекта по принципу минимальных привилегий.
- Удобный интерфейс для получения статистике об использовании проекта: количество пользователей, помещений и т.д.
- Удобный интерфейс для добавления замков со стороны производителей.
- Наличие двухфакторной аутентификации с помощью Google Authenticator.
- Просмотр, отправка и получение почты через внутренний mail-сервер.
В рамках данного проекта планируется переход к микросервисной архитектуре, поэтому подключение к кластеру имеет следующие особенности для данного сервиса:
- При работе на локальном устройстве (при разработке) необходимо установление SSH-туннеля к серверу с БД. Для этого необходимо уточнить SSH порт у системного администратора. Локальный порт, как правило, устанавливается на
5432
. Обратите внимание, если на локальном устройстве есть экземпляр PostgreSQL, то стоит выбрать другой порт. После установления SSH-туннеля, введите логин и пароль от учётной записи PostgreSQL в.env
файл, который должен находиться в папке сsettings.py
. База данных должна быть доступна по адресуlocalhost:port
. Используйте удалённый доступ к БД только при необходимости.
ВАЖНО: группа пользователей, выделенная данному сервису на кластере БД, НЕ МОЖЕТ ВЫПОЛНЯТЬ МИГРАЦИИ - ТОЛЬКО ОПЕРАЦИИ ЧТЕНИЯ И ЗАПИСИ. Используйте локальные БД для тестирования, т.к. там необходимы права на миграцию.
- В production среде данный сервис подключается к БД через VPC, в которой находится сервер с сервисом.
Из-за необходимости использования нескольких отдельных серверов для улучшения производительности, в production-среде все static и media файлы находятся в облаке, предоставленном DigitalOcean.
CI/CD конфигурация представляет собой обособленный контейнер, который при коммитах в master ветку автоматически проходит тестирование текущей версии. По умолчанию, deploy стадия всегда находится в ручном режиме.