Package Web Application using AppImage?

Just getting started evaluating AppImage. I have noticed that most of the AppImages available are desktop applications is it possible to package a web application for deployment through AppImage along with nginx are other dependencies? I am trying to determine how things like logging will be handled.

Absolutely. Would something like Electron work for you or would you like to have the user use their default browser?

Can you share the app you want to distribute?

The app we are considering distributing is Percona Monitoring and Management server. It’s not candidate for Electron really. It’s a ‘standard’ web application which allows system administrators to manage and monitor MySQL and MongoDB databases across an Enterprise.

Due to the complexity of installing the application and it’s dependencies, we would like to deploy it as a pre-configured system. I am not sure how well this would fit into the AppImage model as the application really needs to run headless as a ‘service’ and not an application that is started and stopped based on the users need.

Currently we are distributing the application as a Docker container. Probably the easiest way to grok the scope of the project is to look at the Dockerfile in the main project.

Looks like this is what Docker is made for, no? What kinds of advantages are you looking for in using AppImage for this? I don’t see why it couldn’t be done, but you’d probably not gain terribly much in this use case.

We would like to avoid the dependency on Docker. Also, users have been affected by issues surrounding the devicemapper. It seems AppImage would be perfect if it had a headless service mode.

What do you mean by “headless service mode”? Just a CLI tool?

Sorry, just a misunderstanding of what AppImage is able to do. We are looking for a packaging solution that will allow us to encapsulate an entire multi-process web stack into a distributable package.

I don’t see why you shouldn’t be able to put it inside an AppImage. Think of the AppImage as a self-mounting ISO image that executes whatever you place in the AppRun file in its root directory. There are almost no restrictions what you can do. As long as your process runs, the AppImage will stay mounted.

1 Like