To build a Bolt‑based web application, you will need the following:
Install and set up bolt-tools on your system by following the instructions in the repository:
https://github.com/rdkcentral/bolt-tools/tree/main
Bolt Tools provides the utilities required to package and sign your Bolt applications.
The app package configuration defines the entry point, dependencies, permissions, and other metadata required for building the Bolt package.
Example: "--url=https://lightningjs.io/tmdb/#splash"
Example: "com.rdkcentral.wpe-rdk": "0.1.0"
{
"id": "com.rdkcentral.appName",
"version": "0.1.0",
"versionName": "develop",
"name": "tmdb",
"packageType": "application",
"entryPoint": "--url=https://lightningjs.io/tmdb/#splash",
"dependencies": {
"com.rdkcentral.wpe-rdk": "0.1.0"
},
"permissions": [
"urn:rdk:permission:internet",
"urn:rdk:permission:firebolt",
"urn:rdk:permission:thunder",
"urn:rdk:permission:rialto"
],
"configuration": {}
}
Testing on Beta Apps
For testing the beta wpe browser bolt (wpe+0.2.0) , the entry point configurations need to be set a bit differently :
--lightning starts as a LightningApp (HtmlApp is default)--dev starts inspector on port 12345--verbose enables a set of webkit logs & webkit related gstreamer logs"entryPoint": "--dev https://mvt.rdkcentral.com""entryPoint": "--lightning --dev file://usr/share/refui/index.html""entryPoint": "https://www.bunsoft.dev/webgl3d.html"
More Info on Beta App Release can be found here: RDK8 - Beta Apps Release
To package an HTML/Lightning app into a Bolt bundle, you need:
com.rdkcentral.app_name.json).tgz formatFor HTML/Lightning applications, the rootfs layer can be an empty .tgz file, since the app is launched via a browser using a URL.
.tgz file, e.g.:empty.tgz
bolt pack com.rdkcentral.app_name.json empty.tgz
com.rdkcentral.app_name+<version>.bolt
This is the Bolt package to be installed on the platform.Every Bolt app must be digitally signed before installation.
Follow the signing instructions here:
https://wiki.rdkcentral.com/spaces/RDKM/pages/447124247/Bolt+package+-+signing+and+verification
.bolt package to the device, for example:/tmp/com.rdkcentral.app_name+0.1.0.bolt
curl -X POST http://127.0.0.1:9998/jsonrpc -d '{"jsonrpc":2.0,"id":1,"method":"org.rdk.PackageManagerRDKEMS.install","params":{"packageId":"com.rdkcentral.app_name+0.1.0.bolt","version":"0.1.0","fileLocator":"/tmp/com.rdkcentral.app_name+0.1.0.bolt"}}' -H "Content-Type: application/json"
curl -s -X POST http://127.0.0.1:9998/jsonrpc -d '{"jsonrpc": "2.0","id": 1013, "method": "org.rdk.AppManager.1.launchApp", "params":{"appId":"com.rdkcentral.app_name"}}'