Simple deployment


#1

Hello, I am evaluating Electron as the framework for a new application for a client. The client has specified a browser-based app because they say they do not want their users to have to install software on their computers. I would like to propose they use Electron and write a desktop app. Given that they do not wish to install anything on the users computer is there an easy, i.e. transparent, way of getting an Electron app onto a computer from a web site. I am thinking of a link on a web page that would download the Electron app, place it on the users computer, and create shortcut icons for the user to launch the app in the future.

Any input would be much appreciated, I would love to recommend they use Electron for these apps.
Sid.


#2

Unless you want to set up automatic updates or mess with other parts of the user’s computer, Electron is portable by default (especially if you package it manually). One of the packager programs makes an installer and the other one doesn’t and I don’t remember which is which (or where I read that).


#3

Yes thank you I understand there is a file copy only type of installation. What I need to know is there a method I can use that method from a web page so the user does not have to perform the file copy, it is done with scripting by the web page, including setting a shortcut to execute the app.

As I said, my client wants this seamless “installation”.
Thanks again,
Sid


#4

What you’re asking for, if I’m understanding correctly, is specifically disabled in web browsers as a security hole. If a web browser could execute a script that wrote a file to arbitrary locations on your system, it could easily write something somewhere to give an attacker control of your system against your will. This is why web pages run in a “sandbox” that prevents them from accessing the file system and any number of other things.


#5

But copying that browser based app is in fact installing software…

As for the installation it’s pretty painless. For OSX you can distribute a .zip file with your .dmg or .app. For Windows you could distribute an installer, or a folder with an .exe that the user can execute with zero installation.

AFAIK if you wish to update your apps with Squirrel (the default option in Electron) you are going to need to give your Windows users an installation exe or Squirrel will not work.

I hope Microsoft releases CodePush for Electron… Squirrel is a pita since you also need to setup a server to distribute your updates.


#6

Hi Pier, thank you for your comments, I understand the points you made. However what I am dealing with is a client that desires to remove the perception that their users need to “install” an application. What they want is an application that is delivered by a web server and is available for their users to run with no further action by the user.

What this means is that when the user clicks on a button or URL on a page on the device’s web server the application is delivered and silently place on the user’s computer and is then available to run. It is all about the perception of the process. Yes one could argue that downloading the application onto the user’s computer itself is “installing”, however from the user’s perspective all they did was click a link or button on a web page.

Sid


#7

@leedohm already explained why this isn’t –and should never be– possible. If this was to work a harmless application, it would work the same for any malicious application.

I remember that Internet Explorer used to have a dialog to open a downloaded executable right after downloading, that’s probably the closest you can get.


#8

I understand the need of making that process as painlessly as possible for your end users. We all face that.

Like I said, for Mac the process is really painless for the user. Either your users download and run an .app or you can even upload the app to the Mac App Store and release updates over there.

Windows has a few limitations. You can’t distribute a single file, you have to either distribute an installer or a folder with a bunch of files (and an .exe inside). And if you want to get Squirrel updates you need to distribute the installer.

You could maybe suggest to your client to use a Chrome app? These are being phased out, but will run for at least 2 more years. The distribution and installing is as easy as installing an extension although you don’t get Node.

Other than that if you can’t replicate your functionality on a regular website there isn’t much more you can do.


#9

Thanks again for the input, I totally understand the issues with file system access in-browser. I am hoping to convince my client that he should have two-tiered applications. Simple ones that do not require access to the local file system and are entirely browser-based. Obviously no download or installation required for those. Secondly, advanced applications that require access to the local file system would require to be downloaded/installed by the user.

It is so hard to understand why they are so paranoid about user interaction to get applications, but that is the reality I have to deal with.

Again, thanks for your considered and informative input,
Sid


#10

@sidprice another option could be to use the Mac App Store and the Windows Store. Users still have to install the desktop app but it’s a simpler process.

Check this repo: https://github.com/felixrieseberg/electron-windows-store

This allows you to upload your electron app to the Windows Store.


#11

Hey there @Pier, I’m new to this stuff. Can you tell me how to create a .dmg file after completing the application?
Thank you.


#12

See this simple step-by-step guide or have a look at one these CLI tools:


#13

Thanks a lot!
But i realized that i wanted to this application directly launch after double clicking and then i found electron-packager. I’t helped.