Skip to content

Canary CLI Usage Guide

CLI Configuration

canary-cli cli set API_KEY secret-api-key
canary-cli cli set API_URL http://localhost:8001

Server Configuration

canary-cli config list
canary-cli config set KEY VALUE
canary-cli config unset KEY 

Authentication

canary-cli auth create foo-key --ssh > repo-key.pub

Optional: Import SSH Git-Key to Github as Deploy-Key

$ gh repo deploy-key add repo-key.pub
canary-cli auth create --import private-key-file.key
canary-cli auth create foo-key --pat ghp_foobar

not imeplemented

canary-cli auth list
canary-cli auth delete foo-key

Assign Authentication Key to a Project

canary-cli project update foo-project --key foo-key

Project

canary-cli project list
canary-cli project view foo/bar@main
canary-cli project delete foo-project
canary-cli project refresh-token foo-project 

Create Project

canary-cli project create foo-project --remote foo/bar@dev
canary-cli project create . --remote .
canary-cli project create foo-project \
  --remote git@github.com:user/repo \
  --branch main \
  --key foo-key
shortcut github repositories
canary-cli project create --remote foo/bar@main
use the current directory's name git remote as params
canary-cli project create . --remote . --key foo-key

Update Project

canary-cli project update foo-project --key foo-key
canary-cli project update foo-project --remote foo/bar
canary-cli update foo-project --branch dev

Deployment

canary-cli project deploy foo-project --start
$ canary-cli project deploy foo/bar@main --start
$ canary-cli project refresh-token foo/bar@main 
Trigger with curl
$ curl $HOST/deploy/project/rpO58I7odyQGsL0pz..

TODO: Github Webhook Setup

Get Status

$ canary-cli project deploy foobar --status

Secrets

set optional secrets for a project, these are for use the compose.yml and inside the container environment.

canary-cli project view foo-project --secrets 
canary-cli project update foo-project --set FOO_KEY bar-value 
$ canary-cli project update foo-project --unset FOO_KEY
$ canary-cli project update foo-project --import-env .env
$ canary-cli project update foo-project --copy bar-project FOO_*

not implemented

Page


canary-cli page list
canary-cli page create example.com
canary-cli page create example.com \
    --redirect www.example.com \
    --cors example2.com \
canary-cli page delete example.com
canary-cli page example.com deploy payload.tar

Create a Payload Archive

tar cf payload.tar -C public/ .
canary-cli page refresh-token example.com

Redirect


canary-cli redirect list
canary-cli redirect create www.example.com example.com
canary-cli redirect update www.example.com foo.example.com
canary-cli redirect delete www.example.com
Was this page helpful?