Skip to main content
Version: development

Application Commands

Manage container applications in a PVR checkout.


pvr app add

Add a new container application from a Docker image, root filesystem, or PVR repository.

# From Docker Hub
pvr app add nginx --from=nginx:alpine
pvr app add nginx --from=nginx --source=remote,local --platform=linux/arm64

# From a rootfs tarball or directory
pvr app add my-app --from=~/rootfs.tar -t rootfs
pvr app add my-app --from=~/rootfs-dir -t rootfs

# From a PVR repository
pvr app add tailscale -t pvr --from https://pvr.pantahub.com/user/marketplace#tailscale

# With custom template args
pvr app add my-app --from=nginx --arg KEY=VALUE --arg-json args.json

# Application extending another (shared base rootfs)
pvr app add --group=data --status-goal=MOUNTED --from=ros:rolling-ros-base rolling-ros-base
pvr app add --base rolling-ros-base --from=another-container extended-app

Flags:

FlagEnvDescription
--fromPVR_FROMContainer image to use as source
--type, -tPVR_SOURCE_TYPESource type: docker (default), pvr, rootfs
--sourcePVR_SOURCESource priority: comma-separated remote,local (default)
--platformPVR_PLATFORMTarget platform (e.g. linux/arm/v7)
--groupPVR_GROUPContainer group: data, root, platform, app
--restart-policyPVR_RESTART_POLICYRestart policy: system or container
--status-goalPVR_STATUS_GOALDesired status: MOUNTED, STARTED, READY
--basePVR_APP_ADD_BASEBase app name for diff/patch rootfs
--config-jsonPVR_CONFIG_JSONDocker image config as a JSON file
--configPVR_CONFIG_JSONConfig values as KEY=VALUE parameters (repeatable)
--argPVR_TEMPLATE_ARGTemplate arguments as KEY=VALUE (repeatable)
--arg-jsonPVR_TEMPLATE_ARGTemplate arguments as a JSON file
--volumePVR_PERSISTENCE_VOLUMEPersistence volumes (repeatable)
--format-options, -oPVR_FORMAT_OPTIONSSquashFS format options (e.g. -comp gzip)
--username, -uPVR_REGISTRY_USERNAMEDocker registry username
--password, -pPVR_REGISTRY_PASSWORDDocker registry password
--add-only, -aoPVR_APP_ADD_ONLYOnly write src.json, skip rootfs generation
--force, -fPVR_APP_ADD_FORCEOverwrite if app already exists

pvr app ls

List all applications in the PVR checkout.

pvr app ls

Flags: none


pvr app info

Show details and state of a specific application.

pvr app info nginx

Output includes the full src.json content (args, config, docker metadata, etc.).

Flags: none


pvr app rm

Remove an application from the PVR checkout.

pvr app rm nginx

Flags: none


pvr app install

Regenerate application files (rootfs, overlay) from the src.json manifest without re-pulling the Docker image.

pvr app install nginx
pvr app install

Useful after editing src.json to apply new template arguments or config.

Flags:

FlagEnvDescription
--type, -tPVR_SOURCE_TYPESource type override
--sourcePVR_SOURCESource priority override
--basePVR_APP_ADD_BASEBase app name for patch rootfs
--argPVR_TEMPLATE_ARGTemplate arguments KEY=VALUE (repeatable); merged into src.json
--arg-jsonPVR_TEMPLATE_ARGTemplate arguments as JSON file
--configPVR_CONFIG_JSONConfig values KEY=VALUE (repeatable)
--unset-argRemove template arg from src.json (repeatable)
--unset-configRemove config key from src.json (repeatable)
--username, -uPVR_REGISTRY_USERNAMEDocker registry username
--password, -pPVR_REGISTRY_PASSWORDDocker registry password

pvr app update

Update an existing application — re-pull the Docker image and regenerate files.

pvr app update nginx
pvr app update nginx --from=nginx:1.25 # also change image/tag
pvr app update nginx --patch # only update overlay
pvr app update nginx --newbase # clean patch overlay

Flags:

FlagEnvDescription
--fromPVR_APP_FROMUpdate docker_name and docker_tag before updating
--type, -tPVR_SOURCE_TYPESource type: docker, pvr, rootfs, gitlab-pkg
--sourcePVR_SOURCESource priority override
--platformPVR_PLATFORMTarget platform
--patchPVR_APP_UPDATE_PATCHOnly update the patch overlay
--newbasePVR_APP_UPDATE_PATCH_CLEANRebase: clean patch overlay
--basePVR_APP_ADD_BASEBase app for patch rootfs
--argPVR_TEMPLATE_ARGTemplate arguments KEY=VALUE (repeatable)
--arg-jsonPVR_TEMPLATE_ARGTemplate arguments as JSON file
--configPVR_CONFIG_JSONConfig values KEY=VALUE (repeatable)
--unset-argRemove template arg (repeatable)
--unset-configRemove config key (repeatable)
--username, -uPVR_REGISTRY_USERNAMEDocker registry username
--password, -pPVR_REGISTRY_PASSWORDDocker registry password