Skip to content

Building from Source

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

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

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

For active development with live reload for both backend and frontend:

Terminal window
# Using Bun (Recommended):
bun run dev
# Or using Make:
make dev
# Or Windows (PowerShell):
.\scripts\dev.ps1
# Or Linux/macOS (Bash):
./scripts/dev.sh
  • Frontend (Vite HMR): http://localhost:5174
  • Backend API: http://localhost:8080
Terminal window
# Using default config (./config.yaml if it exists, otherwise defaults)
./carbon-panel
# Or point to a specific config file
./carbon-panel -config /path/to/config.yaml

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

For all available configuration options, see Configuration.