docs/remote-runners.md
Earthly supports running builds remotely via remote runners. Remote runners allow you to benefit from sharing the cache with other users of that remote runner. This is especially useful in CI environments where you want to share the cache between runs.
Typical use cases for remote runners include:
When using remote runners, even though the build executes remotely, the following pieces of functionality are still available:
LOCALLY execute on your local machineTo get started with free remote runners managed by Earthly, check out Earthly Satellites.
To get started with self-hosted runners, see the Self-Hosted Satellites Guide.
If your use case cannot tolerate a cloud-based control plane, then self-hosting a remote BuildKit is the best approach. Remote BuildKit has less features, is less secure, and is more difficult to deploy than Self-Hosted Satellites (see diagram below for comparison). To get started self-hosting BuildKit, see the remote BuildKit page.
Below is a comparison of the different features available with each kind of remote runner.
| Feature | Cloud Satellites | Self-Hosted Satellites | Remote BuildKit |
|---|---|---|---|
| Managed By | Earthly | You | You |
| Cache Persistence | ✅ Yes | 🟡 Needs configuration | 🟡 Needs configuration |
| Cloud Control-Plane | ✅ Yes | ✅ Yes | ❌ No |
| Managed TLS Certificates | ✅ Yes | ✅ Yes | ❌ No |
| Auto-Sleep | ✅ Yes | ❌ No | ❌ No |
| Auto-Updates | ✅ Yes | ❌ No | ❌ No |
| GitHub Actions integration | ✅ Yes | ✅ Yes | ❌ No |