Lightweight implementation of Minecraft skins system server. It's packaged and distributed as a Docker image.
Go to file
2017-09-03 21:28:17 +03:00
api/accounts Добавлена логика автоматического рефреша API токена при его истечении 2017-08-18 17:48:29 +03:00
bootstrap Добавлена генерация версии при сборке проекта 2017-09-02 21:37:16 +03:00
cmd Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
data Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
db Добавлен вызов runtime.GOMAXPROCS() 2017-08-23 00:01:58 +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 Реорганизация пакета daemon в http. 2017-08-20 01:22:42 +03:00
script Добавлены скрипты для тестирования и подсчёта общего coverage 2017-08-21 18:45:27 +03:00
worker Добавлена интеграция с Sentry 2017-08-27 18:10:03 +03:00
.dockerignore Миграция с glide на dep для управления зависимостями 2017-08-15 00:43:56 +03:00
.gitignore Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
.gitlab-ci.yml Добавлена генерация версии при сборке проекта 2017-09-02 21:37:16 +03:00
config.dist.yml Обновлены docker-compose файлы 2017-09-03 00:09:11 +03:00
docker-compose.dev.yml rabbitmq images заменены на alpine версии 2017-09-03 21:28:17 +03:00
docker-compose.prod.yml rabbitmq images заменены на alpine версии 2017-09-03 21:28:17 +03:00
Dockerfile Обновлёна логика построения production image, используем только scratch, без alpine linux 2017-08-24 14:57:03 +03:00
Gopkg.lock Добавлена интеграция с Sentry 2017-08-27 18:10:03 +03:00
Gopkg.toml Добавлена интеграция с Sentry 2017-08-27 18:10:03 +03:00
main.go Добавлен вызов runtime.GOMAXPROCS() 2017-08-23 00:01:58 +03:00
README.md Обновлены docker-compose файлы 2017-09-03 00:09:11 +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-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-compose.dev.yml. Для этого просто копируем docker-compose.dev.yml и поднимаем сервисы:

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

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