ESPHome BuilderFirmware builder for ESP devices ESPHome Device Builder is a tool for creating custom firmware for ESP8266/ESP32 microcontrollers
through simple YAML configuration files and managing them through Home Automation systems like Home Assistant.
TODO: Consider implementing non-privileged mode with specific device permissions for improved security
TODO: Set up udev rules for automatic USB device discovery
References name : esphome-device-builder
services :
esphome-device-builder :
image : esphome/esphome:2026.10@sha256:3a32372dfbd6d3b7c65cf6f5a86b06282cc9b5799a25dcb1fcbca4843fb88b27
container_name : esphome-device-builder
restart : unless-stopped
network_mode : host
environment :
TZ : ${TIMEZONE}
PUID : ${PUID}
PGID : ${PGID}
# Host networking exposes the dashboard outside Traefik. Authentication is
# disabled unless both optional values are set in config/docker/<host>/.env.
ESPHOME_USERNAME : ${ESPHOME_USERNAME:-}
ESPHOME_PASSWORD : ${ESPHOME_PASSWORD:-}
# kics-scan ignore-block
volumes :
- /etc/localtime:/etc/localtime:ro
# Not needed due to 'network_mode: host'
# ports:
# - "6052:6052"
# Required for USB device access
# kics-scan ignore-line
# privileged: true
# For USB device passthrough (uncomment and adjust as needed):
# devices:
# - /dev/ttyUSB0:/dev/ttyUSB0
labels :
traefik.enable : true
traefik.http.routers.esphome-device-builder.rule : Host(`esphome.${MYDOMAIN}`)
traefik.http.routers.esphome-device-builder.middlewares : localaccess@file
traefik.http.services.esphome-device-builder.loadbalancer.server.port : 6052
homepage.group : Automation
homepage.name : ESPHome Builder
homepage.icon : esphome.png
homepage.href : https://esphome.${MYDOMAIN}/
homepage.description : "Firmware builder for ESP devices"