HTTP service that renders a single label image for Homebox Label Maker. It exposes a GET endpoint that accepts query parameters and returns a PNG label image.
- Go 1.25+
- No external state, no auth
go run ./srcThe service listens on :8080 by default.
PORT: HTTP port (default8080)HBOX_LABEL_MAKER_LABEL_SERVICE_TIMEOUT: request timeout in seconds or Go duration (default30s)HBOX_WEB_MAX_UPLOAD_SIZE: max response size in bytes (default10485760)HBOX_LABEL_MAKER_LABEL_SERVICE_URL: set this in Homebox to the service URLLOG_LEVEL: logging verbosity -INFO(default) orDEBUGfor detailed logs
GET /
Headers:
User-Agent: Homebox-LabelMaker/1.0Accept: image/*
Response:
200 OKContent-Type: image/png- Body: PNG binary
Unused parameters are ignored safely.
Width(int): label width in pixelsHeight(int): label height in pixelsDpi(float): rendering DPIMargin(int): outer margin in pixelsComponentPadding(int): padding between components in pixelsQrSize(int): QR code size in pixelsURL(string): URL to encode into the QR codeTitleText(string): primary label textTitleFontSize(float): font size for title textDescriptionText(string): secondary text (also used for domain display)DescriptionFontSize(float): font size for secondary textAdditionalInformation(string): optional ID value (fallback keys:ID,Id)DynamicLength(bool): accepted but ignored
Landscape label with:
- Top-left: bold title
- Under title: secondary URL/domain
- Bottom-left: QR code for
URL - Right side: open-box icon centered vertically
- Bottom-right: ID block ("ID" + value)
curl -o label.png "http://localhost:8080/?Width=320&Height=240&Dpi=203&Margin=8&ComponentPadding=6&QrSize=140&URL=https%3A%2F%2Finv.eggl.one%2Fitem%2F000-029&TitleText=Zahnstange&AdditionalInformation=inv.eggl.one"