Self Hosted Open Source Cloud IDE
Well, the problem I wanted to solve was to access my IDE anywhere from any device to code at will. I wanted to setup, once for all, a Dev Env regardless my new professional laptop. I'm working for a Telco corp and I have the opportunity to land a new position every 2 or 3 years. A new job comes with a new laptop, new hardware, new IT security policy, and new Dev Env to setup. It's painful and time consuming to reinstall LAMP, LEMP, Django, node, NGINX proxy Apache, all applications server to deploy a Dev Env as close as possible to the Production Env. I partially solved the problem by installing a virtual image . But this solution requieres VirtualBox or VMWare installed to host my image. This solution is also very dependent to the hardware resources. At the time this post is been posted, my laptop is:
- Microsoft Surface Pro 4:
- Processor = i5-6300 CPU @ 2.40GHz 2.50GHz
- Installed memory RAM = 4.00 GB
- System type = 64-bit Operating System, X64-based processor Windows 10
- Hard Drive = 128 GB
As explained in my previous post, I'm a Debian addict, and I couldn't imagine installing another linux-like distribution. Sounds weird and creepy writing this... Surface Pro 4 cannot host Windows 10 and a virtualized Debian. The host OS nor the hosted OS couldn't work efficiently. So I decided to study Cloud IDE solutions.
First, I'd like to raise the following question: Why should you use a cloud IDE ? Online IDEs remove a large part of the hassle of having to set up a plethora of tools even before any coding can begin, they can be accessed from any computer, can be easily shared and make it easier for everyone contributing to have the same setup. Online IDEs allow building, testing and previewing projects in the cloud. The obvious drawback to online IDEs is Internet dependency. They can quickly become unreliable if there's any chance of Internet outages. This question has also been answered by Ivan Burazin, CEO & Founder of Codeanywhere on Quora on Jul, 24, 2016. Here is the answer:
Cloud IDE saves developers time, by enabling them to access code from any device, spin up a development environment in seconds, and enables them to share their files, folders or entire development environments to collaborate together in real time. More specifily it offers these features that a desktop IDE just cannot:
1) Works on any device - Cross-platform Cloud 2) No setup - 1-click containers or we create it from GIT 3) Collaboration features 4) Platform Agnostic - Connect any hosting/cloud vendor (integrations with all coming)
Hum, that sounds pretty impressive, cutting-edge technology embedded and suitable to my needs! Yes indeed, it is. I browsed the web to get more opinions about Cloud IDE advantages and followed a passionated discussion on Reddit
So I gave a try and studied the competition. There are plenty of Cloud IDEs out there, and this trend is getting popular. Cloud web services are the future, aren't they?
Checkout below service providers you can find online
I paste a link here codegeekz, to get extra details about features and pros / cons. The question "What are the best cloud-based IDEs?" has been answered on Quora. I was focus on a free open source and self hosted Cloud IDE with terminal access feature. I installed Codeenvy, Koding, Eclipse Che, and Cloud9 for testing and because they matched my filter.
To summarize I adopted Cloud9 SDK which was, for my needs, the best match. Koding is very well designed solution with strong integration, but I never succeeded to self host it with fine tuning. Same with Codeenvy and Eclipse Che. Docker install is not my cup of tea; Docker images are too restrictive and make the mindset of open source freedom just vanish.
Below you can see my cloud IDE up and running, accessing through https:
In short, Cloud9 SDK solved all my coding needs on the go, anytime, anywhere and on any platform! Now I can access my repositories on the go, ssh all my VPS via terminal feature, configure my Dev or Production Env, push / pull code, with a simple https connection. Last but not least, Cloud9 SDK allows you to run a version of Cloud9; you can develop plugins and create a custom IDE based on Cloud9. A major feature is missing in this SDK: there's no authentication session. Collaboration, coding on the same project at the same time is tricky. Only a basic Auth username:password is setup and all users connect as John Doe.This is one of the project I want to achieve: develop an authentication method for login and collaborate with several Dev on my open source self hosted cloud IDE platform.
Last year, Cloud9 announced that they are acquired by Amazon Web Services. Will Cloud9 continue to improve the product and support the open source community...?