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:
2026-07-14 21:17:39 -07:00
commit a00bd620a1
2160 changed files with 300574 additions and 0 deletions
+55
View File
@@ -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)