Skip to main content

Install cloud control

  • Android, standalone iOS, and iOS USB share the same cloud control system — install steps are identical
tip
  • Cloud control 5.5.0+ supports Android, standalone iOS, and USB iOS
Upgrade note
  • Upgrading from older versions to 5.7.0+ requires updating [database.link] in config/config.toml
  • Append ?loc=Local&parseTime=true, e.g. link = "mysql:ecloudgo:ecloudgo@tcp(localhost:3306)/ecloudgo?loc=Local&parseTime=true"
  • Prevents incorrect timestamps when writing data

Install

Requirements

  • Linux (Ubuntu 18.04, CentOS, etc.); Windows also works
  • MySQL 5.7
  • Redis 4
  • Supervisor process manager
  • You can one-click install MySQL and Redis with BT Panel — the guide below uses BT Panel

Install MySQL, Nginx, Redis

    1. Open BT Panel; if prompted, choose MySQL 5.7 and install
image-20211203144143477
    1. Or open App Store and search for Nginx, MySQL, phpMyAdmin
    1. Install Redis from App Store
    1. Install Supervisor from App Store
image-20211203144321514
  • After install, pin them to the home page
image-20211203144420239

Download cloud control

    1. Download the zip starting with ecloud from the group files or cloud drive

Upload cloud control

    1. In BT File Manager, create folder ecloudgo
image-20211203144601138
  1. Upload the zip via BT File Manager
image-20211203144634238
  1. Extract the binary
image-20211203145105395 image-20211203145114564

Create database

MySQL and Redis must be installed first! Orange zeros in the top-left of BT Panel mean install is done
image-20211203145436463
  • Create a database instance with username, password, and database name all ecloudgo
image-20211203145825106
  • Grant database privileges
  • Sign in to phpMyAdmin as root (phpMyAdmin button)
image-20211203151414051
  • Open the Users tab in phpMyAdmin
image-20211203151451822
  • Click Edit privileges in the red box, then Select all
image-20211203151534953
  • Click Go
image-20211203151554359
  • When it looks like below, privileges are granted
image-20211203151718322

Edit database config

  • In File Manager, edit config.toml
image-20211203145911611
  • Set the three options below to ecloudgo
image-20211203150103562

Configure process startup

  • On the home page, open Supervisor
image-20211203150553998
  • Add a process daemon
image-20211203150616509
  • Choose the directory and executable
image-20211203150723547
  • Started successfully
image-20211203150742524
  • Check logs for success
image-20211203150820652 image-20211203150827519

Open firewall ports

  • New cloud control port is 8098

  • In BT Security, allow port 8098

  • If prompted to upgrade Nginx firewall, install it from App Store

image-20211203151152772 image-20211203151226538

Open cloud control

  • Browse to your-ip:8098 — default user admin, password admin123

Licensing

Site license

  • Cloud control is licensed by device count — contact your local reseller or QQ: 2557945562

  • Product serial is under Site config → Site license

APK connect & license

  • With the debug APK, open Enterprise cloud settings, enter remote IP or domain, click Test link
image-20211203153342198
  • When packaging with the IDE, you do not fill the domain in the APK UI
  • You must enter the domain when packaging an enterprise build — see the cloud control domain chapter
  • Device license
  • Device management → Device list → Unauthorized devices → Assign
image-20211203153609841

Optimize & upgrade

Upgrade

Upgrade note
  • Upgrading from older versions to 5.6.0+ requires updating [database.link] in config/config.toml
  • Append ?loc=Local&parseTime=true, e.g. link = "mysql:ecloudgo:ecloudgo@tcp(localhost:3306)/ecloudgo?loc=Local&parseTime=true"
  • Prevents incorrect timestamps when writing data
  • Backup the database and files before upgrading!!!

    1. Upload the standalone ecloudgo binary to the site root
image-20211203152131132
    1. Upload config contents into the site config folder
    1. Edit database settings as in Edit database config above
    1. Update Supervisor to the new binary
image-20211203152321572
  • Click Restart
image-20211203152346117

Server tuning

  • Some servers are not tuned for high traffic

    1. Run ./opt.sh in the console
    1. In Supervisor config, add minfds=65535 (main and child configs), then restart cloud control
image-20211203152851539 image-20211203152918388

Device connection

Android

  • In debug APK: open EC APP → top-left hamburger → Enterprise cloud config
  • Remote IP or domain: your cloud control address
  • Device number: your own ID, matching the cloud control device list
  • Device ID: ignore
  • Tap Test link; on success, kill the app and reopen
tip
  • For production, package an enterprise APK and set the cloud control address in the cloud control packaging options; assign device numbers after install
  • Debug builds: if you get a digital signature error, connect IDEA and run a script or preview UI once
  • More domain options: Packaging settings

Standalone iOS

  • Open the EC standalone app → Settings → Cloud control — enter address and device number matching the backend
  • Tap Test; on success, restart the app to auto-connect

iOS USB

  • Open the EC iOS USB control center → Control center settings
  • Set Cloud control address, save, then restart the control center
tip
  • There is no device-number field in the control center — by default ecid is used. If you set cloud device number to Alias, the alias is used
  • Use digits + English for aliases (no Chinese) to avoid connection issues

HarmonyOS Next USB

  • Open the EC HarmonyOS Next USB control center → Control center settings
  • Set Cloud control address, save, then restart the control center
tip
  • There is no device-number field — by default device serial is used. If you set cloud device number to Alias, the alias is used
  • Use digits + English for aliases (no Chinese) to avoid connection issues

MySQL 8.0

Monitor page fails to load data

## Erroring SQL
device_monitor.go:77: SELECT COUNT(1) FROM `t_device` AS a LEFT JOIN `t_device_group` as b on a.group_id=b.id LEFT JOIN `sys_user` as c on c.id = a.tenant_id LEFT JOIN `t_device_online` as ol on a.device_no=ol.device_no WHERE `a`.`status`='0': Error 1267 (HY000): Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

Cloud control does not dispatch tasks

Tasks may not dispatch when:

1. Device is offline
2. Task is one-shot and already ran
3. Task is looping but the run count is exhausted
4. Script failed to download
5. User list → Cloud settings → single-device expiry is on, but the device number has no correct expiry or is expired
For 2 and 3, clear execution history (Clean in the action buttons)

- If a tenant is assigned, also set device quota and expiry under User list → Cloud settings — missing this can block tenant task dispatch

Monitor list → click device number → black window shows that device’s task logs