2. Installation
Once your device is running with the operating system, follow these steps to install promiseQube:
Step 1: Connect to Your Device
- Open a terminal on your computer
- SSH into your device:
Replace
ssh username@ip_addressusernameandip_addresswith your device's credentials
Step 2: Run the Installation Script
Download and run the installation script:
curl -sSL https://www.promiseq.com/install.sh -o install.sh
sudo bash install.sh
The script runs interactively: you only choose the capability (Lite or AI), and the hardware is detected automatically.
To choose the Qube type up front instead, pass it as an argument
(sudo bash install.sh <qube-type>):
| Qube type | What it installs |
|---|---|
qube-lite | No on-device AI (Raspberry Pi, NVIDIA Jetson, Qualcomm Dragonwing) |
qube-ai | Hailo-accelerated AI (Raspberry Pi 5 + AI HAT+, reComputer R2000) |
qube-ai-deepstream | NVIDIA DeepStream AI (Jetson Orin, requires JetPack 6.x) |
qube-ai-qcom | Hexagon-NPU AI (Qualcomm Dragonwing boards) |
qube-ai-x86 | CPU-based AI via ONNX Runtime (generic x86_64 machines) |
Note:
- Installations always target the production environment.
- The device type (Raspberry Pi, NVIDIA Jetson, Qualcomm) is automatically detected by the script — the AI type you pass must match the device. Other devices are not supported by the installer.
- If the device already has a promiseQube installation, the script detects it before installing. A failed or half-finished installation is removed (after you confirm) so the install starts clean. A working installation is kept and updated in place — the script asks first if you would rather wipe it and start from scratch, which deletes its recordings, database and cloud pairing.
- The script also checks that the network ports promiseQube needs are free, and tells you which program is holding any port that is not.
- The script also checks that the STUN (UDP 19302/3478) and TURN relay (TCP 5349) servers used for remote live view are reachable, and warns if remote live view won't work from outside your network.
- On NVIDIA Jetson, the NVIDIA container toolkit (shipped with JetPack) must be installed, or the script stops.
- On a Jetson with 16 GB or more RAM,
qube-ai-deepstreamasks whether to install the on-device vLLM for Cuby (default: no — Cuby then uses a cloud LLM).- The installation log is written to
/etc/promiseq/logs/install.log.
This script will take 15-60 minutes to complete, depending on your internet speed and device performance. The process includes:
- Downloading Docker images
- Installing system dependencies
- Configuring services
- Setting up the promiseQube environment
Do not interrupt the process or close the terminal session.
qube-ai reboots the device once — this is expectedOn Hailo devices (qube-ai), the script installs the Hailo driver and then automatically
reboots the device to load it. This is not a failure: after the reboot, the installation
resumes on its own (it can take another 10–30 minutes). You can monitor the resumed
installation with:
tail -f /etc/promiseq/logs/resume_install.log
Step 3: Verify
-
Wait for the installation to report success (for
qube-ai, wait for the automatic reboot and resumed installation to finish). -
Verify the installation by checking if services are running:
sudo docker ps
Accessing promiseQube
Local Web Interface
-
Open a web browser on any device connected to the same network
-
Navigate to:
http://ip_address- Replace
ip_addresswith your device's actual IP address
- Replace
-
Default Login Credentials:
- Username:
admin - Password:
admin
Change Default PasswordImportant: Change the default password immediately after first login for security reasons. The local web interface does not have a password screen yet, so change it through the Qube's API from any computer on the same network:
# 1. Log in and copy the "access_token" from the response
curl -X POST http://ip_address/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin"}'
# 2. Change the password using that token
curl -X POST http://ip_address/api/auth/change-password \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"old_password":"admin","new_password":"<your-new-password>"}' - Username:
Cloud Web Interface
For cloud connectivity and remote management:
- Create an account on promiseQ Cloud.
- In the cloud dashboard, click Add Qube and choose one of:
- Find on your network (recommended — needs at least one Qube already connected to your account): your connected Qubes scan their local network for nearby Qubes. Click Link next to the new Qube and enter its local admin username and password — no need to open its own web interface.
- Set up with a token: give the Qube a name to get a pairing token. Then, in the Qube's local web interface, open Configurations → promiseQ Cloud, paste the token and connect.