C9 is a web-based RDP gateway with an on-premise forwarder that allows access to servers on private networks without a VPN connection.
C9 is forked from mstsc.js, a pure Javascript Microsoft RDP (Remote Desktop Client) client using node.js, node-rdpjs and socket.io. It allows you to connect to any terminal server compatible application, through a web browser (optimized for Firefox, but compatible with Chrome and Internet Explorer 11 too).
git clone https://github.com/edwinbs/c9server
npm install
node server.js
The frontend application uses socket.io and canvas for binding with mstsc.js backend. The front-end is in charge of bitmap decompression through rle.js file. This file is generated by Emscripten from rle.c which comes from rdesktop source.
The backend application uses node.js, express and socket.io as the web server. The main goal of the backend is to be a proxy between the web browser and the terminal server. It uses node-rdpjs for its rdp client.