Building from Source
Prerequisites
Section titled “Prerequisites”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
Build steps
Section titled “Build steps”# Clone the repogit clone https://github.com/athNdev/carbon-panel.gitcd carbon-panel
# Generate protobuf code (Go + TypeScript) via Docker bufmake gen
# Install frontend dependencies and buildcd web/carbon-panel && bun install && bun run build && cd ../..
# Build the Go binary with embedded frontendgo build -o carbon-panel cmd/carbon-panel/main.goThe //go:embed directives bake the frontend build into the binary so it serves the UI without a separate web server.
Live Development (Hot Reloading)
Section titled “Live Development (Hot Reloading)”For active development with live reload for both backend and frontend:
# 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
Running
Section titled “Running”# 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.yamlAll 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.