app
Create, inspect, change, move and delete an application, and read its limits, webhook, usage, metrics and logs.
An application’s own settings. What it runs is set by edge and compute; this namespace covers the application record: how it is built, the server and size it uses, its limits, its webhook, and the reports read from it. Most verbs take --app <app>, or use the application this directory is linked to. app rm always needs --app. Each verb also takes --json, --quiet and --help.
| Command | What it does |
|---|---|
app ls | Every application you can see, across projects |
app inspect | One application’s settings, source and state |
app create | Create an application, from a working tree unless --repo or --image says otherwise |
app update | Change how an application is built and run, from its next deployment |
app convert:upload | Hand an external application to the panel’s build path, from an uploaded working tree |
app rm | Delete an application, its containers and its hostnames |
app limit | What an application may use, and where each figure comes from |
app limit:set | Change an application’s size or its memory and CPU overrides |
app webhook | Where to point the git host, and whether a secret is set |
app webhook:secret | Set the webhook secret, read from stdin |
app migrate | Place an application on another server, from its next deployment |
app usage | What the application used this month, at this panel’s own rates |
app estimate | The same usage priced at another vendor’s published rates |
app metrics | The most recent CPU, memory and network samples |
app metrics:service | The latest CPU, memory and restarts of each service of a stack |
app metrics:history | CPU, memory and restarts over days |
app analytics | Requests, visitors and top paths, from the proxy’s own log |
app rum | Core Web Vitals as visitors’ browsers reported them |
app uptime | How often the application answered its probe |
app stats | How this application’s deployments went |
app logs:search | Find text in every build log, archived ones included |
Create and deploy
A first application, from a terminal. Create it in a project on a server with a size, link the directory to it, set its variables, and deploy. --frontend makes it an edge application; without it the application is deployed with compute. app create needs a project, a server (or a project default), and a size. Add --service when more than one billing service fits.
# 1. Create the application in project "blog", with a server and a size
stechbd app create web --project blog --server <server> --size <size> --frontend
# 2. Link this directory to it, using the link command printed by create
stechbd link blog web
# 3. Set variables: a plain one, and a secret read from a file
stechbd env add API_URL https://api.example.com --scope both
cat token.txt | stechbd env add API_TOKEN --secret
# 4. Deploy the working tree (use "stechbd compute deploy" when not --frontend)
stechbd edge deploy--serverand--sizetake the slug or id, and the size id or name, from the panel’s own lists.- Without
--repoor--image, the application is deployed from a working tree, which is what step 4 sends. app createprints thelinkcommand for the new application. Run it from the directory you deploy from.
stechbd app ls
Lists every application you can see, across all projects. Use it to find the id to pass to --app in other commands.
stechbd app ls# Every application you can see
stechbd app ls
# The same list as JSON, for a script
stechbd app ls --jsonstechbd app inspect
Shows one application’s settings, its source and its current state. It is read-only.
stechbd app inspect [--app <app>]| Option | Description |
|---|---|
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Settings and state of the linked application
stechbd app inspect
# Another application, as JSON
stechbd app inspect --app <app> --jsonstechbd app create
Creates an application in a project. With neither --repo nor --image it is an upload application, deployed from a working tree. --repo makes a git application, and --image makes an application that runs a prebuilt image. The panel refuses a repository on an upload application, and this command refuses it before sending anything. The billing service is taken from --service, or, when that is omitted, from the one whose type matches --frontend; the command refuses unless exactly one service matches.
stechbd app create <name> [--project <project>] [--server <server>] [--slug <slug>] [--repo <url>] [--branch <branch>] [--dockerfile] [--image <reference>] [--port <port>] [--frontend] [--kind <kind>] [--environment <key>] [--size <size>] [--build-command <command>] [--install-command <command>] [--start-command <command>] [--publish-directory <path>] [--subdirectory <path>] [--service <service>]| Option | Description |
|---|---|
<name> | The application’s name. One is required. |
--project <project> | The project, by slug or id. Defaults to the project this directory is linked to. |
--server <server> | The server, by slug or id. Without it the project’s default server is used. |
--slug <slug> | The slug to give the application, sent as written. |
--repo <url> | A git repository to build from. Cannot be combined with --image. |
--branch <branch> | The branch of --repo to build. Needs --repo. |
--dockerfile | Build the repository’s own Dockerfile. Needs --repo. |
--image <reference> | A prebuilt image to run, instead of building one. Cannot be combined with --repo. |
--port <port> | The port the application listens on, from 1 to 65535. |
--frontend | Make it a frontend application, billed through the frontend service. |
--kind <kind> | The application kind, sent as written. |
--environment <key> | The environment key to attach, sent as written. |
--size <size> | A size id or name from the panel’s list. It sets the memory limit; change it later with app limit:set. |
--build-command <command> | The command that builds the application. |
--install-command <command> | The command that installs its dependencies. |
--start-command <command> | The command that starts it. |
--publish-directory <path> | The build output directory that is published. |
--subdirectory <path> | The subdirectory of the source the application lives in. |
--service <service> | The billing service, by id, slug or name. Needed when more than one fits the application type. |
# An upload application for a frontend, deployed from this directory
stechbd app create web --project blog --server <server> --size <size> --frontend
# A git application, built from the repository
stechbd app create api --project blog --server <server> --size <size> --repo https://git.example.com/acme/api.git --branch main --port 8080
# An application that runs a prebuilt image
stechbd app create worker --project blog --server <server> --size <size> --image registry.example.com/acme/worker:1.4stechbd app update
Changes how an application is built and run. Only the flags you pass are sent, and an update with no changes is refused. Changes apply from the next deployment. --volume is repeatable, and the set you pass replaces the stored list of mounts; --no-volume removes every mount. --dry-run sends the change as a dry run, so it is checked without being applied.
stechbd app update [--name <name>] [--branch <branch>] [--port <port>] [--health-path <path>] [--build-command <command>] [--install-command <command>] [--start-command <command>] [--publish-directory <path>] [--subdirectory <path>] [--auto-deploy] [--no-auto-deploy] [--service <service>] [--volume <name:/path>]... [--no-volume] [--dry-run] [--app <app>]| Option | Description |
|---|---|
--name <name> | A new name for the application. |
--branch <branch> | The branch to build. |
--port <port> | The port the application listens on, from 1 to 65535. |
--health-path <path> | The health path, sent as written. |
--build-command <command> | The command that builds the application. |
--install-command <command> | The command that installs its dependencies. |
--start-command <command> | The command that starts it. |
--publish-directory <path> | The build output directory that is published. |
--subdirectory <path> | The subdirectory of the source the application lives in. |
--auto-deploy | Turn automatic deployment on. |
--no-auto-deploy | Stop deploying automatically. Cannot be combined with --auto-deploy. |
--service <service> | The billing service, by id, slug or name. |
--volume <name:/path> | Mount a volume at an absolute path. Repeatable. |
--no-volume | Remove every volume mount. |
--dry-run | Check the change without applying it. |
--app <app> | The application to change. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Change the build and start commands
stechbd app update --build-command "npm run build" --start-command "npm start"
# Check a port change without applying it
stechbd app update --port 3000 --dry-run
# Turn off automatic deployment
stechbd app update --no-auto-deploystechbd app convert:upload
Hands an external application to the panel’s build path, by uploading the working tree in this directory. The command reads the application first, and refuses before uploading anything if its source is not external.
stechbd app convert:upload [--app <app>] [--yes]| Option | Description |
|---|---|
--app <app> | The application to convert. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
--yes | Skip the confirmation prompt. |
# Convert the linked application, after confirming
stechbd app convert:uploadstechbd app rm
Deletes an application, its containers and its hostnames. It takes its target only from --app, never from the linked directory, so a removal cannot pick the wrong application because of where you are standing. You are asked to confirm unless --yes is passed. Volumes are kept unless --purge-volumes is passed. That flag also deletes the data in the volumes, and it is refused on a panel that does not support it.
stechbd app rm --app <app> [--purge-volumes] [--yes]| Option | Description |
|---|---|
--app <app> | The application to delete. Required. An id, or the slug in the linked project. |
--purge-volumes | Also delete the application’s volumes and the data in them. |
--yes | Skip the confirmation prompt. |
# Delete an application, after confirming
stechbd app rm --app <app>
# Delete it and its volumes, for a script that has been reviewed
stechbd app rm --app <app> --purge-volumes --yesstechbd app limit
Shows what the application may use, as one figure for the whole application, and where each figure comes from. For a stack, the figure is the total shared across its services. A figure with no bound is shown as an em dash, not as zero. It is read-only.
stechbd app limit [--app <app>]| Option | Description |
|---|---|
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Limits of the linked application
stechbd app limitstechbd app limit:set
Changes the size, or the memory and CPU overrides, of an application. The command reads the current limits, changes only what you pass, and writes the whole state back, so settings you did not name keep their values. --no-memory and --no-cpu remove that override, so the size preset applies again. At least one change is required.
stechbd app limit:set [--size <size>] [--memory <mib>] [--cpu <millicores>] [--no-memory] [--no-cpu] [--app <app>]| Option | Description |
|---|---|
--size <size> | A size id or name from the panel’s list. |
--memory <mib> | A memory override in MiB, as a whole number above zero. |
--cpu <millicores> | A CPU override in millicores, as a whole number above zero. |
--no-memory | Remove the memory override. Cannot be combined with --memory. |
--no-cpu | Remove the CPU override. Cannot be combined with --cpu. |
--app <app> | The application to change. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Move the linked application to another size
stechbd app limit:set --size <size>
# Set a memory override and keep the rest
stechbd app limit:set --memory 512
# Return memory to the size preset
stechbd app limit:set --no-memorystechbd app webhook
Shows where to point the git host’s webhook for this application, and whether a webhook secret is set. The secret itself is not printed. It is read-only.
stechbd app webhook [--app <app>]| Option | Description |
|---|---|
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# The URL to configure in the git host
stechbd app webhookstechbd app webhook:secret
Sets the application’s webhook secret. The value is read from stdin, so it stays out of shell history and the process list. Pass it in from a file or a password manager, not as an argument.
stechbd app webhook:secret [--app <app>]| Option | Description |
|---|---|
--app <app> | The application to change. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Set the secret from a file
cat webhook-secret.txt | stechbd app webhook:secretstechbd app migrate
Places an application on another server. You are asked to confirm unless --yes is passed. The move takes effect at the application’s next deployment, and nothing runs on the new server before then.
stechbd app migrate <server> [--yes] [--app <app>]| Option | Description |
|---|---|
<server> | The server to move to, by slug or id. Required. |
--yes | Skip the confirmation prompt. |
--app <app> | The application to move. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Move the linked application to another server, after confirming
stechbd app migrate <server>stechbd app usage
Shows what the application used in one calendar month, priced at this panel’s own rates. It is read-only.
stechbd app usage [--period <yyyy-mm>] [--app <app>]| Option | Description |
|---|---|
--period <yyyy-mm> | The calendar month to report, such as 2026-10. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# This application, last month
stechbd app usage --period 2026-10
# The same report as JSON
stechbd app usage --period 2026-10 --jsonstechbd app estimate
Prices the same usage at another vendor’s published rates, so it can be compared with app usage. It covers the same calendar month. It is read-only.
stechbd app estimate [--period <yyyy-mm>] [--app <app>]| Option | Description |
|---|---|
--period <yyyy-mm> | The calendar month to price, such as 2026-10. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Price this application’s usage at another vendor’s rates
stechbd app estimate --period 2026-10stechbd app metrics
Shows the most recent CPU, memory and network samples, as the collector recorded them. If no sample falls in the range, the command says so, and does not print zero, because nothing was measured.
stechbd app metrics [--range <range>] [--app <app>]| Option | Description |
|---|---|
--range <range> | The span to read, in the form the panel accepts. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Latest samples for the linked application
stechbd app metrics
# The same, for a span, as JSON
stechbd app metrics --range <range> --jsonstechbd app metrics:service
Shows the latest CPU, memory and restart count of each service in a stack. Use it for an application made of several services; app metrics reports the application as a whole.
stechbd app metrics:service [--app <app>]| Option | Description |
|---|---|
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Per-service figures for the linked stack
stechbd app metrics:servicestechbd app metrics:history
Shows CPU, memory and restart counts over a number of days, at the resolution you ask for. It is read-only.
stechbd app metrics:history [--days <n>] [--resolution <resolution>] [--app <app>]| Option | Description |
|---|---|
--days <n> | The number of days to show. |
--resolution <resolution> | The resolution of the points, in the form the panel accepts. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Seven days of history for the linked application
stechbd app metrics:history --days 7stechbd app analytics
Shows requests, visitors and top paths, counted from the proxy’s own log over a span. It is read-only.
stechbd app analytics [--range <range>] [--app <app>]| Option | Description |
|---|---|
--range <range> | The span to count, in the form the panel accepts. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Traffic for the linked application over the default span
stechbd app analytics
# The same, as JSON
stechbd app analytics --jsonstechbd app rum
Shows Core Web Vitals as visitors’ browsers reported them. It is read-only.
stechbd app rum [--days <n>] [--resolution <resolution>] [--compare <compare>] [--app <app>]| Option | Description |
|---|---|
--days <n> | The number of days to show. |
--resolution <resolution> | The resolution of the points, in the form the panel accepts. |
--compare <compare> | The comparison basis, in the form the panel accepts. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Web Vitals for the last seven days
stechbd app rum --days 7stechbd app uptime
Shows how often the application answered its probe, over a number of days. It is read-only.
stechbd app uptime [--days <n>] [--resolution <resolution>] [--compare <compare>] [--app <app>]| Option | Description |
|---|---|
--days <n> | The number of days to show. |
--resolution <resolution> | The resolution of the points, in the form the panel accepts. |
--compare <compare> | The comparison basis, in the form the panel accepts. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Availability over the last thirty days
stechbd app uptime --days 30stechbd app stats
Shows how this application’s deployments went over a number of days. It is read-only.
stechbd app stats [--days <n>] [--resolution <resolution>] [--compare <compare>] [--app <app>]| Option | Description |
|---|---|
--days <n> | The number of days to show. |
--resolution <resolution> | The resolution of the points, in the form the panel accepts. |
--compare <compare> | The comparison basis, in the form the panel accepts. |
--app <app> | The application to read. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Deployment outcomes over the last thirty days
stechbd app stats --days 30stechbd app logs:search
Finds text in every build log of the application, including the archived ones. If some archived logs were missing and could not be searched, the command says how many, so a clean result is not taken as a complete one. It is read-only.
stechbd app logs:search <text> [--app <app>]| Option | Description |
|---|---|
<text> | The text to find. Required. |
--app <app> | The application to search. Defaults to the one this directory is linked to. An id, or the slug in the linked project. |
# Find a connection error in every build log
stechbd app logs:search "ECONNREFUSED"