Using the Cloudron CLI tool (Part 2)

By Girish on Wednesday, March 8th 2017



In my previous post, we saw how the Cloudron CLI tool can be used to manage applications from your terminal.

In this post, we will see how to use the CLI tool to manage the Cloudron server using the cloudron machine command.

Installing Cloudron CLI

On Linux and Mac OS X, you can install the CLI tool on your laptop using the following command:

sudo npm install -g cloudron

As of this writing, the CLI tool does not work on Windows.

You can add the following command to end of your .bashrc or .zshrc for tab completion:

. <(cloudron completion)

Login to Cloudron

The first step is to login to your Cloudron. We will use the demo cloudron to test our commands.

$ cloudron login demo.cloudron.me

Enter credentials for demo.cloudron.me:
Username: cloudron
Password: cloudron
Login successful.

There is an analogous cloudron logout, in case you want to switch to using another Cloudron.

Eventlog

To view the various events on the Cloudron:

$ cloudron machine eventlog

When         Action         Source        Info
-----------  -------------  ------------  ---------------------------------------------------
6 hours ago  backup.finish  girish        Backup finished
6 hours ago  backup.start   girish        Backup started
7 hours ago  backup.finish  girish        Backup finished
7 hours ago  backup.start   girish        Backup started
7 hours ago  app.login      ldap          App 6b6dc7d6-...-10b879ab1533 logged in
7 hours ago  user.login     ca3117eb...   User uid-...-7ed3d1825832 logged in
7 hours ago  user.login     ca3117eb...   User uid-...-7ed3d1825832 logged in
7 hours ago  user.login     ca3117eb...   User uid-...-7ed3d1825832 logged in
7 hours ago  app.install    girish        App org.owncloud.cloudronapp@0.10.1 installed at oc
7 hours ago  app.install    girish        App org.ghost.cloudronapp@0.4.0 installed at ghost

View Info

To view DNS and Backup information, including the backup encryption key:

$ cloudron machine info

Cloudron cloudron.info info:

 Appstore:             https://api.cloudron.io
 Version:              0.103.1
 Provider:             digitalocean

Backup config:

 provider:             filesystem
 backupFolder:         /var/backups
 key:

DNS config:

 provider:             route53
 accessKeyId:          AKIAI0SBYOQVT6CUHNWQ
 secretAccessKey:      <snipped>
 region:               us-east-1
 endpoint:             null

Server Logs

To view logs use the cloudron machine logs command:

$ cloudron machine logs
Mar 08 03:10:04 my node[1726]: Box GET /api/v1/apps 304 17.428 ms - -
Mar 08 03:10:04 my node[1726]: Box GET /api/v1/cloudron/config 304 19.167 ms - -
Mar 08 03:10:04 my node[1726]: Box GET /api/v1/profile 304 8.818 ms - -

Mar 08 03:10:09 my node[1726]: Box GET /api/v1/apps 304 6.579 ms - -
Mar 08 03:10:09 my node[1726]: Box GET /api/v1/cloudron/config 304 9.266 ms - -
Mar 08 03:10:09 my node[1726]: Box GET /api/v1/profile 304 8.054 ms - -
Mar 08 03:10:11 my dockerd[1644]: 172.18.0.1 - - [08/Mar/2017:03:10:11 +0000] "GET / HTTP/1.1" 301 62 "-" "node-superagent/1.8.5"
Mar 08 03:10:11 my dockerd[1644]: 172.18.0.1 - - [08/Mar/2017:03:10:11 +0000] "GET / HTTP/1.1" 302 969 "-" "node-superagent/1.8.5"
Mar 08 03:10:11 my node[1726]: box:apphealthmonitor apps alive: [ghost|org.ghost.cloudronapp, oc|org.owncloud.cloudronapp]
Mar 08 03:10:14 my node[1726]: Box GET /api/v1/apps 304 6.384 ms - -
Mar 08 03:10:14 my node[1726]: Box GET /api/v1/cloudron/config 304 4.728 ms - -
Mar 08 03:10:14 my node[1726]: Box GET /api/v1/profile 304 3.337 ms - -

Managing server backups

Cloudron backups can be used to upgrade, restore and migrate servers easily. A complete server backup consists of two parts:

  • Platform data - This contains the platform database (app list, users & groups and other settings) and the TLS certificates. When the mail server is enabled, all mailboxes are part of this backup as well.

  • App data - One file for each installed app.

The CLI tool makes it easy to create, list and download server backups.

Create a backup

To create a complete server backup at this instant (note that backups are created automatically every night):

$ cloudron machine backup create
Waiting for backup to finish......
Backup successful

Listing backups

To list the Cloudron backups:

$ cloudron machine backup list

Id                                                        Creation Time             Version
--------------------------------------------------------  ------------------------  -------
2017-03-08-031910-383/box_2017-03-08-480_v0.103.1.tar.gz  Tue Mar 07 2017 19:19:15  0.103.1
2017-03-07-211336-653/box_2017-03-07-697_v0.103.1.tar.gz  Tue Mar 07 2017 13:13:41  0.103.1
2017-03-07-201237-649/box_2017-03-07-237_v0.103.1.tar.gz  Tue Mar 07 2017 12:12:43  0.103.1

Downloading backup

To download the backups:

$ cloudron machine backup download --decrypt 2017-03-08-031910-383/box_2017-03-08-480_v0.103.1-pre.0.tar.gz

Downloading backups:

2017-03-08-031910-383/box_2017-03-08-480_v0.103.1-pre.0.tar.gz
[================================================================================] 100%: 0.0s
2017-03-08-031910-383/app_6b6dc7d6-0aba-4e8e-a3f8-10b879ab1533_2017-03-08-398_v0.4.0.tar.gz
[================================================================================] 100%: 0.0s
2017-03-08-031910-383/app_ca3117eb-0b1b-4530-8a95-5e6f720f7d47_2017-03-08-355_v0.10.1.tar.gz
[================================================================================] 100%: 0.0s

If you download the encrypted backups, you can decrypt them using openssl aes-256-cbc -d -pass "pass:$pass" where $pass is the backup encryption key. You can then unpack the backup using tar zxvf <backup.tar.gz>.

We will see in a future post how you can migrate your Cloudron from one server to another easily using these backups.

Summary

The Cloudron CLI tool can be used to do various server related tasks on the Cloudron. To explore the CLI tool further, run cloudron machine help.