Разворот Backend-сервисов на локальной машине
Этапы
- Установка Docker
- Установка ELC
- Установка воркспейса
Установка Docker + WSL в случае windows
Делается один раз, может быть заменен на альтернативные способы установки Docker
- Устанавливаем "Docker Desktop for Windows": https://hub.docker.com/editions/community/docker-ce-desktop-windows
- Устанавливаем "WSL2": https://docs.microsoft.com/ru-ru/windows/wsl/install-win10.
- Ставим галочку в настройках докера для интеграции с wsl
Известные проблемы связки WSL2 - Docker можно почитать здесь: WSL2 и Docker. Известные проблемы
Установка Docker compose v2 plugin в случае linux
Делается один раз. Необходимо для работы команды docker compose, которая быстрее чем docker-compose и используется в наших скриптах.
- Устанавливаем плагин https://docs.docker.com/compose/cli-command/#install-on-linux
Установка ELC
ELC - это консольная утилита для запуска сервисов через docker. Выполняем инструкции по установке описанные тут
Установка ворспейса
Workspace в терминологии ELC - это конфигурация системы сервисов. Для каждого проекта создаётся своя конфигурация в котором описано какие в системе есть сервисы, какие для них нужны зависимости - базы данных, шины сообщений и т.д.
Выполняем инструкции по установке описанные здесь
Первоначальная настройка сервиса Customer Auth
Генерация ключей
Для авторизации используется Laravel Passport, при первоначальном развороте требуется его настройка.
В сервисе Customer Auth
необходимо сгенерировать ключи следующей командой:
elc -c customers-customer-auth php artisan passport:keys
С помощью env переменной PASSPORT_KEYS_PATH
можно задать путь для размещения ключей.
Создание клиента
Для текущих целей при авторизации используется Password Grant Type
.
Соответственно для создания клиента с данным типом авторизации в сервисе Admin Auth
используется команда:
elc -c customers-customer-auth php artisan passport:client --password
При выполнении команды желательно задать пользовательское имя клиента, но можно оставить и значение по умолчанию. Провайдер оставляем по умолчанию.
После создания клиента в консоль выводятся Client ID
и Client secret
.
Их необходимо заполнить в .env
файл сервиса Customer API Gateway
в виде переменных CUSTOMERS_CUSTOMER_AUTH_SERVICE_CLIENT_ID
и CUSTOMERS_CUSTOMER_AUTH_SERVICE_CLIENT_SECRET
соответственно.
Первоначальная настройка сервиса Admin Auth
Генерация ключей
Для авторизации используется Laravel Passport, при первоначальном развороте требуется его настройка.
В сервисе Admin Auth
необходимо сгенерировать ключи следующей командой:
elc -c units-admin-auth php artisan passport:keys
С помощью env переменной PASSPORT_KEYS_PATH
можно задать путь для размещения ключей.
Создание клиента
Для текущих целей при авторизации используется Password Grant Type
.
Соответственно для создания клиента с данным типом авторизации в сервисе Admin Auth
используется команда:
elc -c units-admin-auth php artisan passport:client --password
При выполнении команды желательно задать пользовательское имя клиента, но можно оставить и значение по умолчанию. Провайдер оставляем по умолчанию.
После создания клиента в консоль выводятся Client ID
и Client secret
.
Их необходимо заполнить в .env
файл сервиса Admin GUI Backend
в виде переменных UNITS_ADMIN_AUTH_SERVICE_CLIENT_ID
и UNITS_ADMIN_AUTH_SERVICE_CLIENT_SECRET
соответственно.