Added tests to jwt package Reworked redis backend implementation Skin repository now have methods to remove skins by user id or username
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
и отредактировать под свои нужды.
Развёртывание
Деплоить проект можно двумя способами:
-
Скомпилировав и запустив бинарный файл, а также обеспечив ему доступ ко всем необходмым сервисам.
-
Используя 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-сервер без дополнительной модификации файла конфигурации.