Personal coding environment
Why? While I am commuting or if I have a break during my lunch, I would like to have access to my personal projects without bringing my laptop with me.
If you think that this article has interested you, please share it.
I am regularly developing in Java/Vue.JS and Node.JS
For my personal active projects, I have already set up a rather effective but cheap CI/CD pipeline. I am using :
- Private GitHub repositories ($$)
- A retrofitted laptop as CI/CD server with an SDD available from my home using the DSL connection.
- Another laptop as a UA/pre-production webserver also available from my home
- An OVH Server or GCloud Kubernetes instances for production using Docker.
- Taiga.io as a task/backlog planning tool.
I made the choice to not use a Saas CI/CD solution since their pricing is quite unreasonable. If you doubt it, just have a look at Travis.ci pricing.
It just plain cheaper to build a dedicated server on OVH and set up your Jenkins X + Kubernetes.
Therefore I have simply deployed at that time, Jenkins 2.0, some useful plugins and deployed in few hours scripts to deploy automatically my new projects using Node.JS, PM2, and Vue.js
I am not using Ansible/Chef whatever. When you are efficient in UNIX shell scripts and with few machines to handle, the added value of these solutions is quite dubious.
You win :
- No black magic
- No f*cking YAML (I hate this syntax, I prefer plain XML)
- Repeatability and experiments: critical when you are handling with GCloud commands and kubectl instructions. Otherwise, you will never get the required experience, if you are relying on plugins for Jenkins/Ansible, etc.
- 1 The quest for a self-hosted Cloud IDE in 2018
The quest for a self-hosted Cloud IDE in 2018
Before answering the traditional question: why not using a Saas CLOUD IDE? I am already using them.
The first reason is that I am encountering some difficulties to use them since their authentication protocols are relying on SSO (GitHub, Google) which are often blocked inside corporate companies and some public wifi.
The second reason is that I was curious to have my own Cloud IDE environment and maybe the possibility to tweak it for my personal needs.
The third reason is also a reason for Cost/Pricing and Open-source adoption. I have been using open-source tools and try to help the community. That’s why I am giving a try to full open-source solutions.
Therefore I made a small curated list of really open-source Cloud IDE (partly extracted from https://alternativeto.net/software/paizacloud-cloud-ide/?license=opensource):
- website codiad.com
- Eclipse CHE
- Eclipse Orion :
- Read below
- CodeBoxIDE (DEAD)
- AWS Cloud9 IDE
- Glitch (DEAD)
Eclipse IDE: Orion vs CHE
I wondered a long time to understand why Eclipse produced two web-based IDE (Orion and CHE) until I read this article: https://jaxenter.de/eclipse-che-orion-visual-studio-code-42531
Eclipse ORION is embedded in Eclipse CHE. Therefore I don’t have to choose. Go for Eclipse CHE.
Codiad: simple and easy to install
I have kept Eclipe CHE and Theia since I really love VsCode (compared to Atom).
I played a bit with Codiad.
A big plus is the embedded authentication. It will add a second level of protection with a Proxy Htpasswd if you want to use it on the internet.
It’s a basic WEB IDE. Wit highlighting but lacking most text editor features. You can complete it with some plugins and notably GIT Plugin. Without this plugin, Codiad would have been useless.
Codiad requires PHP and a LAMP installation, it’s rather easy to be installed.
Eclipse CHE: The power of Eclipse in a web browser
As I mentioned previously, I am regularly coding in Java and the Web-based IDE offer is quite poor for backend programmers. Our languages are statically typed and the need for refactoring functions is compulsory when we are dealing with some mature codebase.
The advantages coming with Eclipse CHE are :
- Most of the refactoring tools already present in Eclipse
- GIT / Maven / Gradle integration : yeah
- Look & feel, shortcuts to maintain the coder productivity
- Workspace management if you have multiple projects
The drawbacks are the lack of authentication management (github issue). For this reason, you need to be extra careful and set up a reverse proxy (or a VPN) to secure access to your IDE or switching to CodeEnvy.
Last minute: It seems that the authentication has been integrated, I discovered it during the process of article review (https://www.eclipse.org/che/docs/user-management.html) hidden in the documentation.
About the installation, I will evoke it in a future article, so please stay informed.
Codeenvy: Eclipse with a salt of industrialization
I discovered that you could install Codeenvy using Docker. I will compare the two solutions after having them installed successfully in a coming article.
Theia: you love VsCode and are a Frontend dev, give it a try
Theia is a rather recent and active new project on Github with the purpose to deploy VsCode (http://code.visualstudio.com/) in a web-based browser.
Link to the project: https://github.com/theia-ide/theia
Docker project: https://github.com/theia-ide/theia-apps#theia-docker
The amazing young project can be deployed as simply as :
docker run -it -p 3000:3000 -v "$(pwd):/home/project:cached" theiaide/theia:next
At the time I am writing this article, I am missing some information about the installation of these products. However, they are definitely my TOP 3 of Cloud/Web-based IDE for self-hosting solutions.
What about your own choices?
Interesting articles :