I use my computer as a server to distribute the firmware (fixed ip, something like 192.168.0.10/firmware.bin )
esps are ready to receive an udp command and that starts the update process (check ESP8266httpUpdate.h)
I have to export using the right flash size configuration (1mb in my case) and the firmware should be less than half the available size
so with some scripts I export the binary, update the server and send the udp packet.
the old ESPs update in 25 seconds, and the newer took about 1 minute to update and reboot.