Skip to content

App Management

The doover app command group manages the full lifecycle of Doover applications — from scaffolding a new project to building containers and publishing to the platform.

Creating an Application

doover app create

This launches an interactive wizard that:

  1. Prompts for a name and description
  2. Fetches the application template from GitHub
  3. Creates the project directory with the correct structure
  4. Initialises a git repository
  5. Updates doover_config.json with the application metadata

Options

OptionDefaultDescription
--name(interactive)Application name
--description(interactive)Application description
--git / --no-git--gitInitialise a git repository
--container-registryGitHub InternalContainer registry to use
--owner-org-key""Owner organisation key
--container-profile-key""Container registry profile key

Listing Applications

doover app list

Lists applications with optional filtering:

# Search by name
doover app list --search "pump"

# Filter by type
doover app list --type docker

# Filter by organisation
doover app list --organisation "my-org"

# Paginate results
doover app list --page 2 --per-page 10

Filtering Options

The list command supports field-specific filters with comparison operators:

FilterExampleDescription
--name--name pump-ctrlExact name match
--name-contains--name-contains pumpCase-sensitive substring
--name-icontains--name-icontains PUMPCase-insensitive substring
--search--search "water pump"Full-text search
--archived--archived trueFilter by archive status
--ordering--ordering "-created_at"Sort (prefix - for descending)

Getting Application Details

doover app get my-application

The argument can be an application ID or an exact name match.

Building Applications

Build Container Image

doover app build

Builds the Docker container for the application in the current directory. Uses docker buildx by default for multi-platform builds.

OptionDefaultDescription
--buildx / --no-buildx--buildxUse Docker Buildx

Extra arguments are passed through to the underlying docker build command.

Build Widget

doover app build-widget

Builds the application's UI widget. Runs the build command specified in doover_config.json, or falls back to npm run build.

Run Locally

doover app run

Runs the application locally using Docker Compose. Extra arguments are passed through to docker compose.

# Run on a remote Docker host
doover app run 192.168.1.100 --port 2375

Publishing

doover app publish

Publishes the application to the Doover platform. This is the primary deployment command and performs several steps:

  1. Exports the config schema
  2. Exports the UI schema
  3. Builds the UI widget
  4. Uploads the widget
  5. Updates the application record on the platform

Options

OptionDefaultDescription
--build-containerfalseAlso build and push the container image
--stagingauto-detectedForce staging mode
--export-config / --no-export-configtrueExport config schema
--export-ui / --no-export-uitrueExport UI schema
--build-widget / --no-build-widgettrueBuild the UI widget
--put-widget / --no-put-widgettrueUpload the widget
--buildx / --no-buildxtrueUse Docker Buildx
--app-nameauto-detectedApplication name in config
--profiledefaultAuthentication profile

Full Publish with Container

doover app publish --build-container

This builds and pushes the Docker image in addition to the standard publish steps.

Uploading Widgets

doover app put-widget

Uploads a pre-built widget file to the platform. This is done automatically during publish, but can be run independently.

OptionDescription
--widget-fpPath to the widget file (auto-detected if not provided)
--app-nameApplication name in doover_config.json
--stagingForce staging mode

Testing and Linting

Run Tests

doover app test

Runs pytest for the application. Extra arguments are passed through to pytest.

Lint

doover app lint
doover app lint --fix

Runs ruff linter. Use --fix to auto-fix issues.

Format

doover app format
doover app format --fix

Runs ruff formatter.

Archiving

# Archive an application
doover app archive my-application

# Unarchive
doover app unarchive my-application

Channel Viewer

doover app channels

Opens the Doover channel viewer in your browser, connected to the local Device Agent. Useful for inspecting channel data during local development.

ArgumentDefaultDescription
HOSTlocalhostHost address of the local Device Agent
PORT49100Port of the local Device Agent

App Installations

Application installations can be managed through three paths:

  • doover app-install — top-level commands (not scoped to an app or device)
  • doover app installs — scoped to a specific application
  • doover device app-installs — scoped to a specific device

The doover app installs subcommands mirror the device-scoped commands but take an application ID as the first argument:

# List installations for an application
doover app installs list my-app

# Create an installation scoped to an application
doover app installs create my-app

# Deploy an installation
doover app installs deploy my-app my-install

# List deployments for an installation
doover app installs deployments my-app my-install

Available subcommands: list, get, create, update, archive, unarchive, delete, deploy, sync-config-profiles, deployments, deployment.

See Device Management for device-scoped installation commands.

Related Pages