Skip to content

edgible application

Manage applications

Aliases: ls

List all configured applications

Terminal window
edgible application list [flags]
FlagDescription
--jsonOutput as JSON

Aliases: new

Create a new application

Terminal window
edgible application create [flags]

By default, every create subcommand waits for the application to converge on its device — the same streaming phase output that stack deploy prints — and exits non-zero if convergence fails or times out. For an https app the wait ends with a certificate status line (issued, or validating — check with: edgible certs). Pass --no-wait to return as soon as the application is registered; the CLI then prints Application registered. Deploying — check progress with: edgible application get <name> and exits 0. --wait-timeout <seconds> (default 600) bounds the wait.

Create application for an existing port that is open on the computer

Terminal window
edgible application create existing [flags]
FlagDescription
-n, --name <name>Application name
-d, --description <description>Application description
-p, --port <port>Port number
--protocol <protocol>Protocol (http, https, tcp, udp)
--https-upgradeUpgrade HTTP protocol to HTTPS automatically
--device-id <id>Serving device ID
--gateway-ids <ids>Comma-separated gateway device IDs (omit to use Edgible managed gateway)
--hostnames <hostnames>Comma-separated additional hostnames to route to this app
--auth-modes <modes>Auth modes: none, org, api-key (comma-separated for multiple)
--allowed-orgs <ids>Comma-separated organization IDs allowed (when org auth is used)
--non-interactiveRun in non-interactive mode
--no-waitReturn after registration without waiting for on-device convergence
--wait-timeout <seconds>Max seconds to wait for convergence

Create application from docker-compose file (on device)

Terminal window
edgible application create docker-compose [flags]
FlagDescription
-n, --name <name>Application name
-d, --description <description>Application description
--compose-file <file>Path to docker-compose.yml file
--device-id <id>Serving device ID
--gateway-ids <ids>Comma-separated gateway device IDs (omit to use Edgible managed gateway)
--hostnames <hostnames>Comma-separated additional hostnames to route to this app
--auth-modes <modes>Auth modes: none, org, api-key (comma-separated for multiple)
--allowed-orgs <ids>Comma-separated organization IDs allowed (when org auth is used)
--non-interactiveRun in non-interactive mode
--no-waitReturn after registration without waiting for on-device convergence
--wait-timeout <seconds>Max seconds to wait for convergence

edgible application create managed-process

Section titled “edgible application create managed-process”

Create application from a managed process (agent runs the command)

Terminal window
edgible application create managed-process [flags]
FlagDescription
-n, --name <name>Application name
-d, --description <description>Application description
-c, --command <command>Command to execute
-p, --port <port>Port number the process will listen on
--working-dir <dir>Working directory for the process
--env <vars>Environment variables (format: KEY=VALUE,KEY2=VALUE2)
--log-file <path>Path to log file for stdout/stderr
--protocol <protocol>Protocol (http, https, tcp, udp)
--device-id <id>Serving device ID
--gateway-ids <ids>Comma-separated gateway device IDs (omit to use Edgible managed gateway)
--hostnames <hostnames>Comma-separated additional hostnames
--auth-modes <modes>Auth modes: none, org, api-key (comma-separated for multiple)
--allowed-orgs <ids>Comma-separated organization IDs allowed (when org auth is used)
--non-interactiveRun in non-interactive mode
--no-waitReturn after registration without waiting for on-device convergence
--wait-timeout <seconds>Max seconds to wait for convergence

Create a VM application (managed by the agent via QEMU or other backends)

Terminal window
edgible application create vm [flags]
FlagDescription
-n, --name <name>Application name
-d, --description <description>Application description
--backend <backend>VM backend (qemu)
--disk-image <path>Disk image path or URL
--memory <mib>Memory in MiB (default: 512)
--cpus <count>Number of CPUs (default: 1)
--ssh-port <port>Host port forwarded to VM port 22 (default: 2222)
--ssh-public-key <key>SSH public key to inject via cloud-init
--arch <arch>VM architecture: x86_64 or aarch64 (default: x86_64)
--device-id <id>Serving device ID
--gateway-ids <ids>Comma-separated gateway device IDs
--hostnames <hostnames>Comma-separated additional hostnames
--auth-modes <modes>Auth modes: none, org, api-key
--allowed-orgs <ids>Comma-separated allowed organization IDs
--non-interactiveRun in non-interactive mode
--no-waitReturn after registration without waiting for on-device convergence
--wait-timeout <seconds>Max seconds to wait for convergence

Aliases: status, info

Get status of a specific application

Terminal window
edgible application get [flags]
FlagDescription
-i, --app-id <id>Application ID
--jsonOutput as JSON

Show lifecycle events for an application

Terminal window
edgible application events [flags]
FlagDescription
-i, --app-id <id>Application ID
-n, --limit <number>Maximum number of events to return
--jsonOutput as JSON

Show live workload logs collected from the application’s serving device(s)

Terminal window
edgible application logs [flags]
FlagDescription
-i, --app-id <id>Application ID
--since <time>Only lines at/after this time (ISO-8601 or epoch-ms)
-n, --limit <number>Maximum number of lines per device
--device <id>Restrict to a single serving device the app is deployed on
--priority <level>Minimum journald priority: debug, info, warning, err
-f, --followPoll continuously and stream new lines (Ctrl+C to stop)
--jsonOutput raw JSON

Trace the data path for an application hop-by-hop (gateway HAProxy → WireGuard → serving Caddy → workload)

Terminal window
edgible application trace [flags]
FlagDescription
-i, --app-id <id>Application ID
--timeout <ms>Overall trace timeout budget in milliseconds (server-capped under the API Gateway ceiling)
--jsonOutput raw JSON only

Composed single-app triage: deployment status, certificates, data-path trace, and workload log collection, ending in a primary verdict and follow-up command

Terminal window
edgible application doctor [flags]
FlagDescription
-i, --app-id <id>Application ID
--timeout <ms>Data-path trace timeout budget in milliseconds (server-capped under the API Gateway ceiling)
--jsonOutput the verdict, findings, and raw checks as JSON

Show gateway access rules and recent denials for an application

Terminal window
edgible application access [flags]
FlagDescription
-i, --app-id <id>Application ID
-n, --limit <number>Maximum number of recent denials to return
--jsonOutput as JSON

Update an existing application (e.g. auth modes, name)

Terminal window
edgible application update [flags]
FlagDescription
-i, --app-id <id>Application ID
-n, --name <name>Application name
--auth-modes <modes>Auth modes: none, org, api-key (comma-separated for multiple)
--allowed-orgs <ids>Comma-separated organization IDs allowed (when org auth is used)
--target-state <state>Target lifecycle state: running, suspended

Aliases: rm

Delete an application

Terminal window
edgible application delete [flags]
FlagDescription
-i, --app-id <id>Application ID
-n, --name <name>Application name (resolved to ID for deletion)
-f, --forceSkip confirmation prompt
--non-interactiveRun in non-interactive mode
--waitAfter deletion, wait for per-device teardown confirmation (default: return immediately)
--wait-timeout <seconds>Max seconds to wait for teardown (with —wait)

Benchmark application creation and reachability for all workload types

Terminal window
edgible application benchmark [flags]
FlagDescription
--device-id <id>Serving device ID
--gateway-ids <ids>Comma-separated gateway IDs (omit for Edgible managed gateway)
--preexisting-port <n>Port already listening on the device (default: agent telemetry port 29999)
--process-port <n>Port for managed-process app
--compose-port <n>Port for docker-compose app
--timeout <seconds>Max wait per step in seconds
--no-cleanupKeep applications after benchmark (default: delete them)
--jsonMachine-readable output

List the cut releases for an application (version, status, current pointer, signature)

Terminal window
edgible application releases [flags]
FlagDescription
-i, --app-id <id>Application ID
--jsonOutput as JSON

Re-point the deployment at an earlier cut release (no new version, no tag re-resolve)

Terminal window
edgible application rollback <version> [flags]
FlagDescription
-i, --app-id <id>Application ID
-y, --yesSkip the confirmation prompt

Force re-realization of the current release on its device(s) (no version cut)

Terminal window
edgible application redeploy [flags]
FlagDescription
-i, --app-id <id>Application ID

Inspect release rollout across an application’s devices

Terminal window
edgible application rollout [flags]

Per-device convergence toward the current release. Exit code: 0 when all converged, 1 when any device is pending (scriptable rollout gate).

Terminal window
edgible application rollout status [flags]
FlagDescription
-i, --app-id <id>Application ID
--jsonOutput as JSON

Aliases: keys

Manage application API keys

Terminal window
edgible application api-keys [flags]

Aliases: ls

List API keys for an application

Terminal window
edgible application api-keys list [flags]
FlagDescription
-i, --app-id <id>Application ID
--jsonOutput as JSON

Aliases: new

Create a new API key

Terminal window
edgible application api-keys create [flags]
FlagDescription
-i, --app-id <id>Application ID
-n, --name <name>Key name
--expires <date>Expiration date (ISO format)

Aliases: rm

Delete an API key

Terminal window
edgible application api-keys delete [flags]
FlagDescription
-i, --app-id <id>Application ID
-k, --key-id <id>API Key ID
-f, --forceSkip confirmation prompt

Aliases: codes

Manage application short codes

Terminal window
edgible application short-codes [flags]

Aliases: ls

List short codes for an application

Terminal window
edgible application short-codes list [flags]
FlagDescription
-i, --app-id <id>Application ID
--jsonOutput as JSON

Aliases: new

Create a new short code

Terminal window
edgible application short-codes create [flags]
FlagDescription
-i, --app-id <id>Application ID
-n, --name <name>Code name/description
--expires <date>Expiration date (ISO format)
--max-uses <number>Maximum number of uses

Aliases: rm

Delete a short code

Terminal window
edgible application short-codes delete [flags]
FlagDescription
-i, --app-id <id>Application ID
-c, --code-id <id>Short Code ID
-f, --forceSkip confirmation prompt

Enable or disable a short code

Terminal window
edgible application short-codes toggle [flags]
FlagDescription
-i, --app-id <id>Application ID
-c, --code-id <id>Short Code ID

Manage application storage records (platform + host-bind)

Terminal window
edgible application storage [flags]

Aliases: ls

List storage records (platform + host-bind) for an application

Terminal window
edgible application storage list [flags]
FlagDescription
-i, --app-id <id>Application ID
--jsonOutput as JSON

Propose spec.storage[] entries for undeclared host-bind volumes

Terminal window
edgible application storage declare [flags]
FlagDescription
-i, --app-id <id>Application ID
--auto-declare-yesAccept all proposals without prompting (CI-friendly)
--non-interactiveSkip prompts even on a TTY (use with —auto-declare-yes)
--jsonOutput proposals as JSON instead of prompting

Promote a host-bind storage record to platform-managed storage on its serving device

Terminal window
edgible application storage promote [flags]
FlagDescription
-i, --app-id <id>Application ID
-s, --storage-name <name>Storage record name
--mobility <mobility>Final mobility for the promoted record: immovable | movable | replicated
--watchWait for the promote job to complete and report status

Ship local data into a storage volume on the application’s device

Terminal window
edgible application storage push [flags]
FlagDescription
-i, --app-id <id>Application ID
-s, --storage-name <name>Storage entry name (must exist in the application declaration)
-p, --path <path>Local file or directory to push
--device-id <id>Target device (defaults to the application’s first device)
--no-packTreat —path as a pre-built tarball; do not pack with tar
--quiesceStop the workload across the apply step (recommended for stateful apps)
--apply-mode <mode>Apply mode: replace | merge
--jsonOutput as JSON

Open an SSH session to a VM application

Terminal window
edgible application ssh [flags]
FlagDescription
-i, --id <id>Application ID
-u, --user <username>SSH username (default: ubuntu)
-k, --key <path>Path to SSH private key
--command <cmd>Run a single command instead of interactive session