API¶
Cloudnode is build on a RESTful API that allows to execute all commands from the web frontend, the command line tool or a future client-side app.
We are currently running the “stable” version of Node.js v0.10.35 and we support Node.js VMs, we call Cloudnode machines. This means that you can install your own NPM modules. Git is required to push updates to your Cloudnode machine. The following API calls are defined:
Status¶
Get Status :: GET
/status - Returns platform status and number of apps running
$ curl https://cloudno.de/status
User¶
Register User :: POST (Coupon is required.)
/user - creates user account (pass in user and password and email
and id\_rsa.pub string) Ensure that all + in the ssh key are
substituted for their %2B counter parts, else your key will break.
Run this on your command line to copy your RSA string and swap out
the plus signs: "cat ~/.ssh/id\_rsa.pub \| sed s/'+'/'%2B'/g \|
pbcopy"
$ curl -X POST -d "user=testuser&password=123& \
email=chris@cloudno.de&rsakey=ssh-rsa AAAAB3NzaC1yc..." https://cloudno.de/user
Update User :: PUT
/user - update user account (pass in password and/or RSA key - "cat
~/.ssh/id\_rsa.pub \| sed s/'+'/'%2B'/g \| pbcopy")
$ curl -X PUT -u "testuser:123" -d "password=test" https://api.cloudno.de/user
$ curl -X PUT -u "testuser:123" -d "rsakey=1234567" https://api.cloudno.de/user
Delete User :: DELETE
/user - delete user account (requires basic auth)
$ curl -X DELETE -u "testuser:123" https://api.cloudno.de/user
App¶
Create Application :: POST
/app - create nodejs app for hosting (requires basic auth and
returns the port address required for use along with a git repo to
push to)
$ curl -X POST -u "testuser:123" -d "appname=a&start=hello.js" https://api.cloudno.de/app
Change Application :: PUT
/app - update starting app name (requires basic auth, appname, and
starting page and returns the port address required for use along
with a git repo to push to and running status of the app)
$ curl -X PUT -u "testuser:123" -d "appname=a&start=hello1.js" https://api.cloudno.de/app
Start/Stop Application :: POST
/app - start and stop your hosted nodejs app (requires basic auth,
appname, and running=true\|false and returns the port address
required for use along with a git repo to push to)
$ curl -X PUT -u "testuser:123" -d "appname=a&running=true" https://api.cloudno.de/app
Delete Application :: DELETE
/app - delete nodejs app (requires basic auth and appname)
$ curl -X DELETE -u "testuser:123" -d "appname=test" https://api.cloudno.de/app
Application Information :: GET
/app/ - get nodejs app info (requires basic auth and appname)
$ curl -u "testuser:123" https://api.cloudno.de/app/appname
Apps¶
All Applications Information :: GET
/apps - get all nodejs app info(requires basic auth)
$ curl -u "testuser:123" https://api.cloudno.de/apps
Env¶
Create/Update Environment :: PUT
/env - create/update environment key/value pair (requires basic
authentication, appname and key/value)
$ curl -X PUT -u "testuser:123" -d "appname=test&key=color&value=red" https://api.cloudno.de/env
Delete Environment :: DELETE
/env - delete environment key/value pair (requires basic
authentication, appname and key/value)
$ curl -X DELETE -u "testuser:123" -d "appname=test&key=color" https://api.cloudno.de/env
Get Environment :: GET
/env - get all environment key/value pairs (requires basic
authentication and appname)
$ curl -u "testuser:123" https://api.cloudno.de/env/test
NPM¶
Install/Upgrade/Uninstall NPM Packages :: POST
/npm - Allows you to manage the NPM packages for an application.
$ curl -X POST -u "testuser:123" -d "appname=a&action=install&package=express" \
https://api.cloudno.de/npm
$ curl -X POST -u "testuser:123" -d "appname=a&action=update&package=express" \
https://api.cloudno.de/npm
$ curl -X POST -u "testuser:123" -d "appname=a&action=uninstall&package=express" \
https://api.cloudno.de/npm
Appdomains - Add DNS A Record¶
Create Application Domain :: POST
/appdomains - create app domain for hosting example.com (requires
basic auth)
$ curl -X POST -u "testuser:123" -d "appname=test&domain=example.com" \
https://api.cloudno.de/appdomains
Delete Application Domain :: DELETE
/appdomains - delete app domain for hosting example.com (requires
basic auth)
$ curl -X DELETE -u "testuser:123" -d "appname=test&domain=example.com" \
https://api.cloudno.de/appdomains
Application Domain Information :: GET
/appdomains - get list of your domains (requires basic auth)
$ curl -u "testuser:123" https://api.cloudno.de/appdomains
CLI Commands¶
You can install our Command Line Interface by running “npm install cloudnode-cli”
cloudnode <command> <param1> <param2>
Commands are:
$ cloudnode coupon <email address>
$ cloudnode user create <username> <password> <email address> \
<file containing ssh public key> <coupon code>
$ cloudnode user setup <username> <password>
The commands below require you to have run ‘user setup’ before:
$ cloudnode user setpass <new password>
You should run user setup after running setpass.
$ cloudnode user setkey <file containing ssh public key>
$ cloudnode apps list
$ cloudnode app create <app-name> <initial js file>
$ cloudnode app info <app-name>
$ cloudnode app logs <app-name>
$ cloudnode app start <app-name>
$ cloudnode app restart <app-name>
$ cloudnode app stop <app-name>
$ cloudnode app gitreset <app-name>
$ cloudnode npm install <app-name> <package name>
$ cloudnode npm upgrade <app-name> <package name>
$ cloudnode npm uninstall <app-name> <package name>
$ cloudnode appdomain add <app-name> <domain-name>
$ cloudnode appdomain delete <app-name> <domain-name>
$ cloudnode appdomains
Git¶
Deploying and updating your Node.js application is simple.
$ curl -X POST -u "testuser:123" -d "appname=myapp&start=hello.js" \
https://api.cloudno.de/app
Upon creating or changing your application via our API, you will receive a Git repo URL from our API response. Add a Cloudnode remote to your project as follows:
$ git remote add cloudnode the_url_returned_by_our_api
Finally push your updates to your new Cloudnode environment as follows:
$ git push cloudnode master
Start your application.
$ curl -X PUT -u "testuser:123" -d "appname=myapp&running=true" \
https://api.cloudno.de/app
Visit your application via http://myapp.cloudno.de