Lightweight implementation of Minecraft skins system server. It's packaged and distributed as a Docker image.
Go to file
ErickSkrauch f120064fe3
Implemented API endpoint to update skin information
Added tests to jwt package
Reworked redis backend implementation
Skin repository now have methods to remove skins by user id or username
2018-01-23 18:43:37 +03:00
api/accounts Добавлена логика автоматического рефреша API токена при его истечении 2017-08-18 17:48:29 +03:00
auth Implemented API endpoint to update skin information 2018-01-23 18:43:37 +03:00
bootstrap Use accepted PR of github.com/mono83/slf with support of Sentry logger 2018-01-05 00:10:38 +03:00
cmd Implemented API endpoint to update skin information 2018-01-23 18:43:37 +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 Fixes SKINSYSTEM-3 2017-09-11 13:54:11 +03:00
http Implemented API endpoint to update skin information 2018-01-23 18:43:37 +03:00
interfaces Implemented API endpoint to update skin information 2018-01-23 18:43:37 +03:00
logger/receivers/sentry Добавлена интеграция с Sentry 2017-08-27 18:10:03 +03:00
model Модели amqp событий перенесены непосредственно в компонент amqp worker 2017-09-03 21:41:40 +03:00
script Implemented API endpoint to update skin information 2018-01-23 18:43:37 +03:00
worker Removed OldSkinId field 2018-01-04 23:47:05 +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 Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
Gopkg.lock Implemented API endpoint to update skin information 2018-01-23 18:43:37 +03:00
Gopkg.toml Implemented API endpoint to update skin information 2018-01-23 18:43:37 +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-сервер без дополнительной модификации файла конфигурации.