cloud9hub
cloud9hub copied to clipboard
A workspace dashboard for Cloud9
Cloud9Hub
What's this?
It's a simple interface for the Cloud 9 open source edition to easily create, use and manage multiple workspaces. The Cloud9 service has a shiny and awesome dashboard interface where you can manage multiple workspaces, however the open source edition is a single workspace instance of Cloud9.
As I like the possibility to easily start working on different workspaces, create or delete them, I created Cloud9Hub to do so.
What's Cloud9?
A full-blown IDE in your browser. It has a full terminal integration, can run and deploy code of different languages (e.g. Ruby, node.js, PHP) and lots more.
Status Quo of Cloud9Hub
Right now it can
- Create new workspaces
- Launch multiple workspace instances
- Kill them automatically after 15 minutes
- List available workspaces
- Delete workspaces
- Manage multiple users
- Do authentication/sessions
- Sense, that you're active and will kill your workspace after 15-20 minutes of inactivity.
right now. These are the next steps for me to build (or you make a Pull Request with the features you want).
Installation
First you will need node.js, at least v0.8.
Then you can try the quick install or the manual way:
Quick install
curl https://raw.githubusercontent.com/AVGP/cloud9hub/master/install.sh | sh
This should install Cloud9 and Cloud9Hub into the current folder. If this succeeded, you can now go to the configuration section.
Manual installation
- Install Cloud9 into some folder, say
/var/awesomeness/cloud9. **Note, the cloud9 is currently hardcoded to c9. when cloning cloud9, clone to c9 dir. If this isn't done, hub will crash. - Then install Cloud9Hub into the parent folder above your cloud9 installation, so in my example
/var/awesomeness/cloud9hub` and runnpm install``.
Configuration
First things first: You need a Github application to provide the "Login with Github" feature, which is currently the only login mechanism.
Go to https://github.com/settings/applications/new and create a new application. Note down the client ID and secret, you'll need them later.
Now copy the config.js.example to config.js and edit the contents:
- Add your Github client ID and secret
- Change your BASE_URL to your server's address (do not include the port!)
Firewall
You will need ports 3000 and 5000 to however many connections will be taking place concurrently (each session is given a different port)
Running as a daemon
If you wish to, you can run it as a daemon, so that it stays alive.
To do so, I recommend forever.
License
This project: MIT License, baby. Cloud9 itself: GPL
WARNING
This is highly insecure, experimental and it may bite.