← 全部工具

eoas

热度 65 更新于 开发与构建

A CLI tool to manage publishing and OTA updates for expo-open-OTA self-hosted server. This is not an official tool from Expo but an open-source project (https://github.com/mercuretechnologies/expo-open-ota)

npmauto-collected

安装

npm
npm install -g eoas

通过 npm 安装。

<p align="center" <img src=".github/img/cover.svg" alt="Expo Open OTA" / </p

<h3 align="center"Self-hosted over-the-air updates for Expo apps, built for production at scale.</h3

<p align="center" An open-source Go server implementing the <a href="https://docs.expo.dev/technical-specs/expo-updates-1/"Expo Updates protocol</a,<br/ with a web dashboard, multi-app support, progressive rollouts, instant rollbacks and one-command publishing. </p

<p align="center" <a href="https://github.com/mercuretechnologies/expo-open-ota/releases"<img src="https://img.shields.io/github/v/release/mercuretechnologies/expo-open-ota?label=release" alt="Latest release" /</a <a href="https://www.npmjs.com/package/eoas"<img src="https://img.shields.io/npm/v/eoas?label=eoas%20CLI" alt="eoas on npm" /</a <a href="https://github.com/mercuretechnologies/expo-open-ota/actions"<img src="https://img.shields.io/github/actions/workflow/status/mercuretechnologies/expo-open-ota/push.yml?label=CI" alt="CI status" /</a <a href="./LICENSE.md"<img src="https://img.shields.io/badge/license-MIT%20%2B%20Enterprise-blue" alt="License" /</a </p

<p align="center" <a href="https://mercure-technologies.gitbook.io/expo-open-ota"Documentation</a · <a href="#quick-start"Quick start</a · <a href="https://github.com/mercuretechnologies/expo-open-ota/issues"Issues</a · <a href="mailto:contact@mercuretechnologies.com"Contact</a </p

<p align="center" <a href="https://cursor.com/en/install-mcp?name=expo-open-ota-docs&config=eyJ1cmwiOiJodHRwczovL21lcmN1cmUtdGVjaG5vbG9naWVzLmdpdGJvb2suaW8vZXhwby1vcGVuLW90YS9%2BZ2l0Ym9vay9tY3AifQ%3D%3D"<img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Install the docs MCP server in Cursor" height="28" /</a <a href="https://insiders.vscode.dev/redirect/mcp/install?name=expo-open-ota-docs&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmercure-technologies.gitbook.io%2Fexpo-open-ota%2F~gitbook%2Fmcp%22%7D"<img src="https://img.shields.io/badge/VSCode-InstalldocsMCP-0098FF?logo=githubcopilot&logoColor=white" alt="Install the docs MCP server in VS Code" height="28" /</a </p <p align="center" <subThe documentation is exposed as an <a href="#ask-the-docs-from-your-ai-assistant"MCP server</a: plug it into Cursor, VS Code, Claude Code or any MCP client.</sub </p

<p align="center" <subExpo Open OTA is an independent open-source project. It is not affiliated with, endorsed or supported by <a href="https://expo.dev/"Expo</a.</sub </p

<p align="center" <img src=".github/img/dashboard-rollout.jpg" alt="The Expo Open OTA dashboard showing a production branch with a progressive rollout in progress at 25%" / </p

Battle-tested in production. Expo Open OTA has been serving over-the-air updates in production since early 2025, to apps totaling more than a million monthly active users.

Why self-host your OTA updates?

Cut costs. EAS Update pricing scales with your monthly active users. Self-hosting serves unlimited updates to unlimited devices for the price of your infrastructure.

Own your infrastructure. Updates live in your bucket, are served by your server and travel through your CDN, behind your security policies.

No vendor lock-in. The standard Expo Updates protocol on top of standard storage. Switch clouds anytime.

Built for production and scale

Your CDN does the heavy lifting. Devices download updates from your CDN, straight out of your bucket. The server only answers lightweight update checks, so millions of devices checking in never turn into millions of downloads hitting it.

It scales horizontally. The update server is stateless: run as many replicas as your traffic needs, they stay consistent with each other out of the box.

It plugs into your monitoring. Metrics, dashboards and health checks come built in, ready for whatever observability stack you already run.

Features