# Инструкция по локальной установке проекта “ПлюсАгент”. Бэкенд и фронтенд. ## Предварительные требования: - MySQL v5 - Apache HTTPD v2 ## Этап 1. Установка бэкенд-приложения 1. Клонировать репозиторий `queses/lx-site-rebuild` и перейти в папку `/backend` 2. Выполнить `sh env.sh` (на Windows: создать копию файла `env.dist` под названием `.env`) 3. Создать две базы данных MySQL - одну для разработки (например, `lxnew`), и другую для тестирования (например, `lxnew_test`) 4. Отредактировать `.env`: наименование БД для разработки, имя пользователя и пароль пользователя в переменные `DB_NAME`, `DB_USER` и `DB_PASS` соответственно 5. Отредактировать `.env`: наименование БД для тестирования, имя пользователя и пароль пользователя в переменные `DB_NAME_TEST`, `DB_USER_TEST` и `DB_PASS_TEST` соответственно 6. Записать в `.env` локальный веб-адрес проекта: ``` HOST = http://api.plusagent.localhost MAIN_HOST = http://plusagent.localhost PORT = 3006 FRONTEND_HOST = http://plusagent.localhost ``` 7. Записать в `.env` случайные ключи шифрования, например: ``` JWT_SIGN_KEY = ZOPwAn76LxSzxTpraIHmBsbfRUeAOvyO CRYPTO_KEY_JWT = ItAux_tRqoSkuxY3vAsdAElO CRYPTO_IV_JWT = 0CV58Tn4JnvXpdst ``` 8. Выполнить миграцию БД для разработки командой `yarn orm schema:sync` 9. Выполнить миграцию БД для тестирования командой `yarn orm:test schema:sync` 10. Проверить, что выполняются тесты командой `yarn test` ## Этап 2. Получение тестовых данных 1. Перейти в в директорию `/backend` 2. Выполнить команду `yarn do lx:app-init:run`, тем самым добавив в БД начальные данные 3. Выполнить команду `yarn do intrum:pull null 1`, тем самым загрузив из CRM список специалистов, объектов и собственников. Команда загружает из CRM необходимые данные, включая фотографии, поэтому выполнение может занять некоторое время > Справка по синтаксису команды: `yarn do` запускает консольный контроллер (по аналогии с веб-контроллером) и вызывает обработчик команды `intrum:pull`. `null 4` - это аргументы, разделённые пробелами. Первый аргумент - это `id` риэлтора, чьи объекты нужно загрузить; нам нужны все риэлторы, поэтому пишем `null`. Второй агрумент - количество страниц, которые нужно загрузить. ## Этап 3. Установка фронтенд-приложения 1. Перейти в директорию `/frontend` 2. Выполнить команду `git submodule init` 3. Выполнить команду `git submodule update`; проверить, что в директории `lib/lx-request` появились файлы 4. Выполнить `sh env.sh` (на Windows: создать копию файла `env.dist` под названием `.env`) 5. Записать в `.env` локальный веб-адрес проекта: ``` API_HOST = http://api.plusagent.localhost AUTH_API_HOST = http://api.plusagent.localhost AUTH_FRONT_HOST = http://plusagent.localhost ``` ## Этап 4. Проксирование локальных адресов Для этого этапа должен быть установлен и настроен веб-сервер Apache, должен быть включены модули для работы с прокси. Иструкция для Windows доступна по [ссылке](https://gist.github.com/erodewald/cfed87b4ec3f362006bb). Выполнять последний пункт не нужно; вместо него нужно выполнить следующие шаги: 1. Открыть Apache24\conf\extra\httpd-vhosts.conf в текстовом редакторе 2. Добавить: ```xml= <VirtualHost *:80> ServerName plusagent.localhost ProxyPass / http://127.0.0.1:3007/ ProxyPassReverse / http://127.0.0.1:3007/ </VirtualHost> <VirtualHost *:80> ServerName api.plusagent.localhost ProxyPass / http://127.0.0.1:3006/ ProxyPassReverse / http://127.0.0.1:3006/ </VirtualHost> ``` 3. Открыть в текстовом редакторе с правами администратора файл hosts `c:\windows\system32\drivers\etc\hosts` и добавить туда записи: ``` 127.0.0.1 plusagent.localhost 127.0.0.1 api.plusagent.localhost ``` Для Linux и macOS установка Apache сводится к загрузке пакета из терминала (с помощью `brew`, `apt`, `pacman` и т. д.) и выполнению действий, описанных ниже. ## Этап 5. Запус веб-приложения 1. Запустите бекенд-приложение командой `yarn dev` из директории `/backend` 2. Запустите фронтенд-приложение командой `yarn dev` из директории `/frontend` ## Дополнительная информаци ### Установка MySQL и создание баз данных Инструкция для Windows (для других ОС действия аналогичные): 1. Установить MySQL v5 из [файла](https://dev.mysql.com/downloads/file/?id=492048) 2. Выполнить в консоли команду `mysql -u root`; откроется клиент MySQL, в котором нужно выполнить следующие команды: ``` CREATE DATABASE `lxnew` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE `lxnew_test` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ```