Как происходит процесс первичной инициализации при разворачивании приложения?
Есть большое приложение, с веб мордой, ролевой моделью, сервисом Auth и прочее.
Работает в закрытом контуре, разворачивается на клиенте.
Без логин/пароля не зайти в систему, и надо создать "главного" админа на этапе развертывания приложения.
Какие лучшие практики инициализации супер юзера на этапе первого запуска приложения?
развертывание приложения осуществляется через баш скрипт, имеет ли смысл в нем запрашивать логин/пароль/email будущего админа?
или сделать вариант с первичной настройкой системы через веб морду, но для этого надо поднимать отдельный докер фронта/бэкэ чтобы он не висел все время, а только на один раз, как это лучше реализовать?
вообще хотелось бы услышать ваши практики подобных кейсов, спасибо)
Это не самый важный вопрос на стадии MVP как потом будет коробка работать.
В конце концов может быть просто начальный докер контейнер с предустановленным дефолтным паролем.
Если ориентироваться на массовые CRM для широкой аудитории, то пишут install.php (который проверяет, что еще не сконфигурирован) и дает сделать эти настройки.
Другой вариант это скрипт, который можно запустить только через консоль на сервере.
лежит выше ввв рута / проверяет что cli вызов
можно прикрутить как часть развертывания через packagist
Ну, например, в django для этого есть отдельная команда:
Выглядит это так:
(venv) C:\Users\Alex\PycharmProjects\TranslatеTracker>manage.py createsuperuser
Username (leave blank to use 'alex'): Alex
Email address:
Password:
Password (again):
This password is too common.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
(venv) C:\Users\Alex\PycharmProjects\TranslatеTracker>
В целом - можете сделать по такому-же принципу - создать скрипт, использующий готовые функции и доступный только из консоли.
Подобное взаимодействие называются CLI (просто для справки), в интернете полно примеров реализации.