Getting started with Neutralinojs cloud preview version + AWS EC2

Shalitha Suranga
NeutralinoJs
3 min readAug 26, 2018

--

We have a existing news 🤩 , Neutralinojs cloud preview version is released!. Today I am going to show you how to run neutralino cloud on AWS EC2.

One of my previous article said about an experiment that gives full access to virtual machine to frond end users. So we have developed something more and released v1.0.4-alpha with the features as per below.

  • Blacklisting specific functions
  • Two modes — desktop and cloud

Jumping In to the Game..

So very first.. If you don’t have an AWS account and you are an undergraduate, simply apply AWS Educate and get free credits 😍.

Creating an EC2 instance

Create an instance using a fresh Ubuntu image because neutralinojs supports Linux.

Connect with PuTTY

Use PuTTY ssh client if you are using windows otherwise use ssh command on Linux.

Exposing port to outside

Default port of neutralino is 8080 (You can set another by editing settings.json). Then we need to add inbound TCP rule in AWS.

Click instance -> select security group -> edit inbound rules -> Add rule

So now anybody from outside has access to 8080 port

Setting up neutralinojs

ssh into instance and continue with these commands.

Download and extract Neutralinojs-v1.0.4-cloud.zip

wget https://github.com/neutralinojs/neutralinojs/releases/download/v1.0.4-alpha/Neutralinojs-v1.0.4-cloud.zip
unzip Neutralinojs-v1.0.4-cloud.zip

Start neutralinojs

chmod 770 neutralino
./neutralino

Go ahead and open your browser, type <public dns or public ip> :8080/myapp

Cloud configuration

See app/settings.json configuration file

{
"appname" : "myapp",
"appport" : "8080",
"mode" : "cloud",
"cloud" : {
"blacklist" : ["os.runCommand"]
}
}

mode is set in to cloud. it will disable self killing feature(Removing neutralino server process when browser is closed) and it will check blacklist per each os native call.

Testing blacklist

Open console and play with this snippet

Neutralino.os.getEnvar('USER', (e)=>{console.log(e)}, ()=>{})

Obviously this one will return ubuntu 😋

Hm.. play with this too

Neutralino.os.runCommand('ls', (e)=>{console.log(e)}, ()=>{})

No you can’t 😎 it gives this response

{
error: "Cloud permission error!"
}

This is because we added os.runCommand to blacklist

Usage of neutralino cloud

If you want to take control of your virtual machines or bare metal servers or even your computer inside a private network give a try with neutralinojs cloud.

Also for controlling your devices withing a private network using mobile app. cool! you can use neutralinojs easily.

I’ll come with another article and show you cool scenario to apply neutralinojs cloud 😎.

Conclusion

Neutralinojs is still under development process and all releases are unstable. We are planning to develop macos implementation too. Thus there are few issues with Linux version too.

Give us a star! 😍 support us..

Happy coding!!

--

--

Shalitha Suranga
NeutralinoJs

Programmer | Author of Neutralinojs | Technical Writer