Nodester (Cloudnode Fork) is a free and open source Node.JS hosting platform and service for managing multi-tenant hosted NodeJS apps. It consists of an RESTful API that allows developers to create and manage NodeJS apps online as well as a command line interface to simply steps instead of using cURL. NodeJS apps names are assigned as subdomains that proxy to ports with an assigned addresses. Git is used to push updates to Nodester and instances (dynos) are launched using post-receive hooks so that they run until you stop them.
Give our platform a spin at cloudno.de
Please see install.txt for setup instructions (github.com/dvbportal/nodester/blob/master/install.txt)
STATUS /status - returns status of the platform and number of nodejs apps running curl -k https://api.cloudno.de/status APP /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 -k -u "testuser:123" -d "appname=a&start=hello.js" https://api.cloudno.de/app Get information about an app curl -k -u "testuser:123" https://api.cloudno.de/app/a Start or stop an app using running=true|false curl -X POST -k -u "testuser:123" -d "appname=a&running=true" https://api.cloudno.de/app curl -X POST -k -u "testuser:123" -d "appname=a&running=false" https://api.cloudno.de/app /app - update nodejs app for hosting (requires basic auth, appname, and starting page and returns the port address required for use along with a git repo to push to) curl -X PUT -k -u "testuser:123" -d "appname=a&start=hello1.js" https://api.cloudno.de/app /app - delete nodejs app (requires basic auth and appname) curl -X DELETE -k -u "testuser:123" -d "appname=test" https://api.cloudno.de/app /app - get nodejs app info (requires basic auth and appname) curl -k -u "testuser:123" https://api.cloudno.de/app/appname /apps - get all your apps info (requires basic auth) curl -k -u "testuser:123" https://api.cloudno.de/apps ENV /env - create/update environment key/value pair (requires basic auth, appname, and environment key and value) curl -X PUT -k -u "testuser:123" -d "appname=a&key=color&value=blue" https://api.cloudno.de/env /env - delete environment key/value pair (requires basic auth, appname, and environment key) curl -X DELETE -k -u "testuser:123" -d "appname=test&key=color" https://api.cloudno.de/env /env - get environment info (requires basic auth, appname) curl -k -u "testuser:123" https://api.cloudno.de/env/appname NPM /npm - install, update and uninstall npm packages to your application curl -X POST -k -u "testuser:123" -d "appname=a&action=install&package=express" https://api.cloudno.de/npm curl -X POST -k -u "testuser:123" -d "appname=a&action=update&package=express" https://api.cloudno.de/npm curl -X POST -k -u "testuser:123" -d "appname=a&action=uninstall&package=express" https://api.cloudno.de/npm
Installation of our Command Line Interface is simple using NPM.
npm install cloudnode-cli
Operations are as simple as nodester <command> <param1> <param2>. Here is a list of the commands available today:
cloudnode user setup <username> <password> The commands below require you to have run 'user setup' before/ cloudnode apps list cloudnode app create <app-name> <initial js file> <coupon code> 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 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>
Subdomains can be tested locally by editing /etc/hosts like this: 127.0.0.1 localhost a.localhost b.localhost c.localhost save etc/hosts and flush DNS like this: sudo dscacheutil -flushcache
http://localhost:80 = Homepage http://a.localhost:80 = Runs app associated with subdomain a on couch-configured port http://b.localhost:80 = Runs app associated with subdomain b on couch-configured port
We are always looking for areas to improve Nodester! Here are a few of the big ideas on our list
-
Setup public AMI running Nodester
-
Ability to start app with additional instances (dynos)
-
Horizontal scaling
Feel free to suggest improvements at github.com/nodester/nodester/issues
@ChrisMatthieu (twitter.com/chrismatthieu) @DanBUK (twitter.com/danbuk) @Marcosvm (twitter.com/marcosvm)
Cloudnode Fork @dvbportal (twitter.com/dvbportal) @cloudno_de (twitter.com/cloudno_de)
Ask questions and provide feedback in our google group at groups.google.com/group/cloudnode