Перейти к основному содержимому

Разворот Backend-сервисов на локальной машине

Этапы

  1. Установка Docker
  2. Установка ELC
  3. Установка воркспейса

Установка Docker + WSL в случае windows

Делается один раз, может быть заменен на альтернативные способы установки Docker

  1. Устанавливаем "Docker Desktop for Windows": https://hub.docker.com/editions/community/docker-ce-desktop-windows
  2. Устанавливаем "WSL2": https://docs.microsoft.com/ru-ru/windows/wsl/install-win10.
  3. Ставим галочку в настройках докера для интеграции с wsl

Известные проблемы связки WSL2 - Docker можно почитать здесь: WSL2 и Docker. Известные проблемы


Установка Docker compose v2 plugin в случае linux

Делается один раз. Необходимо для работы команды docker compose, которая быстрее чем docker-compose и используется в наших скриптах.

  1. Устанавливаем плагин 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 соответственно.