Packaging Meteor to be a local network App

I’m making an app that will run on the local network only cross platform, my non-windows package is working fine but the problems all occur from Windows and seeing as many people run it I want to support it. So I am wondering if dockerizing is still a viable route in 2022 (Get Started Running Meteor in a Docker Container) or if there is a better way to do this on Windows now?

I plan to make a docker image that Windows users can just install and it’s all running in there under a FreeBSD image, and then pull updates from a repo via a shell script. Is there a better approach?

If no additional API access is needed beyond what the web provides (eg access to the file system or background geolocation), then I’d take a look at PWA before moving to heavier options. Very simple to implement and maintain. And very simple to keep all apps up to date on client machines.

Thanks, I’ve been looking into it and found this guide to be quite insightful (Transform any Meteor App into a PWA - DEV Community)

Although maybe I wasn’t clear, I need essentially a icon that’s a one click to install style setup for boomers and non computer literate people, so I think docker and a shell script will be the way to go

This forum is a PWA app too. For me, on an android tablet in Chrome, installing it requires just opening it in Chrome, clicking Chrome’s 3-dot menu button on the top right and pressing “Install app”. Works on mobile and desktops as well. There is also the option to place a custom installation button in your app itself and control the installation flow yourself: Patterns for promoting PWA installation

The latter does have some variance depending on the platform, Apple is dragging their feet here. In general, PWA is not the answer in all situations, but it does cover an awful lot of cases and in many of these provides a really good UX as well.

I think we have crossed wires here I need to package a app for an admin to run on his local area network, this is for operating a server not packaging a client side software. Can PWA do that? Because maybe I’m missing something here but it seems this is for the client side and you’d still need to run your backend on a server somewhere, I need to make that entire process of running the server, mongo and filesystem to all be contained in one easy to use software - ideally double clicking an icon and filling in a installation wizard would be what I’d like to achieve.

Oh, ok. You’re talking about server side. In that case indeed PWA is not the answer and Docker probably is.

Ok bro so besides docker and vagrant there’s not really a one size fits all style installer for winblows et al… unless someone else out there knows… thanks for the ideas. It’s still been constructive

pwa is basically meaningless marketing hype, ALL meteor projects are already pwa’s. if you look at googles page for what is a pwa they just blabber on and on, without a clear direction What are Progressive Web Apps?

i think what you are talking about is how can you package up your meteor app to run on someones computer rather than deploy to a server. in the past i have used pkg to generate a self-contained binary containing node, npm packages, and my app. i have never used it with meteor but i can only assume that one could feasibly meteor build as they would when they deploy to a server to generate a “demeteorized” node.js file, and run that through pkg.

You still need some sort of mongoDB though. are you sure you’re not swimming against the tide?

I have about 6 meteor apps deployed on my local network at home, and all systems in my local network have access to the apps.

There are two wys o doing this.

  1. Allowing systems to access a dev version of the app by ip:address, or
  2. Setting up a full webserver system on a primary machine (I use apache on linux) and ‘deploying’ a build version to the webserver.

Actually, I have setup my primary server so that the apps are also visible by anyone on the web, but thats not a necessity.

I don’t use docker, nor PWAs.

Yup I’ve done the same and it’s all good, but for a non Linux user, I’m talking like windows is their world. I need a super easy double click and done method. I don’t want to be on customer support all day long with this.

For that reason I have opted to not use docker either and provide an complete iso build of a OS with Nginx, Mongo etc that will do it all right out the box they just have to boot from the image.

Thanks for your inputs guys, appreciate the responses.

I’m not sure you understand. After deploying, all users have to do (no matter their browser or os) is visit my sites at the urls i provide.
Within my local network, the urls is the local ip : port
When deployed, anyone can get to the sites from domain.name.

visit https://flatwarefinder.com - it is on my basement computer, and works for all os’s.

I understand. You should read up the thread. I am selling an app an admin will download and run. The admin is a end user. Not a developer or having any knowledge of computing. The app must be downloaded, one click install no thinking at all.

I already have it running as you described since day one, it’s very easy.

I am selling software with a license for admin users to run their own server inside of their private lan because it contains government required material that cannot be put on the cloud.

OK. I understand now what you want. But is it not possible they could run your app from where it is with you, but have it access their data, not yours?

No sir, absolutely not. That would be a felony with charges of 20 years in prison and a $1mil fine for every instance. It’s perjury.

The data must be secured on their own server and cannot be uploaded to any cloud under any circumstances. It cannot be accessed by anyone who isn’t authorized and only by the owner or by a federal entity.

im not suggesting it be uploaded to your server - but i hear that your are needing it to not let their data out of their network. interesting issue. what about remote users of their data, or do they have none.

LAN only authorized access by a handful of operators. Even in corporates it is only a select user base, all super admin.

If your app is meant to process confidential government data that is subject to very strict security requirements that are enforced with the threat of long imprisonment and million dollar fines, then is it really a good idea to have the apps deployed by people with “no knowledge of computing”? Especially with the general movement towards zero trust computing putting less emphasis on the merits of LAN isolation. Should something bad happen, it might not be completely guaranteed that somebody does not try to place at least some liability on you as well, especially if you specifically have targeted “one click, zero thinking” installation flow.

1 Like

It just has to run on the LAN in a simple to install way. Just like all government software. You think the guys who look after you are coders? Come on man. Get real.

This forum sure is a weird place.