esphome / esphome/feature-requests
Remote compilation
- Dominant language
- No language data
- Stars
- 450
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the problem you have/What new integration you would like**
Compilation in servers with limited resources such as Raspberry Pi is slow. Compilation would be many times faster if I could _borrow_ resources from my main computer. This would ideally work in a way that Esphome web dashboard could be optionally used only as a frontend for the actual compilation that would happen in a remote server.
Basically, I would start up the compilation server with docker on my laptop. It would have an endpoint open for esphome on Raspberry Pi to connect. Once remote compilation is configured for Esphome dashboard, I would just click remote compilation and it would send the device configuration for the remote compilation server to be compiled. It would then return the firmware to the Raspberry. Or upload it directly to the esphome device assuming it has access to the same secrets and network.
**Please describe your use case for this integration and alternatives you've tried:**
Alternatively, I could compile firmwares manually on my laptop. However, I would like my configuations still to stay in the esphome-container in Raspberry so having firmwares compiled in another device based on those configurations is a bit cumbersome to achieve.
**Additional context**
This is obviously just an initial idea and there would be open questions such as whether the uploading of the firmware should happen in client or on that remote compilation server. And how would the compilations logs would get transferred between servers, how to authenticate, how to deal with Esphome version mismatches between remote and client etc.
Contributor guide
No contributing guide indexed for this repository
Research direction
No files or tests are named. Start by tracing the ESPHome dashboard compilation flow and the Docker-based remote server boundary described here; resolve authentication, version mismatches, log transfer, and whether the client or server uploads firmware. Done requires an agreed, implementable client/server design with these responsibilities specified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, raspberry-pi
- Domain
- build-system, distributed-systems, embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100