Установка
Сервер — один статический бинарник. Выберите способ под свою инфраструктуру: Docker для быстрого старта, systemd для железа или VPS, сборка из исходников для разработки.
Установщик
Проще всего — установщик. Одна команда, дальше он всё спросит и соберёт сам.
curl -fsSL https://raw.githubusercontent.com/MrLeonardosMi/Laminara/main/install.sh | bashЧто он делает:
- определяет архитектуру и скачивает бинарь из релизов GitHub;
- спрашивает по шагам — хранилище (диск или S3), источник аккаунтов (JSON-файл с первым аккаунтом, SQL или HTTP), хранилище сессий, публичный адрес, вход в игре и скины;
- генерирует
config.json, создаёт каталог данных и первый аккаунт (пароль хешируется argon2id); - по выбору ставит systemd-сервис или поднимает Docker-стек с Redis.
Ключи подписи сервер создаёт сам при первом запуске, а библиотеки и Java докачивает при сборках — заводить руками ничего не нужно.
Дальше — способы собрать всё вручную.
Docker
make generate # сгенерировать gen/ из protobuf перед сборкой образаcp deploy/config.example.json deploy/config.jsondocker compose -f deploy/docker-compose.yml up -d --buildCompose поднимает сам сервер и Redis. Постоянные данные — профили сборок, объекты, ключи подписи — лежат в томе laminara-data (/var/lib/laminara внутри контейнера). Разделы для Postgres и S3-хранилища в файле закомментированы; включите их, если они вам нужны.
systemd
Для установки на хост есть готовый unit с Type=notify — сервер сам сообщает systemd о готовности и об остановке.
-
Соберите бинарник
Окно терминала make buildsudo install -m0755 bin/laminara-server /usr/local/bin/laminara-server -
Заведите пользователя и каталоги
Окно терминала sudo useradd --system --home /var/lib/laminara --shell /usr/sbin/nologin laminarasudo install -d -o laminara -g laminara /var/lib/laminara /etc/laminarasudo install -m0640 -o laminara -g laminara deploy/config.example.json /etc/laminara/config.json -
Поставьте unit и запустите
Окно терминала sudo install -m0644 deploy/systemd/laminara-server.service /etc/systemd/system/sudo systemctl enable --now laminara-server
Unit ограничивает права: NoNewPrivileges, ProtectSystem=strict, ProtectHome, запись разрешена только в /var/lib/laminara и /run/laminara.
Из исходников
Нужен только Go — генератор кода тянется через go tool, отдельный protoc не требуется.
make generate # protobuf -> gen/gomake build # go build ./...make test # прогнать тестыmake run # запустить в текущем терминалеУправление запущенным сервером
Тот же бинарник — клиент к своему демону: он подключается к процессу по Unix-сокету.
laminara-server status # состояниеlaminara-server console # интерактивная консоль с живыми логамиlaminara-server logs -f # только логи, потокомlaminara-server stop # остановитьПолный список команд — в справочнике CLI.