Skip to content
JelinaJelina DocumentationTechnical documentation
Back to website

Deploy your first application

Application deployment in JelinaOS centers on a Release: define the applications in a release, deploy it to a device, and the device agent installs and runs them automatically. This page guides you through your first deployment.

Method 1: Deploy a containerized application

Section titled “Method 1: Deploy a containerized application”

Build your application as a container image and push it to a registry from your development environment:

Terminal window
docker build -t registry.example.com/demo-app:1.0.0 .
docker push registry.example.com/demo-app:1.0.0

Create a release in JelinaCloud and add the containerized application, including its image, restart policy, ports, and environment variables. For detailed instructions, see create a Release in JelinaCloud.

Deploy the release to the target fleet or device. The device agent automatically pulls the image and runs the application. Verify on the device:

Terminal window
docker ps # Application container is running

Package your program (scripts, binaries, and dependencies) and make it available at a download URL accessible to the device, such as an internal file server.

Create a release in JelinaCloud, add a non-containerized program (ProgramSet), and specify the download URL of the program package:

programs:
demo-app:
uri: http://files.example.com/demo-app/run.sh # Program package download URL
command: run.sh
running: true
restart: always
environment:
MODE: production

For detailed release creation instructions, including native application package uploads, see create a Release in JelinaCloud.

After the release is deployed, the device agent registers the program as a system service and starts it:

Terminal window
systemctl list-units 'jelinvisored_*' # Program service is running
Check Command
Containerized application status docker ps
Native program services systemctl list-units 'jelinvisored_*'
Overall device status jelina-info
Application logs docker logs <container-name> / journalctl -u <service-name>
  • Update: Publish and deploy a new version in the cloud; the device upgrades automatically.
  • Rollback: Select the previous release version again to restore it on the device.
  • A/B partitions and the release mechanism make updates safe and controllable.