esphome / esphome/feature-requests

Remote compilation

Open
#2,673 4 comments 19 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.