2017-09-03 02:39:11 +05:30
|
|
|
|
# Ely.by Minecraft Skinsystem
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
Реализация API системы скинов для Minecraft v4.
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
## Config
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
Конфигурация может задаваться посредством любого из перечисленных форматов файлов: JSON, TOML, YAML, HCL и
|
|
|
|
|
Java properties. Кроме того, параметры конфигурации могут перезаписываться доступными при запуске программы
|
|
|
|
|
ENV переменными.
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
> **Заметка**: ENV переменные именуются как KEY.SUBKEY.SUBSUBKEY, т.е. все символы должны быть заглавными,
|
|
|
|
|
а точки должны отделять уровень вложенности.
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
Пример файла конфигурации находится в [config.dist.yml](config.dist.yml). Внутри dist-файла есть комментарии,
|
|
|
|
|
поясняющие назначение тех или иных параметров. Для работы его следует скопировать в локальный `config.yml`
|
|
|
|
|
и отредактировать под свои нужды.
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
## Развёртывание
|
|
|
|
|
|
|
|
|
|
Деплоить проект можно двумя способами:
|
|
|
|
|
|
|
|
|
|
1. Скомпилировав и запустив бинарный файл, а также обеспечив ему доступ ко всем необходмым сервисам.
|
|
|
|
|
|
|
|
|
|
2. Используя Docker и docker-compose.
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
*Первый случай не буду описывать, т.к. долго, мучительно и никто так делать не будет, я гарантирую это*,
|
|
|
|
|
поэтому перейдём сразу ко второму.
|
|
|
|
|
|
|
|
|
|
Прежде всего необходимо установить [Docker](https://docs.docker.com/engine/installation/) и
|
|
|
|
|
[docker-compose](https://docs.docker.com/compose/install/).
|
|
|
|
|
|
|
|
|
|
Для запуска последней версии проекта достаточно скопировать содержимое файла
|
2017-09-04 22:54:55 +05:30
|
|
|
|
[docker/docker-compose.prod.yml](docker/docker-compose.prod.yml) в файл `docker-compose.yml` непосредственно
|
|
|
|
|
на месте установки, после чего ввести в консоль команду:
|
2016-07-05 04:12:58 +05:30
|
|
|
|
|
|
|
|
|
```sh
|
2016-08-02 17:32:36 +05:30
|
|
|
|
docker-compose up -d
|
2016-07-05 04:12:58 +05:30
|
|
|
|
```
|
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
Web-приложение, amqp worker и все сопутствующие сервисы будут автоматически запущены. Данные из контейнеров
|
|
|
|
|
будут синхронизироваться в папку `data`.
|
2017-08-17 05:17:35 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
## Разработка
|
2017-08-17 05:17:35 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
Перво-наперво необходимо [установить последнюю версию Go](https://golang.org/doc/install) и сконфигурировать
|
|
|
|
|
переменную окружения GOPATH, а также установить инструмент контроля версий [dep](https://github.com/golang/dep).
|
2017-08-17 05:17:35 +05:30
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
Затем можно склонировать репозиторий хитрым способом, чтобы удовлетворить все прекрасные особенности Go:
|
2017-08-17 05:17:35 +05:30
|
|
|
|
|
|
|
|
|
```sh
|
2017-09-03 02:39:11 +05:30
|
|
|
|
# Сперва создадим подпапку для приватных Go проектов Ely.by
|
|
|
|
|
mkdir -p $GOPATH/src/elyby
|
|
|
|
|
# Затем непосредственно клинируем репозиторий туда, где его ожидает увидеть Go
|
|
|
|
|
git clone git@gitlab.ely.by:elyby/minecraft-skinsystem.git $GOPATH/src/elyby/minecraft-skinsystem
|
|
|
|
|
# Переходим в папку проекта
|
|
|
|
|
cd $GOPATH/src/elyby/minecraft-skinsystem
|
|
|
|
|
# Устанавливаем зависимости
|
|
|
|
|
dep ensure
|
2017-08-17 05:17:35 +05:30
|
|
|
|
```
|
|
|
|
|
|
2017-09-03 02:39:11 +05:30
|
|
|
|
Чтобы запустить проект достаточно написать `go run main.go`, но без файла конфигурации и Redis
|
|
|
|
|
программа долго не проработает. Поэтому сперва копируем `config.dist.yml` в `config.yml` и, при необходимости,
|
|
|
|
|
затачиваем его под себя.
|
|
|
|
|
|
|
|
|
|
Redis можно установить в систему самостоятельно, но гораздо удобнее воспользоваться готовыми сервисами,
|
2017-09-04 22:54:55 +05:30
|
|
|
|
описанными в [docker/docker-compose.dev.yml](docker/docker-compose.dev.yml). Для этого просто копируем
|
|
|
|
|
`docker-compose.dev.yml` и поднимаем сервисы:
|
2017-08-17 05:17:35 +05:30
|
|
|
|
|
|
|
|
|
```sh
|
2017-09-04 22:54:55 +05:30
|
|
|
|
cp docker/docker-compose.dev.yml docker-compose.yml
|
2017-09-03 02:39:11 +05:30
|
|
|
|
docker-compose up -d
|
2017-08-17 05:17:35 +05:30
|
|
|
|
```
|
2017-09-03 02:39:11 +05:30
|
|
|
|
|
|
|
|
|
После этого `go run main.go serve` должен запустить web-сервер без дополнительной модификации файла конфигурации.
|