Lightweight implementation of Minecraft skins system server. It's packaged and distributed as a Docker image.
Go to file
2018-01-24 00:26:50 +03:00
auth Implemented API endpoint to update skin information 2018-01-23 18:43:37 +03:00
bootstrap Removed amqp worker command implementation 2018-01-23 23:49:50 +03:00
cmd Removed amqp worker command implementation 2018-01-23 23:49:50 +03:00
data Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
db Implemented API endpoint to update skin information 2018-01-23 18:43:37 +03:00
docker Removed mentions of the AMQP worker and Accounts Ely.by internal API inside configs 2018-01-24 00:26:50 +03:00
http Added statsd metrics logging for newly created API 2018-01-24 00:14:31 +03:00
interfaces Removed amqp worker command implementation 2018-01-23 23:49:50 +03:00
model Модели amqp событий перенесены непосредственно в компонент amqp worker 2017-09-03 21:41:40 +03:00
script Removed amqp worker command implementation 2018-01-23 23:49:50 +03:00
.dockerignore Миграция с glide на dep для управления зависимостями 2017-08-15 00:43:56 +03:00
.gitignore Все Docker штуки опущены в директорию docker. 2017-09-04 20:24:55 +03:00
.gitlab-ci.yml Обновлён .gitlab-ci: переименованы ENV перменные в соответствии с 9 версией GitLab 2017-09-11 14:17:28 +03:00
config.dist.yml Removed mentions of the AMQP worker and Accounts Ely.by internal API inside configs 2018-01-24 00:26:50 +03:00
Gopkg.lock Removed amqp worker command implementation 2018-01-23 23:49:50 +03:00
Gopkg.toml Removed amqp worker command implementation 2018-01-23 23:49:50 +03:00
main.go Добавлен вызов runtime.GOMAXPROCS() 2017-08-23 00:01:58 +03:00
README.md Все Docker штуки опущены в директорию docker. 2017-09-04 20:24:55 +03:00

Ely.by Minecraft Skinsystem

Реализация API системы скинов для Minecraft v4.

Config

Конфигурация может задаваться посредством любого из перечисленных форматов файлов: JSON, TOML, YAML, HCL и Java properties. Кроме того, параметры конфигурации могут перезаписываться доступными при запуске программы ENV переменными.

Заметка: ENV переменные именуются как KEY.SUBKEY.SUBSUBKEY, т.е. все символы должны быть заглавными, а точки должны отделять уровень вложенности.

Пример файла конфигурации находится в config.dist.yml. Внутри dist-файла есть комментарии, поясняющие назначение тех или иных параметров. Для работы его следует скопировать в локальный config.yml и отредактировать под свои нужды.

Развёртывание

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

  1. Скомпилировав и запустив бинарный файл, а также обеспечив ему доступ ко всем необходмым сервисам.

  2. Используя Docker и docker-compose.

Первый случай не буду описывать, т.к. долго, мучительно и никто так делать не будет, я гарантирую это, поэтому перейдём сразу ко второму.

Прежде всего необходимо установить Docker и docker-compose.

Для запуска последней версии проекта достаточно скопировать содержимое файла docker/docker-compose.prod.yml в файл docker-compose.yml непосредственно на месте установки, после чего ввести в консоль команду:

docker-compose up -d

Web-приложение, amqp worker и все сопутствующие сервисы будут автоматически запущены. Данные из контейнеров будут синхронизироваться в папку data.

Разработка

Перво-наперво необходимо установить последнюю версию Go и сконфигурировать переменную окружения GOPATH, а также установить инструмент контроля версий dep.

Затем можно склонировать репозиторий хитрым способом, чтобы удовлетворить все прекрасные особенности Go:

# Сперва создадим подпапку для приватных 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

Чтобы запустить проект достаточно написать go run main.go, но без файла конфигурации и Redis программа долго не проработает. Поэтому сперва копируем config.dist.yml в config.yml и, при необходимости, затачиваем его под себя.

Redis можно установить в систему самостоятельно, но гораздо удобнее воспользоваться готовыми сервисами, описанными в docker/docker-compose.dev.yml. Для этого просто копируем docker-compose.dev.yml и поднимаем сервисы:

cp docker/docker-compose.dev.yml docker-compose.yml
docker-compose up -d

После этого go run main.go serve должен запустить web-сервер без дополнительной модификации файла конфигурации.