Important
The next major version of Expo Open OTA is in release candidate. Key features:
- Control plane mode — run the server on PostgreSQL, manage everything from the dashboard, no Expo account required
- Multi-app support — host several Expo apps on a single server
- Per-app API keys — publish from CI without sharing your Expo access token
- Secure key management — signing keys sealed in the database with AES-GCM
- Per-app Prometheus metrics and a redesigned dashboard
📖 Check out the new documentation, including the v2 → v3 migration guide — your installed clients will keep working without a rebuild.
v2 remains the current stable release (docker pull ghcr.io/axelmarciano/expo-open-ota:latest, npm i eoas). Contributions: please target the release/v3 branch.
An open-source Go server implementing the Expo Updates protocol.
Deploy on AWS, GCP, or locally.
Documentation · Issues · Contact
- Cut costs — Expo's OTA pricing scales with MAUs. Self-hosting gives you unlimited updates at infrastructure cost only.
- Own your infrastructure — Store updates on your cloud, behind your VPN, with your security policies.
- No vendor lock-in — Works with AWS, GCP, and any S3-compatible provider. Switch anytime.
| Feature | Description |
|---|---|
| Multi-cloud storage | AWS S3, Google Cloud Storage, S3-compatible (Cloudflare R2, MinIO, DigitalOcean Spaces), local file system |
| Fast asset delivery | CloudFront CDN, GCS signed URLs, or direct serving — your choice |
| One-command publishing | npx eoas publish from your CI/CD pipeline |
| Secure key management | AWS Secrets Manager, environment variables, or local key files |
| Dashboard | Built-in web UI for monitoring updates, branches, and runtime versions |
| Prometheus metrics | Production observability out of the box |
| No database required | Zero external dependencies beyond your storage provider |
| Helm chart | Ready for Kubernetes deployments |
And follow the Quick Start guide to get up and running in minutes.
| Provider | Mode | Asset Delivery |
|---|---|---|
| Amazon S3 | STORAGE_MODE=s3 |
Direct or CloudFront CDN |
| Google Cloud Storage | STORAGE_MODE=gcs |
GCS signed URLs |
| S3-compatible (R2, MinIO, etc.) | STORAGE_MODE=s3 + AWS_BASE_ENDPOINT |
Direct |
| Local file system | STORAGE_MODE=local |
Direct (dev only) |
Expo Open OTA is not officially supported or affiliated with Expo. This is an independent open-source project.
Core is MIT and will stay MIT; advanced org features may be offered under a commercial license in the future see LICENSE.

