mirror of
https://github.com/elyby/accounts.git
synced 2025-05-31 14:11:46 +05:30
Readme
This commit is contained in:
118
README.md
118
README.md
@@ -1,97 +1,85 @@
|
||||
# Accounts Ely.by
|
||||
|
||||
## Развёртывание dev [backend]
|
||||
Сервис управления Аккаунтами Ely.by, предоставляющий единую точку входа для наших и внешних сервисов по протоколу
|
||||
OAuth2, а также реализующий сервер авторизации для серверов Minecraft и частично реализующий совместимое с API Mojang
|
||||
для получения информации об аккаунтах.
|
||||
|
||||
Предварительно нужно установить [git](https://git-scm.com/downloads),
|
||||
[docker](https://docs.docker.com/engine/installation/) и его
|
||||
[docker-compose](https://docs.docker.com/compose/install/).
|
||||
**Предупреждение**: этот проект не предназначен для использования вне экосистемы сервисов Ely.by.
|
||||
|
||||
За тем нужно установить, настроить и запустить [nginx-proxy](https://gitlab.com/elyby/nginx-proxy)
|
||||
контейнер. Это делается один раз в рамках системы и в дальнейшем используется и для других проектов.
|
||||
## Разработка
|
||||
|
||||
Также необходимо иметь доступ к `registry.ely.by`. Для этого выполнить команду `docker login registry.ely.by`,
|
||||
ввести свой логин и пароль. Если доступа нету, то нужно его попросить у кого-нибудь, кто может его выдать.
|
||||
Проект ориентирован на работу в Docker окружении, так что для полноценной работы проекта запускать его следует именно в
|
||||
окружении Docker-контейнера. Ссылки на установки:
|
||||
- [Docker](https://docs.docker.com/install/)
|
||||
- [docker-compose](https://docs.docker.com/compose/install/)
|
||||
|
||||
За тем сливаем репозиторий:
|
||||
Далее необходимо создать форк репозитория, а после клонировать его:
|
||||
|
||||
```sh
|
||||
git clone git@gitlab.ely.by:elyby/accounts.git account.ely.by
|
||||
cd account.ely.by
|
||||
git clone git@github.com:<your_username>/accounts.git
|
||||
cd accounts
|
||||
```
|
||||
|
||||
Далее нужно создать `.env`, `docker-compose.yml` и `id_rsa` файлы:
|
||||
Затем необходимо создать локальные файлы `.env` и `docker-compose.yml`:
|
||||
|
||||
```sh
|
||||
cp .env-dist .env
|
||||
cp docker-compose.dev.yml docker-compose.yml
|
||||
cp ~/.ssh/id_rsa id_rsa # Использовать ссылку нельзя
|
||||
cp .env.dist .env
|
||||
cp docker-compose.dist.yml docker-compose.yml
|
||||
```
|
||||
|
||||
**Касательно файла id_rsa**: часть зависимостей находятся в наших приватных репозиториях, получить
|
||||
доступ куда можно только в том случае, если в контейнере окажется ключ, который имеет доступ к этим
|
||||
репозиториям.
|
||||
Скопированные файлы можно изменить под условия локальной среды разработки, но в общем случае они пригодны для
|
||||
использования без вашего вмешательства.
|
||||
|
||||
Все вышеперечисленные файлы находятся под gitignore, так что с конечными файлами можно произвести
|
||||
все необходимые манипуляции под конкретную задачу разработки. **В файле `.env` обязательно следует
|
||||
задать `JWT_USER_SECRET`, иначе авторизация на бекенде не заработает.**
|
||||
Контейнеры не умеют автоматически устанавливать зависимости, так что их нужно установить самостоятельно. Если у вас в
|
||||
системе установлен `php` и `composer`, то можно установить зависимости через команду `composer install`. Вы также всегда
|
||||
можете установить зависимости с помощью контейнера:
|
||||
|
||||
После этого просто выполняем старт всех контейнеров:
|
||||
```sh
|
||||
docker-compose run --rm --no-deps app composer install
|
||||
```
|
||||
|
||||
При первом запуске произойдёт процесс загрузки и построения необходимых образов, после чего все контейнеры начнут
|
||||
свою работу, и вы сможете приступить к разработке.
|
||||
|
||||
Для запуска всех контейнеров, используйте следующую команду:
|
||||
|
||||
```sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Контейнеры автоматически сбилдятся и начнут свою работу.
|
||||
По умолчанию, в `docker-compose.yml` указан `80` порт для самого сервиса, а также `8080` порт для подключения
|
||||
к phpMyAdmin. Если сервисы `web` и `phpmyadmin` выбросят ошибку, связанную с занятостью портов, то необходимо или
|
||||
освободить необходимые порты (`80` и `8080`), или же изменить их, после чего заново выполнить команду
|
||||
`docker-compose up -d`.
|
||||
|
||||
## Развёртывание dev [frontend]
|
||||
### Пользовательский интерфейс
|
||||
|
||||
Чтобы поднять сборку frontend приложения, необходимо иметь установленный в системе [Node.js](https://nodejs.org)
|
||||
версии 5.x или 6.x, а так же npm 3-ей версии (`npm i -g npm` для обновления).
|
||||
Этот репозиторий содержит в себе только код для API бекенда, в то время как интерфейс находится в
|
||||
[соседнем репозитории](https://github.com/elyby/accounts-frontend). Пользователи Linux и Mac могут использовать
|
||||
следующий скрипт, чтобы получить последнюю версию пользовательского интерфейса:
|
||||
|
||||
За тем переходим в папку `frontend` и устанавливаем зависимости:
|
||||
|
||||
```sh
|
||||
cd frontend
|
||||
npm i
|
||||
```bash
|
||||
curl -s https://api.github.com/repos/elyby/accounts-frontend/releases/latest \
|
||||
| grep "browser_download_url.*tar.gz" \
|
||||
| cut -d : -f 2,3 \
|
||||
| tr -d \" \
|
||||
| xargs curl -sLo /tmp/accounts-frontend.tar.gz \
|
||||
&& rm -rf frontend \
|
||||
&& mkdir -p frontend \
|
||||
&& tar -zxf /tmp/accounts-frontend.tar.gz -C frontend \
|
||||
&& rm -f /tmp/accounts-frontend.tar.gz
|
||||
```
|
||||
|
||||
После того, как все зависимости будут установлены, можно поднять dev-сервер. Здесь есть 2 пути: можно, следуя
|
||||
инструкции выше, поднять backend на своей машине через Docker. Если же разработка не привязывается к специфичной
|
||||
версии backend, то более быстрым и удобным способ будет использовать наш dev-сервер, расположенный под адресу
|
||||
https://dev.account.ely.by.
|
||||
Если этот скрипт не сработал для вас, то вы можете самостоятельно перейти на
|
||||
[страницу релизов](https://github.com/elyby/accounts-frontend/releases), скачать подходящий `build`-архив и
|
||||
разархивировать всё его содержимое в папку `frontend`.
|
||||
|
||||
В любом из случаев необходимо в папке `frontend/config` скопировать файл `template.env.js` в `env.js` (находится
|
||||
под .gitignore) и указать в параметре `apiHost` или свой локальный сервер (тот хост, что был указан в .env
|
||||
как `VIRTUAL_HOST`), или указав просто `https://dev.account.ely.by`.
|
||||
### Как войти в работающий контейнер
|
||||
|
||||
После того, как это будет сделано, запускаем dev-сервер (находясь в папке frontend):
|
||||
|
||||
```
|
||||
npm start
|
||||
```
|
||||
|
||||
dev-сервер поднимется на 8080 порту и будет доступен по адресу http://localhost:8080.
|
||||
|
||||
### Как влезть в работающий контейнер
|
||||
|
||||
Начиная с версии docker-compose 1.9.0, появилась команда `docker-compose exec`, которая позволяет выполнить
|
||||
на работающем контейнере произвольную команду, основываясь на имени сервиса в compose файле.
|
||||
Начиная с версии `docker-compose` 1.9.0, была добавлена команда `docker-compose exec`, которая позволяет выполнить
|
||||
на работающем контейнере произвольную команду, основываясь на имени сервиса в compose-файле. Так, например, чтобы
|
||||
войти в shell контейнера `app`, используйте следующую команду:
|
||||
|
||||
```
|
||||
docker-compose exec app bash
|
||||
```
|
||||
|
||||
------------------------
|
||||
|
||||
_// Старый вариант_
|
||||
|
||||
Сперва, с помощью команды `docker ps` мы увидим все запущенные контейнеры. Нас интересуют значения
|
||||
из первой колонки CONTAINER ID или NAMES. Узнать, чему они соответствуют можно прочитав название IMAGE
|
||||
из 2 колонки. Чтобы выполнить команду внутри работабщего контейнера, нужно выполнить:
|
||||
|
||||
```
|
||||
docker exec -it accountelyby_app_1 bash
|
||||
```
|
||||
|
||||
Где `accountelyby_app_1` - одно из значений CONTAINER ID или NAMES. Для выхода из контейнера
|
||||
используем `exit`.
|
||||
|
Reference in New Issue
Block a user