Is it possible to install ERPNext from a snap package?

I will give that a try, thanks!

And I don’t doubt at all that snapping up the docker containers would add extra bloat, but I figured if they went that route they would notice less support requests, and then maybe in the future trim it down a bit, but in the meantime maintaining the snapped up docker images wouldn’t be a lot of overheard.

Looking forward to getting this running! :smiley:

How did it work?

I had actually gotten ERPnext working in Docker, but it was in a very fiddly state. I decided at the time I didn’t have enough time to play with it anymore but I am back again and trying! Funny enough I may just need to try LXD since its not playing nice with Apache

I use LXC. It’s more performant and easier than the Docker.

1 Like

yes yes erpnext guys, please wake up! make transition to snap installation and make your system installable with one only command! like for example Nextcloud server >> sudo snap install nextcloud!!! whole installation is done in 10-15 min and every user can do it! You are still promoting and favoring docker or lxd containers? So you are not thinking and caring about your customers/users and your future!

You can do it and just once! Then ERPnext can grow <3

wrong! snap is completely another dimension than appimage (which i use and like) but we are talking about server installation etc and there my friend appimage or flatpak etc are lost cases compared to snap.

I would appreciate snap as I expected the docker version to be easy but it seems more complicated than a manual install. With ensuring you have docker-compose-v2 now coming with docker-desktop (does that work on a gpu less server?). Do you use the apt docker or follow the docker sites install instructions on Ubuntu 22.04?

I’m a Linux expert that has never used docker before and it has been over an hour and I haven’t really got past

git clone https://github.com/frappe/frappe_docker
cd frappe_docker

Edit:
Okay after installing docker-compose-v2 via apt

docker compose version

Gives: Docker Compose version 2.20.2+ds1-0ubuntu1~22.04.

So I guess that is all good?

Edit2:
So I somehow missed the easy install script and went straight to

https://github.com/frappe/frappe_docker

ERPNext is a complex software to install right now!

I have counted about 13 individual parts that need to be installed and fit all together!

I don’t believe this can be easily achieved on snap, but may it’s just my lack of experience with snap!

I have frappe running on docker with a decent configuration!

I use 3 stacks of services

  • background

    • redis
    • workers
  • backend + socketio

  • frontend

Whenever I wanna a new installation I only need to spin up a new frontend service!

To manage those stacks I’m using Coolify on the host, and N8N as automator

Fair enough. I might just do a manual install.
I tried the default easy script and tried modifying it for no_proxy which is commented as TODO.

In both cases I get 404 not found either from traefik or docker-proxy in the compose.noproxy.yaml case.

I came across this but multiple docker services seem to have sites and bench so perhaps a manual install without docker would actually be easier.

Any pointers would be appreciated

My dear Erpnext guys, please hear me out again! Sure i’m not well informed about Erpnext/frappe and my previous posts may seem stupid. I accept my ignorance and I wanna learn and I know erpnext is epic and you know what are you doing! <3

But again from user perspective, and I’m advanced linux user and admin, and from marketing point of view I can’t understand why you would not create ErpNext snap install?!!!

Do you want your user to be able to install your system fast and easy? Please make once and for ever snap installation!

Why? Because the user would be able to install erpnext and all it’s components with only one command ‘sudo snap install erpnext’

Ofc some work on your side, but just once!

I’m using Nextcloud server as snap from 2018/2019 and i haven’t seen anything easier as this!

You set up your vps server, security etc and then only one command to install what you want!

No need to download anything, setup anything, configure anything system wide (only App wise after installation).

Tell me what is better than this? I’m using snap Nextcloud server from 2018 until now without any problem. All works great, all is updated automatically, I’m just updating server and focusing on Nextcloud! From 2018 every time any of my customers needs cloud solution I just create vps server with only one command in few minutes as any amateur could!

Don’t you want any amateur to be able to install ERPNext easy as that?

More people using ERPNext = the bigger community and success, which is my only motivation and reason why I write this.

Marketing nowadays is customer success.

Imagine any of your customers can get your system with only one command ‘sudo snap install erpnext’ and never care about anything else besides using ERPNext!

The way I install setup and use Nextcloud server! Just one command and then you only manage Nextcloud admin, apps, users, thru browser (no need care about anything besides keeping server updated).

I’ve already tried install erpnext few times and let me tell you not so easy. Donwloading 20GB containers seems easier but customer wise not that much with learning dockers etc stuff which i can ofc.

But from marketing point of view I don’t see anything better than snap installation of ERPNext!

Same as nextcloud server which I’m using from 2018!

You do it once and then anybody can install your beautiful ERP solution with just one command!

Besides we all know your solution is kinda complicated, but complete, holistic and pretty awesome! (and i’ve tried many erp solutions)

so … just my little honest thoughts and wishes!

<3

I have moved to a manual production install on Devuan/runit and I am much happier with all my security, management, networking and update questions intuitively resolved. Docker complicates all of that. Devuan obviously negates snaps which require systemd so I have changed my mind about any desire for a snap. I have also since found snapd to be slow on some hardware compared to e.g. apt.

1 Like

Touché

Isn’t docker kind of a commercial(ized) wrapper around linux’s cgroups?

Which upgraded to swarm and kubernetes because they risked being left behind by google’s world system?

So, now there are different kinds and types of wraps.

Just like different OSes which just package different shells around CPUs, memory and IO-devices, in different styles, commercialized or not.

And how could you well understand a docker installation without having experienced it in manual installs?

And without reading docker documentation about the interaction of the wrapped parts and the surroundings of an image with it’s containers and overlay network stuff?

Etc.

Projects advance and grow, engineers also are people who learn and grow, and so is the user collective made of people, even if nowadays they are called ecosystem as if it were a mass of animals and plants or other computers, not brothers and sisters with hearts and ideals, who better take care of each other with respect and love.

So, happy hacking! That’s Life!

There are FOSS alternatives available. Containerd, cri-o, podman, buildah, kubernetes.

About snap and docker. Don’t install Ubuntu on servers anymore, they are packing things in snap now instead of apt, people waste days figuring out why things don’t work and the reason turns out to be additional snap rituals required, ERPNext installation issues [docker] - #13 by EI-IT

If you use Ubuntu make sure things are not sneaked in as snap package.

Debian/Devuan is good choice.

1 Like

Yes you are right, installation should just take a single command like
snap install erpnext
or
run erpnext.appimage
or
run frappe-ui

whatever it is. We all believe that it must be like that.
Unfortunately it won’t be that way anytime soon.

From marketing, technical, and educational perspectives, simplifying ERPNext installation is crucial:

  • Marketing: It’s essential for user adoption and growth.
  • Technical: It streamlines the onboarding process for developers.
  • Education: It’s critical for teaching. I’ve assigned homework to dozens of students, and about 90% struggle with installation. We can’t expect coders to master server management simultaneously.

From a business standpoint, it might seem unnecessary due to erpnext.com and Frappe Cloud. However, I’m curious about how competitors like Odoo, SAP, Microsoft, and Netsuite handle their installations.

While Frappe’s marketing team may not see potential here (which is understandable), I believe there’s room for improvement. Many tech experts might argue, “It has many components; it’s difficult to create a snap package.” I respectfully disagree.

The community doesn’t necessarily need a snap package; they need a straightforward path to reach a login page. If snap has limitations, we can explore alternatives. If AppImage has issues, we could develop a “Frappe Packager.”

TL;DR: I see two problems in the Frappeverse:

  1. We expect coders to have substantial server management experience.
  2. ERPNext requires various components to function, but these can be packaged somehow. After all, we can create LLMs with a single command. Our closed-source competitors often just require clicking “Next.”

If you’re committed to solving this, consider creating a bounty to incentivize development of a solution.

1 Like

This is a long running thread already. And why not, it’s interesting, and accompagnies certain aspects of Frappe’s history.

IIRC from other threads of this forum, you successfully tried snaps.

If I were taking it from there, why not:

  • offer a snap creation tool for framework+apps
  • see to it that it integrates well with other build formats (which might as well show how best to do it)
  • maybe even make it totally compatible with the other build formats. frappe_docker might show the way because it’s very well maintained and comes with precise documentation. In other words, there could be a script which when put into the DL’d frappe_docker repo and run with an explicitly stated CLI command builds the snap.
  • It could be a dev snap. That quickly gets the devs to evaluate and build apps. That path from dev to production is not exactly trivial, so that might well come only later (for different reasons), or not at all.
  • If this proves working, it probably still needs to be maintained and tested across version updates, if major or minor. That would build experience and may create acceptance (and attention) and prove a serious demand.

TBH, I rarely used snaps nor even docker before getting into ERPNext, but docker seems to be established more widely, and also be a rather straight path to kubernetes (don’t know how snap does in this discipline). In my experience, the snaps I used were a rather smooth experience, except the differences and interference between the docker snap vs. original docker, and other stuff.

But even when the build chain(s) work, it also might need a way to add and remove apps later and to update, which also are non-trivial because if images are immutable, but which are very important tasks for a smooth path from evaluation and dev to production. There are some major stumbling blocks for such a smooth transition, which otherwise would come naturally when you just start tinkering with erpnext (which is the point to having several adoption paths). But some easily made errors are rather unforgiving and cannot easily undone (like, choice of CoA, or not getting a backup-restore right, certain configuration choices, etc.).

A build system which produces, more or less in one go, docker images, snaps, a windows exe, an apt package, a rpm, a standalone asm version runnable from PXE, an OpenBSD package, etc., that would of course be a nice diversification of starting points of possibly many different paths to the Framework’s App Universe.

Hi All,

Rather than exploring snap packaging, my suggestion would be to create something like XAMPP(PHP stack) for non-container based install. We can probably extend it later on extend this for container based installation using podman or any other opensource container runtimes. This will be much easier to build, manage and distribute rather than building a snap package.

We definitely don’t all believe that! :slight_smile:

One-step installs are a very mixed blessing in the server world. They can be great when they work, but they can be a massive headache if (/when) something goes wrong. I would take a clearly described multi-step process over an automated one any day.

I get that server administration is complicated, and it is indeed unrealistic to expect coders to know server management. But, why would coders be managing production servers? Local development servers are much simpler to set up. Maybe I’ve just been lucky, but I’ve found Revant’s development docker build extremely easy to use.

If snap can be even easier, great! I’ve yet to see it working, but if somebody can put it together in a way that is as smooth as this thread suggests, I’m sure it will be very popular.

1 Like

Got it. I mean that “We all believe that it must be like that for one liners.” For other people they can tweak their server as they wish.