@cloudiva.net/cli
v0.9.0
Published
Cloudiva Cli for PaaS Services
Maintainers
Readme
diva
Deploy and manage your Cloudiva services from the terminal.
Quick start
# 1. Install
npm install -g @cloudiva.net/cli
# 2. Sign in (or use an API token: diva login -t <token>)
diva login
# 3. See what you have
diva service list
# 4. Deploy the project in the current directory
cd my-project
diva deployTo deploy the same project repeatedly without picking the service each time, add a
diva.json to its root:
{
"service": "my-app"
}Then diva deploy alone is enough.
Files are excluded from the upload using .divaignore, falling back to
.dockerignore and then .gitignore. Run with DIVA_DEBUG=true to see exactly
what was skipped.
Usage
$ npm install -g @cloudiva.net/cli
$ diva COMMAND
running command...
$ diva (--version|-v)
@cloudiva.net/cli/0.9.0 darwin-arm64 node-v20.13.1
$ diva --help [COMMAND]
USAGE
$ diva COMMAND
...Environment variables
| Variable | Description |
| --- | --- |
| DIVA_DEBUG | Set to true to print full error details (status code, endpoint, error code, response body) and ignored-file logs during deploy. |
| DIVA_API_URL | Override the API base URL. Defaults to https://apihub.cloudiva.net/fa/api/v1/. |
| DIVA_INSECURE_TLS | Set to true to skip TLS certificate verification. Only for servers with a self-signed certificate — it disables protection against interception, so the CLI warns whenever it is active. |
| DIVA_NO_UPDATE_CHECK | Set to any value to disable the "new version available" check entirely. Also honours NO_UPDATE_NOTIFIER, and it is skipped automatically when CI is set. |
| DIVA_NPM_REGISTRY | npm registry used for the update check. Defaults to https://registry.npmjs.org. |
| http_proxy / https_proxy | Route requests through an HTTP proxy. |
Credentials are stored in ~/.diva.json with 0600 permissions (readable only by you).
The update check is designed to stay out of your way: it contacts the registry at most once every 24 hours, gives up after 1.5 seconds, writes its notice to stderr so it never pollutes piped output, and stays silent on any failure. If you are offline it costs one 1.5s timeout, and nothing at all on subsequent runs.
Commands
diva account infodiva account listdiva account removediva account usediva autocomplete [SHELL]diva cloudserver creatediva cloudserver deletediva cloudserver listdiva cloudserver restartdiva cloudserver startdiva cloudserver stopdiva deploydiva help [COMMAND]diva logindiva pluginsdiva plugins add PLUGINdiva plugins:inspect PLUGIN...diva plugins install PLUGINdiva plugins link PATHdiva plugins remove [PLUGIN]diva plugins resetdiva plugins uninstall [PLUGIN]diva plugins unlink [PLUGIN]diva plugins updatediva service domain adddiva service domain removediva service listdiva service logsdiva service resizediva service restartdiva service startdiva service stopdiva versiondiva wallet list
diva account info
show information about the active account
USAGE
$ diva account info [-h]
FLAGS
-h, --help Show CLI help.
DESCRIPTION
show information about the active account
EXAMPLES
Show the active account's details
$ diva account infoSee code: src/commands/account/info.ts
diva account list
list the accounts you are logged in to
USAGE
$ diva account list [-h]
FLAGS
-h, --help Show CLI help.
DESCRIPTION
list the accounts you are logged in to
EXAMPLES
Show every logged-in account and which one is active
$ diva account listSee code: src/commands/account/list.ts
diva account remove
sign out of an account and forget its stored token
USAGE
$ diva account remove [-h]
FLAGS
-h, --help Show CLI help.
DESCRIPTION
sign out of an account and forget its stored token
EXAMPLES
Pick the account to sign out of
$ diva account removeSee code: src/commands/account/remove.ts
diva account use
switch the active account
USAGE
$ diva account use [-h] [-u <value>]
FLAGS
-h, --help Show CLI help.
-u, --user=<value> email of the account to switch to
DESCRIPTION
switch the active account
EXAMPLES
Pick the account to switch to from a list
$ diva account use
Switch to a specific account without prompting
$ diva account use --user [email protected]See code: src/commands/account/use.ts
diva autocomplete [SHELL]
Display autocomplete installation instructions.
USAGE
$ diva autocomplete [SHELL] [-r]
ARGUMENTS
[SHELL] (zsh|bash|powershell) Shell type
FLAGS
-r, --refresh-cache Refresh cache (ignores displaying instructions)
DESCRIPTION
Display autocomplete installation instructions.
EXAMPLES
$ diva autocomplete
$ diva autocomplete bash
$ diva autocomplete zsh
$ diva autocomplete powershell
$ diva autocomplete --refresh-cacheSee code: @oclif/plugin-autocomplete
diva cloudserver create
create a new cloud server (VPS) — walks through provider, location, plan, OS and wallet
USAGE
$ diva cloudserver create [-h] [--hostname <value>] [--wallet <value>]
FLAGS
-h, --help Show CLI help.
--hostname=<value> hostname for the new cloud server
--wallet=<value> name of the wallet to pay from
DESCRIPTION
create a new cloud server (VPS) — walks through provider, location, plan, OS and wallet
EXAMPLES
Create a cloud server, choosing every option interactively
$ diva cloudserver create
Skip the hostname prompt
$ diva cloudserver create --hostname my-vpsSee code: src/commands/cloudserver/create.ts
diva cloudserver delete
permanently delete a cloud server
USAGE
$ diva cloudserver delete [-h] [--hostname <value>] [-y]
FLAGS
-h, --help Show CLI help.
-y, --yes skip the confirmation prompt
--hostname=<value> hostname of the cloud server to delete
DESCRIPTION
permanently delete a cloud server
EXAMPLES
Pick a cloud server from an interactive list, then confirm
$ diva cloudserver delete
Delete a specific cloud server without a confirmation prompt
$ diva cloudserver delete --hostname my-vps --yesSee code: src/commands/cloudserver/delete.ts
diva cloudserver list
list the cloud servers (VPS) on your account
USAGE
$ diva cloudserver list [-h]
FLAGS
-h, --help Show CLI help.
DESCRIPTION
list the cloud servers (VPS) on your account
EXAMPLES
List every cloud server on the active account
$ diva cloudserver listSee code: src/commands/cloudserver/list.ts
diva cloudserver restart
restart a cloud server
USAGE
$ diva cloudserver restart [-h] [--hostname <value>]
FLAGS
-h, --help Show CLI help.
--hostname=<value> hostname of the cloud server to restart
DESCRIPTION
restart a cloud server
EXAMPLES
Pick a cloud server from an interactive list
$ diva cloudserver restart
Restart a specific cloud server by hostname
$ diva cloudserver restart --hostname my-vpsSee code: src/commands/cloudserver/restart.ts
diva cloudserver start
turn on a cloud server
USAGE
$ diva cloudserver start [-h] [--hostname <value>]
FLAGS
-h, --help Show CLI help.
--hostname=<value> hostname of the cloud server to turn on
DESCRIPTION
turn on a cloud server
EXAMPLES
Pick a cloud server from an interactive list
$ diva cloudserver start
Turn on a specific cloud server by hostname
$ diva cloudserver start --hostname my-vpsSee code: src/commands/cloudserver/start.ts
diva cloudserver stop
turn off a cloud server
USAGE
$ diva cloudserver stop [-h] [--hostname <value>]
FLAGS
-h, --help Show CLI help.
--hostname=<value> hostname of the cloud server to turn off
DESCRIPTION
turn off a cloud server
EXAMPLES
Pick a cloud server from an interactive list
$ diva cloudserver stop
Turn off a specific cloud server by hostname
$ diva cloudserver stop --hostname my-vpsSee code: src/commands/cloudserver/stop.ts
diva deploy
upload the current project and deploy it to a service
USAGE
$ diva deploy [-h] [-p <value>] [-s <value>]
FLAGS
-h, --help Show CLI help.
-p, --path=<value> project directory to upload (defaults to the current directory)
-s, --service=<value> name of the service to deploy to
DESCRIPTION
upload the current project and deploy it to a service
EXAMPLES
Deploy the current directory, picking the service from a list
$ diva deploy
Deploy the current directory to a named service
$ diva deploy --service my-app
Deploy a project that lives somewhere else
$ diva deploy --path ./apps/api --service my-api
Pin the target service in the project, so plain `deploy` always works
echo '{"service": "my-app"}' > diva.json && diva deploy
See exactly which files are excluded from the upload
DIVA_DEBUG=true diva deploy -s my-appSee code: src/commands/deploy.ts
diva help [COMMAND]
Display help for diva.
USAGE
$ diva help [COMMAND...] [-n]
ARGUMENTS
[COMMAND...] Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for diva.See code: @oclif/plugin-help
diva login
sign in to your hub.cloudiva.net account
USAGE
$ diva login [-h] [-u <value>] [-p <value>] [-t <value>]
FLAGS
-h, --help Show CLI help.
-p, --password=<value> your password (prompted for if omitted)
-t, --token=<value> API token, for non-interactive sign-in
-u, --username=<value> your email address
DESCRIPTION
sign in to your hub.cloudiva.net account
EXAMPLES
Sign in interactively (prompts for email and password)
$ diva login
Sign in with an API token — the right choice for CI
$ diva login --token <your-api-token>
Pass the email up front and be prompted only for the password
$ diva login --email [email protected]
Add a second account (both stay signed in; switch with `account use`)
$ diva login --email [email protected]See code: src/commands/login.ts
diva plugins
List installed plugins.
USAGE
$ diva plugins [--json] [--core]
FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ diva pluginsSee code: @oclif/plugin-plugins
diva plugins add PLUGIN
Installs a plugin into diva.
USAGE
$ diva plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into diva.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the DIVA_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the DIVA_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ diva plugins add
EXAMPLES
Install a plugin from npm registry.
$ diva plugins add myplugin
Install a plugin from a github url.
$ diva plugins add https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ diva plugins add someuser/someplugindiva plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ diva plugins inspect PLUGIN...
ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ diva plugins inspect mypluginSee code: @oclif/plugin-plugins
diva plugins install PLUGIN
Installs a plugin into diva.
USAGE
$ diva plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into diva.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the DIVA_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the DIVA_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ diva plugins add
EXAMPLES
Install a plugin from npm registry.
$ diva plugins install myplugin
Install a plugin from a github url.
$ diva plugins install https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ diva plugins install someuser/somepluginSee code: @oclif/plugin-plugins
diva plugins link PATH
Links a plugin into the CLI for development.
USAGE
$ diva plugins link PATH [-h] [--install] [-v]
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ diva plugins link mypluginSee code: @oclif/plugin-plugins
diva plugins remove [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ diva plugins remove [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ diva plugins unlink
$ diva plugins remove
EXAMPLES
$ diva plugins remove myplugindiva plugins reset
Remove all user-installed and linked plugins.
USAGE
$ diva plugins reset [--hard] [--reinstall]
FLAGS
--hard Delete node_modules and package manager related files in addition to uninstalling plugins.
--reinstall Reinstall all plugins after uninstalling.See code: @oclif/plugin-plugins
diva plugins uninstall [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ diva plugins uninstall [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ diva plugins unlink
$ diva plugins remove
EXAMPLES
$ diva plugins uninstall mypluginSee code: @oclif/plugin-plugins
diva plugins unlink [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ diva plugins unlink [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ diva plugins unlink
$ diva plugins remove
EXAMPLES
$ diva plugins unlink myplugindiva plugins update
Update installed plugins.
USAGE
$ diva plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.See code: @oclif/plugin-plugins
diva service domain add
connect a custom domain to a service
USAGE
$ diva service domain add [-h] [-s <value>] [-d <value>]
FLAGS
-d, --domain=<value> domain name to connect, e.g. www.example.com
-h, --help Show CLI help.
-s, --service=<value> name of the service to connect the domain to
DESCRIPTION
connect a custom domain to a service
EXAMPLES
Pick the service and enter the domain interactively
$ diva service domain add
Connect a domain in one non-interactive command
$ diva service domain add -s my-app -d www.example.comSee code: src/commands/service/domain/add.ts
diva service domain remove
disconnect a custom domain from a service
USAGE
$ diva service domain remove [-h] [-s <value>] [-d <value>]
FLAGS
-d, --domain=<value> domain name to disconnect
-h, --help Show CLI help.
-s, --service=<value> name of the service the domain is connected to
DESCRIPTION
disconnect a custom domain from a service
EXAMPLES
Pick the service and enter the domain interactively
$ diva service domain remove
Disconnect a domain in one non-interactive command
$ diva service domain remove -s my-app -d www.example.comSee code: src/commands/service/domain/remove.ts
diva service list
list the services on your account
USAGE
$ diva service list [-h]
FLAGS
-h, --help Show CLI help.
DESCRIPTION
list the services on your account
EXAMPLES
List every service on the active account
$ diva service list
Switch account first, then list that account’s services
$ diva account use -u [email protected] && diva service listSee code: src/commands/service/list.ts
diva service logs
read the latest logs from a service
USAGE
$ diva service logs [-h] [-s <value>]
FLAGS
-h, --help Show CLI help.
-s, --service=<value> name of the service to read logs from
DESCRIPTION
read the latest logs from a service
EXAMPLES
Pick a service from an interactive list
$ diva service logs
Read logs for a specific service
$ diva service logs --service my-app
Search the logs for errors
$ diva service logs -s my-app | grep -i error
Save the logs to a file
$ diva service logs -s my-app > my-app.logSee code: src/commands/service/logs.ts
diva service resize
change the RAM, CPU and disk allocated to a service
USAGE
$ diva service resize [-h] [-s <value>] [-r <value>] [-c <value>] [-d <value>]
FLAGS
-c, --cpu=<value> CPU cores, in steps of 0.5 (e.g. 0.5, 1, 2)
-d, --disk=<value> disk in GB, in steps of 5 (e.g. 5, 10, 30)
-h, --help Show CLI help.
-r, --ram=<value> RAM in GB, in steps of 0.5 (e.g. 0.5, 1, 2)
-s, --service=<value> name of the service to resize
DESCRIPTION
change the RAM, CPU and disk allocated to a service
EXAMPLES
Choose the service and every resource interactively
$ diva service resize
Resize a service in one non-interactive command
$ diva service resize -s my-app --ram 2 --cpu 1 --disk 10
Set only the RAM and pick the rest from the prompts
$ diva service resize -s my-app --ram 4See code: src/commands/service/resize.ts
diva service restart
restart a service
USAGE
$ diva service restart [-h] [-s <value>]
FLAGS
-h, --help Show CLI help.
-s, --service=<value> name of the service to restart
DESCRIPTION
restart a service
EXAMPLES
Pick a service from an interactive list
$ diva service restart
Restart a specific service by name
$ diva service restart --service my-app
Restart, then tail the logs to confirm it came back up
$ diva service restart -s my-app && diva service logs -s my-appSee code: src/commands/service/restart.ts
diva service start
start a stopped service
USAGE
$ diva service start [-h] [-s <value>]
FLAGS
-h, --help Show CLI help.
-s, --service=<value> name of the service to start
DESCRIPTION
start a stopped service
EXAMPLES
Pick a service from an interactive list
$ diva service start
Start a specific service by name
$ diva service start --service my-app
Same, using the short flag
$ diva service start -s my-appSee code: src/commands/service/start.ts
diva service stop
stop a running service
USAGE
$ diva service stop [-h] [-s <value>]
FLAGS
-h, --help Show CLI help.
-s, --service=<value> name of the service to stop
DESCRIPTION
stop a running service
EXAMPLES
Pick a service from an interactive list
$ diva service stop
Stop a specific service by name
$ diva service stop --service my-app
Same, using the short flag
$ diva service stop -s my-appSee code: src/commands/service/stop.ts
diva version
USAGE
$ diva version [--json] [--verbose]
FLAGS
--verbose Show additional information about the CLI.
GLOBAL FLAGS
--json Format output as json.
FLAG DESCRIPTIONS
--verbose Show additional information about the CLI.
Additionally shows the architecture, node version, operating system, and versions of plugins that the CLI is using.See code: @oclif/plugin-version
diva wallet list
list the wallets on your account
USAGE
$ diva wallet list [-h]
FLAGS
-h, --help Show CLI help.
DESCRIPTION
list the wallets on your account
EXAMPLES
Show every wallet and its balance
$ diva wallet listSee code: src/commands/wallet/list.ts
