A complete Over-The-Air (OTA) update management system for React Native Android apps. This solution allows you to upload, manage, and distribute APK updates and JavaScript bundles directly to your apps, bypassing Google Play Console restrictions. OTA updates are controlled via Firebase (Storage, Cloud Functions, Remote Config) for seamless distribution.
Watch the system in action: YouTube Demo
See how a React Native app automatically detects, downloads, and installs new APK versions with real-time server logs and web console management.
- APK Management: Upload and manage multiple versions of your React Native Android apps
- Major Updates: Full APK updates that require installation
- Minor Updates: JavaScript bundle updates for code changes
- WiFi Force Updates: Automatically force updates when WiFi is available
- Version Control: Track and manage app versions with release notes
- Web Console: Beautiful web interface for managing uploads and versions
- React Native SDK: Easy-to-integrate SDK for your React Native apps
- Firebase Backend: Optional Firebase integration (Storage + Cloud Functions + Remote Config) for OTA control
console_project/
├── backend/ # Node.js/Express API server
├── frontend/ # React web console
├── react-native-ota-sdk/ # React Native SDK ([npm](https://www.npmjs.com/package/react-native-ota-sdk) | [README](react-native-ota-sdk/README.md))
└── database/ # Database migrations
- Node.js 16+ and npm
- PostgreSQL 12+
- React Native development environment (for SDK integration)
# Create PostgreSQL database
createdb ota_console
# Run migrations
cd database
node migrate.jscd backend
# Install dependencies
npm install
# Copy environment file
cp .env.example .env
# Edit .env with your database credentials
# DATABASE_URL=postgresql://user:password@localhost:5432/ota_console
# JWT_SECRET=your-secret-key
# Start server
npm run devThe backend will run on http://localhost:3001
cd frontend
# Install dependencies
npm install
# Start development server
npm run devThe frontend will run on http://localhost:3000
The SDK is published on npm: react-native-ota-sdk
npm install react-native-ota-sdkSee React Native SDK README for detailed integration instructions.
- Register/Login at
http://localhost:3000 - Upload APK files with version information
- Manage versions and view update statistics
- Download APKs for distribution
The SDK (react-native-ota-sdk) supports both custom API and Firebase backends. Install from npm.
import { OTAUpdater } from 'react-native-ota-sdk';
const updater = new OTAUpdater({
apiUrl: 'http://your-server.com/api',
appId: 'com.example.myapp',
apiKey: 'your-api-key',
forceUpdateOnWifi: true,
autoDownloadOnWifi: true,
onUpdateAvailable: (update) => {
console.log('Update available:', update);
}
});
// Start checking for updates
updater.start();POST /api/auth/register- Register new userPOST /api/auth/login- Login user
POST /api/apks/upload- Upload new APK versionGET /api/apks- List all versionsGET /api/apks/:id- Get version detailsGET /api/apks/:id/download- Download APK fileDELETE /api/apks/:id- Delete version
GET /api/updates/check- Check for available updatesPOST /api/updates/report- Report update status
- Use HTTPS in production
- Change default JWT_SECRET and API_KEY_SECRET
- Implement rate limiting for production
- Validate APK signatures before installation
- Use API keys for app authentication
ISC
Contributions are welcome! Please feel free to submit a Pull Request.