CLI

Qovery provides a very easy to use CLI (Command Line Interface) designed to fit the developer workflow perfectly.


The purpose of the CLI is to integrate seamlessly with your development workflow:

  1. Write code
  2. Commit
  3. Qovery - deploy a new version of your application
  4. Qovery CLI - check the status of your application
  5. Qovery CLI - debug your application
  6. Repeat

First usage

Install

To download and install Qovery CLI on any Linux distribution:

$ curl -s https://get.qovery.com | bash

Sign up

# Sign up and sign in command
$ qovery auth

Your browser window with sign-in options will open.

Qovery Sign-up page

Click here to authorize Qovery to clone and build your applications.

Connect Github

Congratulations, you are logged-in.

Help

You can see all the commands available by executing:

$ qovery help
Help output
$ qovery help
A Command-line Interface of the Qovery platform
Usage:
qovery [command]
Available Commands:
application Manage applications
auth Log in to Qovery
completion Generate the autocompletion script for the specified shell
console Opens the application in Qovery Console in your browser
container Manage containers
context Manage CLI context
cronjob Manage cronjobs
database Manage databases
env Manage Environment Variables and Secrets
environment Manage environments
help Help about any command
lifecycle Manage lifecycle jobs
log Print your application logs
service Manage services
shell Connect to an application container
status Print the status of your application
token Generate an API token
upgrade Upgrade Qovery CLI to latest version
version Print installed version of the Qovery CLI
Flags:
-h, --help help for qovery
Use "qovery [command] --help" for more information about a command.

Context

Context command lets you configure the CLI to work with your chosen application. Before executing other commands, you need first to set up the context. The context is then remembered and used by the CLI. You can configure a new context anytime by running the qovery context set command.

Set New Context

To set a new context, type qovery context set:

$ qovery context set
Qovery: Current context:
Organization | Qovery
Project | test
Environment | development
Application | website
Qovery: Select new context
Organization:
✔ Qovery
Project:
✔ admin
Environment:
✔ main
Application:
✔ app
Qovery: New context:
Organization | Qovery
Project | admin
Environment | main
Application | app

Print Current Context

$ qovery context
Qovery: Current context:
Organization | Qovery
Project | admin
Environment | main
Application | app
Qovery: You can set a new context using 'qovery context set'.

Log

Log command allows you to display the application logs.

$ qovery log
TIME MESSAGE
Jul 15 08:46:13.019717 at /usr/src/app/autoFunctions/levels.js:17:16
Jul 15 08:46:13.019721 at Array.forEach (<anonymous>)
Jul 15 08:46:13.019724 at Timeout._onTimeout (/usr/src/app/autoFunctions/levels.js:15:14)
Jul 15 08:46:13.019728 at listOnTimeout (internal/timers.js:557:17)
# ... the rest of logs

By default, the last 1000 logs is displayed.

Follow Logs

To make the CLI follow your logs, use -f flag:

$ qovery log -f
TIME MESSAGE
Jul 15 08:46:13.019717 at /usr/src/app/autoFunctions/levels.js:17:16
Jul 15 08:46:13.019721 at Array.forEach (<anonymous>)
Jul 15 08:46:13.019724 at Timeout._onTimeout (/usr/src/app/autoFunctions/levels.js:15:14)
Jul 15 08:46:13.019728 at listOnTimeout (internal/timers.js:557:17)
# ... the rest of logs

This will make the CLI follow your application logs and append any new logs till you use CTRL+C.

Status

Status command lets you print the basic status of your application.

$ qovery status
15 Jul 21 10:55 CEST
Application | Backend
Status | RUNNING

Console

Console command quickly opens the Qovery Console in your browser to let you display more information about your application.

$ qovery console
Qovery: Opening https://console.qovery.com/platform/organization/your-org/projects/your-proj/environments/your-env/applications/your-app/summary

Shell

Shell command allows you to open an ssh connection with the container where your application is running (application selected via the cli context).

$ qovery shell
/ # ls
bin media srv
dev mnt sys
docker-entrypoint.d opt tmp
docker-entrypoint.sh proc usr
etc root var
home run www
lib sbin

Generate API token

To use the Qovery API you will need to generate an authentication token. To generate an API token you can install the CLI and type

$ qovery token
Qovery: Select organization
Organization:
✔ My Organization
Choose a token name
Token name: Romaric
Choose a token description
Token description: used for Github Actions
Qovery: ---- Never share this authentication token and keep it secure ----
Qovery: qov_4LnEg2wFxxxxxHObGSQ22rjBZZyyyySgyR6Y_2500882691
Qovery: ---- Never share this authentication token and keep it secure ----

To use your token and list your organizations.

curl -X GET -H 'Authorization: Token qov_4LnEg2wFxxxxxHObGSQ22rjBZZyyyySgyR6Y_2500882691' https://api.qovery.com/organization

Check out our API documentation

Managing services and environments

The CLI allows you to manage and deploy the environment and services within your organization

### application, container, lifecycle, cronjob These commands allow you to manage all these services via the CLI. You can run the following actions on these services:

  • cancel: Cancel the service deployment
  • delete: Delete a service
  • deploy: Deploy a service
  • list: List the service of the specified type
  • redeploy: Redeploy a service (already deployed before)
  • stop: Stop a service

Each action allows you to specify additional parameters to define the service you want to modify (you can find them via the --help command)

Example: Listing applications and triggering a deployment

$ qovery application list
Name | Type | Status | Last Update
backend | Application | STOPPED | 2023-02-02 14:48:05.339652 +0000 UTC
front-end | Application | STOPPED | 2023-02-09 14:04:38.079792 +0000 UTC
$ qovery application deploy -n "backend"
Deploying application backend in progress..
$ qovery application list
Name | Type | Status | Last Update
backend | Application | RUNNING | 2023-02-13 12:59:23.228231 +0000 UTC
front-end | Application | STOPPED | 2023-02-09 14:04:38.079792 +0000 UTC

Environment

The command environment allow you to manage a specific environment via the CLI. You can run the following actions on environments:

  • cancel: Cancel an environment deployment
  • clone: Clone an environment
  • delete: Delete an environment
  • deploy: Deploy an environment
  • list: List environments
  • redeploy: Redeploy an environment
  • stage: Manage deployment stages
  • stop: Stop an environment

Each action allows you to specify additional parameters to define the service you want to modify (you can find them via the --help command)

Example: Manage deployment stages and triggering deployment

~ $ qovery environment stage list
# deployment stage 1: "DATABASE DEFAULT"
Rename me to avoid default/legacy ordering
Type | Name
DATABASE | Redis
DATABASE | DB
# deployment stage 2: "JOB DEFAULT"
Rename me to avoid default/legacy ordering
<no service>
# deployment stage 3: "CONTAINER DEFAULT"
Rename me to avoid default/legacy ordering
Type | Name
CONTAINER | Rabbitmq
# deployment stage 4: "APPLICATION DEFAULT"
Rename me to avoid default/legacy ordering
Type | Name
APPLICATION | Backend
APPLICATION | Frontend
APPLICATION | Pablo Backend App
APPLICATION | API gateway
~ $ qovery environment deploy
Environment is deploying!

Managing the Deployment Pipeline

In the following sections we will describe how to modify the Deployment Pipeline.

List stages

You can list all the stages of your environment by using the following command:

qovery environment stage list

Add a stage

You can add a new stage by using the following command:

qovery environment stage create -n <name> -d <description>

Note that the stage will be added at the end of the pipeline (the highest number)

Modify a stage

You can modify a stage by using the following command:

qovery environment stage edit -n <original name> --new-name <new name> --new-description <new description>

Delete a stage

You can modify a stage by using the following command:

qovery environment stage delete -n <name>

Change stage for a service

You can modify the stage associated to a service by using the following command:

qovery environment stage move -n <service name> --stage <stage name>

Support

Do you have any issues with Qovery CLI? Open an issue.