Manage unlimited Android apps from one panel.

A complete OTA update platform: upload APKs, publish force/optional/critical updates, deliver secure resumable downloads, and track every device — all from a beautiful, secure admin dashboard.

CSRF · 2FA · Rate-limit 2 GB APK uploads EN · AR · FR
Update Available!
Version 2.4.0 · 42 MB
Skip this version

A full toolkit for OTA delivery

Secure, scalable and built to manage thousands of applications.

App Management

Unlimited apps, each with auto-generated unique Application ID, UUID, Secret Key, API Key & App Token.

APK / AAB Uploads

Chunked drag-and-drop up to 2 GB, magic-byte validation, SHA-256/512 & MD5 hashing, resume support.

Smart Updates

Optional, force, critical, beta & stable releases with priorities, rollback and custom popups.

Secure Downloads

HMAC-signed expiring links, resumable streaming, bandwidth & speed tracking, download counters.

Live Analytics

Installed & online devices, daily/weekly/monthly downloads, countries, Android versions & adoption.

Roles & Security

Super Admin / Admin / Moderator / Read-Only, 2FA, brute-force protection, activity & API logs.

One secure endpoint

Your Android app sends its Application ID, Secret Key and current Version Code — the API returns everything needed to prompt or force an update.

  • has_update & force/critical flags
  • Signed, expiring download URL
  • SHA-256 / MD5 integrity hashes
  • Custom popup title, text & buttons
# Check for an update
curl "https://your-domain/api/index.php?action=check_update" \
  -G --data-urlencode "application_id=APP-a1b2c3d4e5f6" \
     --data-urlencode "secret_key=sk_..." \
     --data-urlencode "version_code=42"
val url = "$BASE/api/index.php?action=check_update" +
  "&application_id=$APP_ID&secret_key=$SECRET&version_code=$vCode"
val json = URL(url).readText()   // or OkHttp / Retrofit
val res = JSONObject(json)
if (res.getBoolean("has_update")) {
    if (res.getBoolean("force_update")) showForceDialog(res)
    else showUpdateDialog(res)
}
{
  "status": "ok",
  "has_update": true,
  "latest_version": "2.4.0",
  "force_update": false,
  "critical_update": false,
  "update_type": "optional",
  "minimum_version_code": 30,
  "apk_url": "https://…/download.php?apk=7&…&sig=…",
  "sha256": "a3f5…",
  "title": "A new version is available!",
  "button_text": "Update Now",
  "skip_button": 1
}

Test against your own installation (works once installed & an app exists):

// response will appear here
Applications
2GB
Max upload
5
Update types
3
Languages

Upload & you're live

  1. Upload the project
    to CyberPanel, Apache, Nginx, XAMPP or Ubuntu.
  2. Open install.php
    The installer creates the DB, tables, config, keys & folders.
  3. Login
    Default admin / admin123 — change it immediately.
  4. Add your first app
    Get its unique keys and wire the API into your APK.
Project structure
ota-platform/
├── install.php        # auto installer
├── config.php         # generated config
├── index.html         # this landing page
├── download.php       # secure downloads
├── api/index.php      # REST API
├── admin/             # dashboard & modules
├── includes/          # core & layout
├── uploads/           # apk / icons / screenshots
├── cache/ logs/ backup/ database/
└── assets/            # css & js

Ready to ship your updates?

Spin up your OTA platform now — secure, scalable and framework-free.

Open Dashboard