!
Все ссылания на переменные идут для .env
В котором находятся все основные переменные для корректировки.
Создайте или используйте базовый с редакцией логин/пароль.
!
- Docker
- WSL2 <- используется самим Docker (если используете без него, должно работать и так)
Используется для создания ключа, поэтому если ключ будет создаваться по пункту1необходимо к использованию
(либо используйте другой способ создания ключа)
Все приведённые команды с учётом запуска из рабочей директории приложения.
- Создание MongoDB
keyFileв директорииdocker_mongo_db:756 <- устанавливает количество байтов для генерации.wsl -u root apt-get install openssl openssl rand -base64 756 > ./docker_mongo_db/mongo-key.txt
Большее значение может обеспечить более высокую степень случайности, но для MongoDB важно, чтобы размер ключа был не менее 1024 символов после кодирования в base64. - Создание сертификата и ключа для
JWT:
Создайте папкуcertificatesв директории сервисаwsl -u root apt-get install openssl openssl genpkey -algorithm RSA -out ./certificates/private_key.pem -pkeyopt rsa_keygen_bits:2048 openssl rsa -pubout -in ./certificates/private_key.pem -out ./certificates/public_key.pem - Запуск Docker:
- Из рабочей директории приложения с
docker-compose.yml
docker-compose up --no-start --build -d- Запустите контейнер MongoDB
docker start mongo_auth_db- Инициализируйте
replica-set
docker exec -it mongo_auth_db bash -c 'replica_init.sh'- Создайте пользователя для сервиса
docker exec -it mongo_auth_db bash -c 'create_api_user.sh'- Запустите контейнер сервиса
docker start auth_appmongo_auth_db&auth_app<- стандартное название контейнера, замените на используемый вами.
Также можно запустить все команды и через exec в Desktop версии. - Из рабочей директории приложения с
- Проверьте рабочий статус сервиса перейдя
localhost:8080/docs
(Измените домейн + порт в соответствии с вашими данными)
jwt_issuer<- создатель(издатель) токена, хранящийся в нём для верификацииjwt_expiration<- время действия созданного сертификатаjwt_algorithm<- алгоритм использумый для создания JWTMONGO_CONTAINER_NAME<- название контейнера базы данныхMONGO_ADMIN_LOGIN<- логин для аутентификации первичного аккаунта администратора базы данных (имеет все права)MONGO_ADMIN_PWD<- пароль для аутентификации первичного аккаунта администратора базы данныхMONGO_SERVER<- адрес подключения к MongoDBMONGO_SERVER_OUTSIDE_PORT<- открываемый внешний порт для контейнера базы данныхMONGO_SERVER_INSIDE_PORT<- открываемый внутренний порт для контейнера базы данныхMONGO_REPLICA_NAME<- название создаваемого и используемого в дальнейшемreplica-set(используется при подключении)API_MONGO_LOGIN<- логин для аутентификации аккаунта используемого сервисом (имеет доступ только к выделенной базе данных)API_MONGO_PWD<- пароль для аутентификации аккаунта используемого сервисомAPI_MONGO_DB_NAME<- название базы данных, используемой сервисомAPI_MONGO_AUTH_DATABASE<- база данных используемая для авторизации аккаунта сервисаAPI_CONTAINER_NAME<- название контейнера сервисаAPI_OUTSIDE_PORT<- открываемый внешний порт для контейнера сервисаAPI_INSIDE_PORT<- открываемый внутренний порт для контейнера сервисаAPI_F_ADMIN_LOGIN<- логин первого аккаунта администратора сервисаAPI_F_ADMIN_PWD<- пароль первого аккаунта администратора сервисаCElERY_F_WORKER<- логин первого работника для celery, используется сервисомCELERY_F_WORKER_PWD<- пароль первого работника для celery, используется сервисомSTANDARD_RESET_PWD<- стандартный пароль, который будет использоваться при сбросе пароля пользователей