# ESPHome dashboard as a Podman Quadlet, same pattern as homeassistant.container # (this isn't Home Assistant Supervised, so there's no add-on store — a sibling # container is the equivalent). Installed by deploy.sh to /etc/containers/systemd/; # systemd generates esphome.service from it. # # Host networking: the dashboard binds :6052 directly (http://10.42.0.1:6052), # and ESPHome's mDNS-based OTA discovery/flashing of already-provisioned nodes # needs to see the LAN as the host does — a bridged network would need explicit # port/mDNS forwarding for the same result. [Unit] Description=ESPHome dashboard (Podman container) Wants=network-online.target After=network-online.target [Container] Image=ghcr.io/esphome/esphome:stable ContainerName=esphome Network=host Volume=/srv/esphome:/config Environment=TZ=America/Toronto # Initial flash of a new device needs USB serial access; OTA re-flashes of an # already-provisioned node don't. Uncomment and set the real path to flash # over USB (find it with `ls /dev/ttyUSB* /dev/ttyACM*` after plugging the # device in): #Volume=/dev/ttyUSB0:/dev/ttyUSB0 #AddCapability=SYS_ADMIN [Service] Restart=always # First start pulls the image; PlatformIO also downloads toolchains on a # node's first compile — both want a working WAN, not just a fast one. TimeoutStartSec=900 [Install] WantedBy=multi-user.target