ESPHome remote Build Server - love it

Hi smart people,

I just want to mention that the remote build server integration in ESPHome is an absolute banger. Got an older yellow with a pi 4 compute module, and this thing takes ages to compile.

With remote build server, my local PC does this now. A short CPU peak, fans starts to speed up a bit and 15 seconds later, compiling is ready. Don't know how long it's available, just found the option these days,

Just want to share my happiness.

Cheers.

The add-on for HA is just a docker.
So the stand-alone was there before the add-on.

I.o.w, it has been there forever.

Remote build is there since a month or two with the new ESPHome device builder UX and standalone Mac and Windows app

Erm, whathtah ya mean since a month or so?
I did local builds more then 2 years ago.
And I’m pretty sure it was there way before that.

Didn't seen this before. Cool.

I think that OP is talking about the new ESPHome device builder UX which is available as beta since ESPHome 2026.5.
With this new UX you can compile remotely to another computer: you have HA on a PI with the ESPHome app. It’s taking forever to build a firmware so you install the new ESPhome app on your powerful desktop computer and you setup remote building in the settings. The app on the PI send the YAML to compile on the desktop computer and get the firmware after.

Check here:

  • Remote builder. One Device Builder instance can offload compile/install jobs to another over a peer-paired link (mDNS discovery, SHA-256 fingerprint confirmation, identity rotation, per-peer auto-route).

I haven't seen this new feature, sounds like it'll be handy for some.

But, to be clear, I've been compiling on my laptop for ages now. It never made sense for me to go open the HA UI in a web browser, then go into an add-on ("app") within that, to run a compile, which is then sent to yet another device. Why burden a production machine (HA) with a compile?

I assume I had a typical journey where HAOS was on a Rpi and ESPHome builder add-on was just too slow, so changed to running ESPHome in docker on a faster machine. Along the way you realize it's not very hard to setup in docker and also building from the command line is straight forward.

And then I put all my YAML configs (and docker-compose.yaml, etc.) in Github for version management and to make it easy to check out anywhere and spin up ESPHome builder.

I only have about 20 or so devices. The other day I decided to update a bunch of them and to save time I spun up a few more docker containers to run builds in parallel.

Other than the additional docker spin-up part, is this new remote builder essentially doing what I was doing manually, i.e. farming out work to different ESPHome instances and storing the YAML configs in one place? (Plus it can discover builders using zeroconf.)

It does sound like a much better architecture.

Is there any reason this needs to run as an App in HAOS, or could it be run in its own container?

Oops, didn't click far enough.

I fully agree- they should really "advertise" it a lot more on the blog etc... I only spotted it "by accident" in the settings.

It allows me to run esphome dashboard on my nas, keeping all yaml etc in one easy to backup place withe the dashboard easily available all the time over the network, but run the build seamlessly on my mac-mini, that can compile lightning-fast in comparison.... I tried the same manually by sharing out the esphome folder from the nas, and using that from other devices with a locally installed esphome, buth that was much more of a faff - and frequently had permissions errors etc.

Wait, what? All I need to do is install ESPHome Device Builder on my PC, then use the program on Windows to do my ESPHome installs?

there's options:
-install esphome desktop on windows, do everything from there
-install esphome desktop on windows, the docker or ha addon somewhere else, and pair the windows intall with the docker/ha install and it compiles the builds for you while you use the console from ha/docker install
-...

Having the addon in HA makes it easy to update the ESPHome devices via the HA's update menu or other trigger. It also auto-adopts new devices without manually filling in the key, etc this way. Only downside was compilation speed if running HA on a Pi.

I’m having trouble getting the laptop install of ESPHome to compile devices on the ESPHome instance running under HAOS on my HomeLab. The HomeLab machine is Big Iron and much faster than my laptop. I need the laptop when doing initial flashing with USB.

ESPHome runs fine on my laptop and can flash devices. ESPHome runs fine on my HA instance as well. My configurations are:

  1. Homelab:
    1. Proxmox Ve 9.2
    2. Firewall is OFF
    3. HAOS runs in a dedicated Proxmox VM.
      1. Firewall is OFF.
      2. ESPHome installed as an App
        1. ESPHome setting for "Build Server is “ON”
        2. I can create and compile ESPHome devices successfully.
  2. Laptop:
    1. Windows 11
    2. I can access HA just fine in my browser.
    3. ESPHome settings:
      1. Build Server is “OFF”

On the laptop ESPHome instance, when I click on Send builds → Pair with build server I enter the hostname of the HA instance. Clicking “Continue” give the failure “Couldn’t reach a build server at homeassistant.lan:6055. Check the address and that the receiver’s peer-link port is open.” I’ve tried the numeric IP address as well as all ports from 6052 through 6055. Always the same error.

Any ideas on what to try next?

How I got it working:

On the homelab (receiver of jobs) in esphome settings:

  • build server–>enable remote build. It should say listener active below.
  • open and leave open the “pairing requests” (next tab below)

On the laptop (sender of jobs) in esphome settings:

  • send builds–>under known dashboards you should see the homelab server pop up. Click pair. Choose a sensible name for “this receiver” (eg homelab) and “this dashboard” (eg laptop). Send pair request

On the homelab (receiver of jobs) in esphome settings, pairing requests tab:

  • click review–>accept

On the laptop (sender of jobs) in esphome settings, send build tab:

  • you should see the paired build server
  • you can enable auto route installs to remote build

If you don’t see the other side in step 2, it means something is blocking mdns or mdns isn’t working, or both aren’t in the same vlan or something like that, if you use vlans. For me the autodiscovery uses ports 6055. Rotating the identity on the build server tabs of both sides sometimes seems to help if they don’t see each other.