Skip to content

Building from Source

DiscoPanel manages Minecraft servers as Docker containers, so Docker is required both at build time and runtime.

  • Go 1.24+
  • Node.js 22+
  • Docker (also used to run buf for protobuf code generation)
  • Make
Terminal window
# Clone the repo
git clone https://github.com/nickheyer/discopanel.git
cd discopanel
# Generate protobuf code (Go + TypeScript) via Docker buf
make gen
# Install frontend dependencies and build
cd web/discopanel && npm install && npm run build && cd ../..
# Build the Go binary with embedded frontend
go build -o discopanel cmd/discopanel/main.go

The //go:embed directives bake the frontend build into the binary so it serves the UI without a separate web server.

Terminal window
# Using default config (./config.yaml if it exists, otherwise defaults)
./discopanel
# Or point to a specific config file
./discopanel -config /path/to/config.yaml

All config options can also be set via environment variables with the DISCOPANEL_ prefix. For example, server.port becomes DISCOPANEL_SERVER_PORT. Environment variables take precedence over the config file.

For all available configuration options, see Configuration.