Lightweight implementation of Minecraft skins system server. It's packaged and distributed as a Docker image.
Go to file
2017-09-11 14:16:25 +03:00
api/accounts Добавлена логика автоматического рефреша API токена при его истечении 2017-08-18 17:48:29 +03:00
bootstrap Логгер в консоль теперь не добавляет метку в конец строки, а также выводит время в более коротком формате 2017-09-03 22:54:46 +03:00
cmd Добавлена команда version для отображения версии 2017-09-11 14:16:25 +03:00
data Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
db Добавлен вызов runtime.GOMAXPROCS() 2017-08-23 00:01:58 +03:00
docker Fixes SKINSYSTEM-3 2017-09-11 13:54:11 +03:00
http Оттестирован функционал пакета worker 2017-08-21 15:37:15 +03:00
interfaces Оттестирован функционал пакета worker 2017-08-21 15:37:15 +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 Добавлены скрипты для тестирования и подсчёта общего coverage 2017-08-21 18:45:27 +03:00
worker Реализовано автоматическое восстановление соединения с AMQP 2017-09-03 22:45:38 +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 Компилируем на golang:1.9-alpine image 2017-09-04 23:56:10 +03:00
config.dist.yml Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
Gopkg.lock Реализовано автоматическое восстановление соединения с AMQP 2017-09-03 22:45:38 +03:00
Gopkg.toml Реализовано автоматическое восстановление соединения с AMQP 2017-09-03 22:45:38 +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-сервер без дополнительной модификации файла конфигурации.