Panel — public source drop (v0.9.0)
Self-hostable game-server control panel: controller + agent + 26 game modules. One-line install (prebuilt release, no Go required): curl -fsSL https://git.pdxtechs.com/dbledeez/panel/raw/branch/main/install.sh | sudo bash Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Panel — build/test/install entrypoints.
|
||||
#
|
||||
# The single source of truth for the build version is
|
||||
# github.com/dbledeez/panel/pkg/version.Version (defaults to "dev"),
|
||||
# injected here via -ldflags -X. Override with: make build VERSION=v1.2.3
|
||||
|
||||
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
|
||||
LDFLAGS = -s -w -X github.com/dbledeez/panel/pkg/version.Version=$(VERSION)
|
||||
GOFLAGS = -trimpath
|
||||
BIN_DIR ?= bin
|
||||
PREFIX ?= /opt/panel
|
||||
|
||||
# Windows-friendly: `make build` on Windows produces .exe automatically
|
||||
# because go respects GOOS; output names stay extension-less here and Go
|
||||
# appends .exe itself only with -o omitted, so be explicit:
|
||||
EXE :=
|
||||
ifeq ($(OS),Windows_NT)
|
||||
EXE := .exe
|
||||
endif
|
||||
|
||||
.PHONY: all build test vet docker version install-local clean
|
||||
|
||||
all: build
|
||||
|
||||
build:
|
||||
go build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/controller$(EXE) ./controller/cmd/controller
|
||||
go build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/agent$(EXE) ./agent/cmd/agent
|
||||
go build $(GOFLAGS) -ldflags "$(LDFLAGS)" -o $(BIN_DIR)/panelctl$(EXE) ./controller/cmd/panelctl
|
||||
|
||||
test:
|
||||
go test ./controller/... ./agent/... ./pkg/...
|
||||
|
||||
vet:
|
||||
go vet ./controller/... ./agent/... ./pkg/...
|
||||
|
||||
# Production container images (see deploy/docker-compose.yml).
|
||||
docker:
|
||||
docker build -f deploy/Dockerfile.controller --build-arg VERSION=$(VERSION) -t panel-controller:$(VERSION) .
|
||||
docker build -f deploy/Dockerfile.agent --build-arg VERSION=$(VERSION) -t panel-agent:$(VERSION) .
|
||||
|
||||
version:
|
||||
@echo $(VERSION)
|
||||
|
||||
# Install binaries + modules + systemd units on the local Linux box.
|
||||
# Root-only step of install.sh; useful for upgrades from a git checkout.
|
||||
install-local: build
|
||||
install -d $(PREFIX)/bin $(PREFIX)/data
|
||||
install -m 0755 $(BIN_DIR)/controller $(BIN_DIR)/agent $(BIN_DIR)/panelctl $(PREFIX)/bin/
|
||||
cp -r modules $(PREFIX)/
|
||||
install -m 0644 deploy/systemd/panel-controller.service deploy/systemd/panel-agent.service /etc/systemd/system/
|
||||
systemctl daemon-reload
|
||||
@echo "installed to $(PREFIX); enable with: systemctl enable --now panel-controller panel-agent"
|
||||
|
||||
clean:
|
||||
rm -rf $(BIN_DIR)
|
||||
Reference in New Issue
Block a user