Converting Online Express App to an Offline App for distribution - windows

I have been trying to convert my express app with a backend that requires specific dependencies that users need to access to be an offline app on Windows, which is currently distributed online by building a docker image out of it and deploying it to Google Cloud Run.
My plan was to use electron and let the installer force the users to install Docker Desktop since the application requires dependencies that are only available in Ubuntu (and in this way, I only need to use my Docker image to distribute it).
I know that it is a bad idea to let users install Docker. And I am here, after researching for a week, to sincerely ask for your help on what would be the right direction to convert it offline.
Do I really need to refactor my application to be Windows compatible, or is there a way where I can use my existing implementation without using Docker? **
*Edit: Specified that my app has a backend that requires specific dependencies that users need to access. Credits to #super.

Related

How to build and deploy iOS application in a cloud?

I have an iOS application, which I can build and deploy with my MacBook.
Now I would like to automate this for CI/CD.
Is it possible?
I found following ways:
MacOS under Oracle Virtual box on non Mac machine. Works but in gray legal zone.
AWS mac.metal instance. Too expensive, since they require to rent instance for at least 24 hours.
CircleCI. Problems with 2-factor authorization.
Is there any common, clean and accepted way to do this?
Github Actions (documentation) supports building on macOS. That's probably going to be the easiest method for many people, because it's all built into Github, which is what almost everyone is using.

Configure Hosted Macos image

Is there any way to manually configure a Hosted Macos agent in Azure Devops? I mean, download the agent, install several dependencies, applications, frameworks and utilities to build the application that I need and then upload this image to use it in my agent pool. As I can see, just only predefined agents with predefined softwares are available.
No, it's not able to do this. Software on Microsoft-hosted agents is updated once each month.
For detail software and frameworks on hosted Mac OS image you could refer this link.
Microsoft-hosted agents do not offer:
The ability to log on.
The ability to drop artifacts to a UNC file share.
The ability to run XAML builds.
Potential performance advantages that you might get by using
self-hosted agents which might start and run builds faster.
If Microsoft-hosted agents don't meet your needs, then you should deploy your own self-hosted MacOS agents.

Docker ubuntu image with web server installed explicitly vs docker web server image?

What is the difference between Docker os image with web server installed with a web server and Docker webserver image ?
For eg Docker image of Ubuntu-16.04 running as container with NginX installed and other container running Nginx as Nginx Docker image?
Whose Performance will be better and stable ?
Usually a container with nginx runs in alpine os . a very lightweight os. While in the other hand you have ubuntu os and nginx.
So , the difference? ... the OS.
If you have good Docker/Unix/shell-scripting skills, a continuous-integration (CI) system, and the willingness to do ongoing maintenance, you might prefer building your own images. You will be in control of the exact version of the software used, and any build options or extensions required, and you will control when it gets security patches. But, this is a harder path to get started with, and if you don't periodically update your custom images they'll never get any sort of bug fixes or security patches at all.
If you're new to this space, you might prefer standard Docker Hub images. They're pre-packaged, usually have "enough" customization options, and are generally fairly good quality. But, if you need some extra customization, you might wind up needing to build a custom image anyways. I've also run into a situation where I've pinned an image to a specific upstream version image:1.2.3, and noticed several months later that image:1.2.7 is out, and the six-month-old Docker Hub image hasn't gotten a critical security fix because it's not getting built any more.
If none of this especially concerns you (and if you don't have a DevOps team at your disposal), I'd suggest just using the prebuilt nginx image and focusing on building and deploying your actual application.

IDE/Hosting issues w/ Meteor/WebStorm/Cloud9

My next work project is going to be using the Meteor framework. Our team recently got licensed to use WebStorm IDE, which has been our favorite up until this point. so we were planning on continuing the project with it.
That is, until it was time to install it. Then we found out that the Windows version of Meteor is only partially finished, and all of our development PC's are windows based.
So we were considering as a work-around for this, we may use Cloud9 as our development IDE, as it supports Meteor. The sharing functions may help our team productivity a bit as well.
But this has some problems...
First, we just invested in WebStorm, so we would ideally like to use it as our primary IDE. But I do not know how we would be able to work with WebStorm if we can not run an up to date version of Meteor on our windows systems?
Second, I'm not sure if it's even possible to use Cloud9 as the development IDE, but then move the C9 project over to our Ubuntu server for hosting when it is time to go live?
Third, even if we could deploy to our Ubuntu server after C9, we plan on many updates to our live application after deployment. I'm not sure if there would be issues with this if our development is on C9 and deployment on a completely different server.
So I'm wondering if anyone has a potential solution for these issues? Is there any way for us to work with Meteor on our live Ubuntu server, or Cloud9, from WebStorm on our Windows systems? Or any way we could integrate Cloud9 and WebStorm together for the best of both worlds? Or any way we could use a Linux emulator or something to allow us to use Meteor on our local windows system, without making it difficult for multiple developers to work on the project at the same time?
Thanks in advance!
The Windows port of Meteor actually is working quite well; the only major issue is that mobile development doesn't work. That is going to be fixed in Meteor 1.1 anyway, whose primary goal is to get Windows support up to that of Linux and Mac OS X.
As the user who initially pushed for Webstorm to add Meteor support back in October 2012, I'd recommend starting with Webstorm and Meteor on Windows right away, unless you need mobile development. In that case, you need native *nix machine (an Ubuntu VM on Windows won't be able to run the Android emulator, for example).
WebStorm also supports server-side Meteor debugging, and they're pretty responsive when it comes to fixing bugs you report on YouTrack. See for example https://youtrack.jetbrains.com/issue/WEB-13490
With Cloud9, you cannot currently SSH into a workspace you have, so a hybrid Webstorm/Cloud9 situation might not be doable at this point.
As for deploying your stuff from Cloud9, that is very doable. There's some documentation here about that: https://docs.c9.io/v1.0/docs/deploying-via-the-command-line

Mail.app plugins & Mac App Store

Does anyone know if the Mac App Store is allowing third party plugins for the Mail.app? With the new release of Mountain Lion, the security architecture will sandbox every signed application (and thus Mail) so that the process of installing a plugin is very limited.
The question is: since a plugin must use a private API (Mail.app doesn't expose APIs) and access private data from another application, how can this be accomplished within Mac App Store rules? Is it possible at all?
You never could publish plugins through the Mac App Store. The rules only allow for self-contained apps. You also couldn't sell an app that does nothing more than installing your plugin - the rules forbid apps to install any code in shared locations. And with the sandbox it's not possible either.
Your application would need to be usable without the plugin present. MsgFiler offers a good example: it works, albeit slowly, by itself, and offers a plugin downloadable separately from the App Store which speeds it up.

Resources