Skip to content

Application Overview

Application Definition

In abcdesktop.io, an application is an OCI-compliant container image. abcdesktop.io uses the OCI Image Specification to describe and manage application images. The docker inspect command exports the full OCI JSON metadata for a given image:

  docker inspect $YOUR_IMAGE_NAME > file.json

abcdesktop.io-compatible images must include a set of well-defined OCI labels. These labels are read by the pyos control plane to register, classify, and launch the application. Example labels:

LABEL oc.icon="firefox.svg"
LABEL oc.keyword="firefox,mozilla,internet"
LABEL oc.cat="office"
LABEL oc.launch="Navigator.Firefox"
LABEL oc.name="Firefox"
LABEL oc.path="/usr/bin/firefox"
LABEL oc.type=app

Installing Applications

Multiple installation methods are supported to accommodate different deployment workflows:

  • Use the default installation script: bash script
  • Use the Admin Web UI console: Admin Console
  • Submit a REST API request using curl to POST the OCI JSON metadata to the API service

Replace ABCDESKTOP_URL, ABCDESKTOP_PORT, and file.json with values appropriate for your deployment.

ABCDESKTOP_URL=localhost
ABCDESKTOP_PORT=30443
URL="http://$ABCDESKTOP_URL:$ABCDESKTOP_PORT/API/manager/image"
curl -X POST -H 'Content-Type: text/javascript' "$URL" -d "@file.json"

Default Application Repository

abcdesktop.io provides a curated set of default application images. These images are published in the abcdesktop images repository, along with the corresponding json metadata files and Dockerfile build definitions.

All default images support the Remote Browser Isolation (RBI) and Remote Application Isolation (RAI) model: each application runs as a dedicated, isolated container, and only the rendered graphical output is streamed to the client.

Example: Firefox Application JSON Descriptor

The following is an example of a firefox.d.4.4.json OCI image descriptor file, as generated by docker inspect:

[
    {
        "Id": "sha256:09895c74c9e5252f3eef74db878cbd6399cd1f26314d46e3f5aa589022e3d26e",
        "RepoTags": [
            "ghcr.io/abcdesktopio/firefox.d:4.4"
        ],
        "RepoDigests": [
            "ghcr.io/abcdesktopio/firefox.d@sha256:d4cce0dbe65f7cbf6fb70528d1df54f2e2ae40df373ac1fa2ef7e8a0d96d8b99"
        ],
        "Parent": "",
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2026-02-28T11:36:41.181120224Z",
        "DockerVersion": "",
        "Author": "",
        "Config": {
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "DEBCONF_FRONTEND=noninteractive",
                "TERM=linux",
                "NODE_MAJOR=24",
                "LANG=en_US.utf8",
                "ARGS=--no-remote",
                "APPNAME=Firefox",
                "APPBIN=/usr/bin/firefox",
                "APP=/usr/bin/firefox"
            ],
            "Labels": {
                "oc.acl": "{\"permit\":[\"all\"]}",
                "oc.args": "--no-remote",
                "oc.cat": "office",
                "oc.desktopfile": "firefox.desktop",
                "oc.displayname": "Firefox (ubuntu)",
                "oc.fileextensions": "htm;html;xml;gif",
                "oc.icon": "circle_firefox.svg",
                "oc.keyword": "firefox,firefox,mozilla,web,internet",
                "oc.launch": "Navigator.firefox",
                "oc.legacyfileextensions": "htm;html;xml",
                "oc.mimetype": "text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;video/webm;application/x-xpinstall;",
                "oc.name": "Firefox",
                "oc.path": "/usr/bin/firefox",
                "oc.rules": "{\"homedir\":{\"default\":true}}",
                "oc.secrets_requirement": "[\"ntlm\",\"kerberos\"]",
                "oc.showinview": "dock",
                "oc.type": "app"
            }
        },
        "Architecture": "amd64",
        "Os": "linux"
    }
]