- Поставить себе
docker
иdocker-compose
- Скопировать конфиг бекенда
mv server/example.env server/.env
- Сделать
docker-compose up -d --scale api=2
. Параметр--scale
позволяет задать кол-во запускаемых контейнеров, в данном случае мы хотим поднять 2 ноды для тестирования api в кластерном режиме. - После первого запуска сделать
docker-compose exec api_1 knex migrate:latest
чтобы накатить миграции БД - После этого можно подключаться к
localhost:3000
и заходить под админом{login: 'admin', password: '123321'}
- Mysql база также проксируется на порт 33066, поэтому можно подключиться к ней с юзером паролем chat chat. Данные mysql сохраняются в
/.db
- Redis доступен с локалхоста через порт 63799, можно при желании в него тоже посмотреть. Данные redis контейнера сохраняются в
/.db-redis
cd ./server
- Подготовить базу mysql(v5.7) которую не жалко. Подготовить базу redis(v3.0.6).
- Сделать
mv example.env .env
, заполнить.env
npm i
npm knex migrate:latest
- чтобы подготовить структуру базы и наполнить её тестовыми данными.npm start
cd ./client
npm i
npm start
- должен сбилдится dev бандл и начать раздаваться наhttp://localhost:3000/
. Автоматом должна открыться вкладка в браузере.- Только пользователь с правами админа может менять права других пользователей чата. Чтобы зайти под ним, нужно ввести
{login: 'admin', password: '123321'}
- Переделать схему rpc запросов. Не нравится мне, что тут ответ может быть одновременно и ошибкой, и верным объектом или примитивом любого типа. Лучше будет если схема будет, например такой:
const successfulRes = {
success: true,
value: 'Any',
}
const rejectedRes = {
success: false,
value: `Any representation of error`,
}
- Еще нужно ORM сюда затащить желательно. Я люблю objection.js.
- Добавить возможность настраивать фронтенд через env
- Добавить возможность настраивать nginx через env
- Добавить возможность деплоить прод версию фронтенда и раздавать её через nginx