panel v0.9.2 — public release
Self-hostable game server control panel: Go controller + agent, 26 game modules, embedded web UI. One-line install via install.sh / install.ps1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# Panel controller — production image.
|
||||
# Build from the repo root: docker build -f deploy/Dockerfile.controller .
|
||||
# (the Makefile "docker" target does exactly this, injecting VERSION)
|
||||
|
||||
FROM golang:1.26 AS build
|
||||
ARG VERSION=dev
|
||||
WORKDIR /src
|
||||
# The repo is a Go workspace (go.work) spanning controller/agent/pkg/proto —
|
||||
# copy the whole tree so workspace resolution works.
|
||||
COPY . .
|
||||
ENV CGO_ENABLED=0
|
||||
RUN go build -trimpath \
|
||||
-ldflags "-s -w -X github.com/dbledeez/panel/pkg/version.Version=${VERSION}" \
|
||||
-o /out/controller ./controller/cmd/controller \
|
||||
&& go build -trimpath \
|
||||
-ldflags "-s -w -X github.com/dbledeez/panel/pkg/version.Version=${VERSION}" \
|
||||
-o /out/panelctl ./controller/cmd/panelctl
|
||||
|
||||
FROM gcr.io/distroless/static-debian12:nonroot
|
||||
WORKDIR /opt/panel
|
||||
COPY --from=build /out/controller /opt/panel/bin/controller
|
||||
COPY --from=build /out/panelctl /opt/panel/bin/panelctl
|
||||
# Module manifests: the controller's port allocator reads ./modules.
|
||||
COPY --from=build /src/modules /opt/panel/modules
|
||||
# CA, admin-token, cluster stores — persist this volume.
|
||||
VOLUME ["/opt/panel/data"]
|
||||
EXPOSE 8080 8443
|
||||
ENTRYPOINT ["/opt/panel/bin/controller"]
|
||||
CMD ["-http", ":8080", "-grpc", ":8443", "-ca-dir", "./data/ca"]
|
||||
Reference in New Issue
Block a user