POST /servers Content-Type: application/json
{
"type": "vanilla", // или "paper" (в будущем fabric и forge)
"version": "1.20.4"
}
Ответ:
{ "id": "a1b2c3d4e5f6" }
Vanilla: любая стабильная (например, 1.20.4, 1.21, 1.19.4) Paper: только те, что есть в официальном API
GET /servers Ответ:
[
{
"id": "a1b2c3d4e5f6",
"type": "paper",
"version": "1.20.4",
"running": false
}
]
POST /servers/{id}/start Ответ:
{ "status": "started" }
POST /servers/{id}/stop Ответ:
{ "status": "stopped" }
GET servers/{id}/logs Ответ:
Starting net.minecraft.server.Main
[14:40:49] [ServerMain/INFO]: Environment: authHost='https://authserver.mojang.com'...
[14:40:50] [ServerMain/INFO]: Loaded 7 recipes
Особенности: хранит только последних 700 строк
Проект можно запустить как локально на вашей машине (без Docker), так и собрать в Docker-образ.
Убедитесь, что у вас установлен Go 1.22+.
- Клонируйте репозиторий:
git clone -b golang https://github.com/ваш-юзер/mcstack.git
cd mcstack
- Скопируйте пример конфигурации:
cp config.example.json config.json
- Запустите приложение:
go run cmd/mcstack/main.go
Приложение будет доступно по адресу: http://localhost:8080
Сервер автоматически создаст папку
data/
для хранения Java, серверов и логов.
- Соберите образ:
docker build -t mcstack .
- Скопируйте пример конфигурации:
cp config.example.json config.json
- Запустите контейнер:
docker run -d -p 8080:8080 --name mcstack mcstack
Приложение будет доступно по адресу: http://localhost:8080
Обратите внимание: по умолчанию данные (сервера, Java) хранятся внутри контейнера. Чтобы сохранить их между перезапусками, используйте volume:
docker run -d -p 8080:8080 -v ./data:/app/data --name mcstack mcstack