panel — open-source game server manager (public release)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 19:19:43 -07:00
commit 5232609719
2160 changed files with 300415 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# Panel agent — production image.
# Build from the repo root: docker build -f deploy/Dockerfile.agent .
#
# ┌─────────────────────────────── SECURITY ───────────────────────────────┐
# │ The agent container mounts the HOST Docker socket (/var/run/docker.sock)│
# │ to create/manage game-server containers. Access to the docker socket │
# │ is equivalent to root on the host. Only run this on a machine you │
# │ fully control, and never expose the socket beyond this container. │
# └─────────────────────────────────────────────────────────────────────────┘
FROM golang:1.26 AS build
ARG VERSION=dev
WORKDIR /src
COPY . .
ENV CGO_ENABLED=0
RUN go build -trimpath \
-ldflags "-s -w -X github.com/dbledeez/panel/pkg/version.Version=${VERSION}" \
-o /out/agent ./agent/cmd/agent
# Not distroless: game-module install hooks may shell out (tar, unzip).
FROM debian:12-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates tar unzip xz-utils \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /opt/panel
COPY --from=build /out/agent /opt/panel/bin/agent
COPY --from=build /src/modules /opt/panel/modules
# Instance data, sidecar metadata, backups, pairing certs — persist this.
VOLUME ["/opt/panel/data"]
ENTRYPOINT ["/opt/panel/bin/agent"]
CMD ["--controller", "controller:8443", \
"--modules-dir", "./modules", \
"--data-root", "./data/instances", \
"--meta-dir", "./data/instance-meta", \
"--backup-dir", "./data/backups", \
"--cert-dir", "./data/certs"]