Command Line

Everything the panel does, from a terminal — apps, virtual machines, databases and domains. It has no dependencies and needs Node 18 or newer.

Install

npm install -g javer-cli

Log in

Create a key on the API Keys page, then:

javer login

The key is saved to ~/.javer/config.json, readable only by you. It does not expire and it is not scoped — it can do anything your account can. Revoke it from the panel when you are finished; javer logout only forgets the local copy.

The live dashboard

javer ui

Apps and virtual machines on one screen, with the resource budget they share across the top — which the panel itself spreads over three pages. Arrow keys select a row; s starts or stops it, r restarts, l shows its logs, q quits. It refreshes every four seconds, and anything that takes a service offline asks first.

Deploying

javer deploy                       # the folder you are in
javer deploy --repo owner/name     # a connected GitHub repo
javer deploy --repo owner/name --branch main --ram 512 --cpu 0.5

With no --repo it packs the current directory and uploads it. The folder name becomes the app name unless you pass --name.

Left out of the upload automatically: node_modules (the platform installs dependencies itself), .git, build output, logs, and .env — environment variables belong in the panel, not baked into a deployment.

Uploads are capped at 2 MB after compression. Past that, deploy from GitHub instead.

Before your first deploy

Two platform rules catch people out, and both fail quietly:

Read process.env.PORT. Javer assigns the port. An app that hardcodes one will start, report healthy, and return 502 — because nothing is listening where the traffic is being sent.

The entry file must be server.js at the root of your project, or index.html for a static site. A start script in package.json is not read.

Apps

javer ls                     # everything you are running
javer status <app>           # size, host, address
javer logs <app>             # recent output
javer logs <app> -f          # keep watching
javer env <app> [--show]     # values hidden unless you ask
javer domains <app>          # custom domains and whether they verified
javer start|stop|restart <app>
javer delete <app>           # asks you to type the name

logs -f checks every two seconds and prints what is new. It is a poll, not a live tail — the server returns the last 300 lines as a snapshot.

delete takes the app, its data and its address, and there is no undo. It asks you to type the name rather than accepting a yes, and refuses entirely when there is no terminal to confirm in unless you pass --yes.

Virtual machines

javer vms                    # list them
javer vm <name>              # details, with live memory and CPU
javer vm start|stop|restart <name>

SSH from your own machine is not available yet — VMs sit on a private network with no route in from the internet. Use the browser terminal in the panel.

Databases

javer db                              # list them
javer db create <name>                # PostgreSQL
javer db create <name> --engine mysql

Credentials are printed once, when the database is created, and are not stored anywhere they can be read back. A database is reachable only from inside Javer, so you cannot connect to it from your laptop with psql or a GUI client.

In a build pipeline

Set JAVER_API_KEY instead of logging in, so no key is written to disk:

JAVER_API_KEY=<key> javer deploy --repo myorg/myapp --branch main

javer deploy follows the build and exits non-zero if it fails, so it works as a pipeline step. JAVER_API_URL points the CLI at a different server. Both take precedence over the saved file.

Every command

javer ui                                  live dashboard: apps + VMs
javer login [--key <key>] [--url <url>]   save an API key
javer logout                              forget the saved key locally
javer whoami                              plan limits and what is left
javer ls                                  list your apps
javer status <app>                        details for one app
javer logs <app> [-f]                     recent output; -f keeps watching
javer env <app> [--show]                  environment variables
javer domains <app>                       custom domains
javer start|stop|restart <app>            lifecycle
javer delete <app> [--yes]                remove an app, its data and its URL
javer vms                                 list virtual machines
javer vm <name>                           details for one VM
javer vm start|stop|restart <name>        VM lifecycle
javer db                                  list databases
javer db create <name> [--engine mysql]   new Postgres or MySQL
javer deploy                              deploy the folder you are in
javer deploy --repo owner/name            deploy from a connected GitHub repo
javer version | help