This script installs Version 12 by default. It is untested with Version 13 and above. Containerized or manual installs are recommended for newer setups.
Does this mean that for future-proofing we should invest in learning the docker setup?
Wow! I also think it’s important to clarify this… while Docker is great, I don’t think it’s currently as easy to navigate especially for multi-tenant requirements
The Easy Install Script still works. You just have to add the branch tag you wish to install (e.g --frappe-branch version-13 --erpnext-branch version-13) to install it. Maybe this should be added to the readme.
I remember folks in the past complaining that the easy install script installs most recent versions when some others would like to install older versions. So rather than hard-code the default app version in the script, users should be encouraged to use the branch tag to install the version of their choice just like you’re given the option of --production or --develop.
The easy install script relies on playbooks in the bench project. Newer versions of distros and system packages roll out faster than we can act. These often break installs.
The last time I was dedicatedly maintaining bench, Ubuntu 18.04 had just rolled out. We’d run the script each time a Frappe requirement has changed, or disappeared from PyPI, or any type of updates, new packages or updates available on the dependent PPAs. This wasn’t scalable to begin with, and it was a never ending loop of dependency management and maintenance. Club that with the number of distros the playbooks were aiming to solve the setup problem for.
Around the same time, @revant_one started working actively on the containerised install (frappe/frappe_docker) method. And it’s heavily tested and most up-to-date and reliable install solution at this point.
The “easy install” script still works for some versions of certain distros…I don’t use it as often as I used to before. Though I haven’t faced any problems off late, you may not use the same options I use for my setups. There’s a PR open to install v13 by default, but it’s not ready yet. The script is still not nearly as tested as it used to be. I added the note because people still try using it and when the setup fails, they don’t know what to do and they’re stuck. Manual setups seem to be much easier at that point .
If someone can actively try to maintain the playbooks, maybe this would change. But it’s Frappe Docker ftw as of now.
Wow, I see. Thanks for the detailed explanation. In this case, I think it’ll be important to look into how best Docker can be used to manage multi-tenant setups
I’m using docker for multiple deployments on same cluster. I’m using dns based multi tenency along with multiple benches.
I generally setup a staging and a production bench on same VPS. It is multi benches to accommodate staging branch and production branch of same app. Both benches/deployments can host multiple sites.
Port based multi tenency for LAN/WAN can also be setup now. If anything is missing put up an issue or forum post. You’ve tagged me on docker related post already!
Gavin, this is an important shift in direction. It’s a big deal.
I understand it makes no difference to Frappe. Your company has the technical skills to continue supporting your customers, no matter what. And honestly, this change doesn’t impact people like me whatsoever. People who can manually install with ease.
But this is a big deal for many ERPNext users who rely on Easy Install.
I think this deserves a more official announcement, don’t you? This is going to surprise many people in the community. They need time to prepare.
Please make a formal announcement, Gavin. And keep it visible. I am surprised and hurt that @RWEMA_Aimable brought this issue to light, and not Frappe.
First they jack up the pricing for the cloud services:
Then they stop supporting the Easy Install method of setting up a system so that new users that cannot get through the huge learning curve of containerization installs will be forced to use the expensive cloud subscription services.
So now the message is clear…
“Newbies are not longer welcome. We only want advanced users so that we might get more contribution to the code base from them.”
That does not sound very inviting to new ERP system adopters.
Might you at least decided to support maybe just one distro like Debian because it is so slow to change it’s own releases. At least that would buy the user base some time to either hire people to help them with container type installs, or find a better solution. Being stuck with the only reliable install process to be using a containerized package leaves out the ability to easily even get other developers to work out adding new apps or even code features.
Since most of them come from people like me paying outside contractors to develop additional pieces to ERPNext, the I guess you have now crimped off that resource as well.
You guys could have planned this a bit better. This is just sad.
BKM
**EDIT - 08/31/2021 (13 days after original post) Please be aware this “may” not be the final word on simple install methods. As you can see further down this thread, @revant_one has offered to help me understand Docker containerized installs so that I might be able to write up a tutorial for them geared to the newest of ERPNext users and adopters. I have already spent some time researching how Docker works and all of the pros/cons to doing installs this way. I may be able to do this after all. Know that I am spending any free minutes I have between projects to learn all of this myself. Once I have it figured out, I will try a tutorial and we can see how it plays out for all the new users. In past tutorials I have gone to great lengths to explain every step along the way so the users that follow the instructions get a little bit of education on “why” a given step is done. This may not be possible with the Docker installs based on my current reading of the documentation. There are many complexities in Docker configurations that are not easy to explain (but generally easy to follow the steps). I am not accustomed to writing about something that I do not fully understand, but at this point I am more interested in getting something useful out to users and for myself. Still working on it. Patience is a virtue. Thanks. BKM
I feel containerized installations are easy for beginners to get started.
Once containerized it acts as a configurable unit that can be deployed wherever containers can run. All the build process that consumes a lot of memory and cpu is not done during installation. 1GB RAM + 1GB swap and 1CPU is enough to get started. That makes it cheapest and cost effective option available.
From those interactions I’ve helped many beginners who know nothing much about self hosting. Many are 1 person startups who really can’t afford a lot. When I know I’m interacting with such case, I just help for free and improve frappe_docker to make it easy for the next such startup that lands there.
Already chances of failure for startups is very high. No access to ERP should not be the cause of failure!
People looking for FOSS will eventually get it hosted on their machines.
People looking for SaaS will mostly get it from frappecloud.
@bkm if you explore the containers (docker/podman) and write any how-tos I’ll help as much as I can. We can make things approachable for beginners.
Please write a manual for containers in your style. I can answer any of your queries about installation, backup/restore, custom apps, upgrades.
Containerized installation is always going to be the easiest and most reliable installation method for beginners. The effort that @revant_one and others have put into making Docker a reality is an enormously important step for making ERPNext more accessible to small shops. That’s the bottom line, and the conspiracy theories are missing the big picture.
@peterg While I agree with you, I think a big part of documentation regarding dependencies versions for each release would be greatly appreciated. In my experience regarding containerization, it can get really complex really quick.
Docker is not as beginner friendly as it’s out to be, just try do something that’s not already configured, and you’ll need to hire a devops orchestrator, and those do not come cheaply
Of course. That has always been true for the Easy Install script too. The discussion here is about quick deployments for “normal” use cases. If you want to do something customized, you’ll need somebody who knows how to do it. That’s true for docker installations, and it’s true for non-docker installations, no?
I have personally found the step-by-step install quite easy (that is how I have always installed frappe), just install the prerequisites (git, MariaDB, NGINX, Python3, Node, Redis, Wkhtml2pdf…) and then clone and install bench, init bench, setup requirements, setup config and done.
That’s what I always did, too. It wasn’t hard at all, until it was impossible.
I run a production/staging server on Debian and a development server on a macOS laptop. At some point, manual installation on macOS just stopped working. It has something to do with permissions conflicts in a pip library, I think, but I’m really not sure. I spent three days banging my head at it with zero progress. I’m far from an expert in server deployment, but I was completely stuck.
I had avoided the docker deployment because I’ve never really used docker before and didn’t want to learn a new system. I’m so glad I gave it a shot. I followed the instructions on the github page, and I had a multi-tenant development system up and running in less than an hour.
I don’t think I did anything special. DNS multitenancy worked right out of the box for me following the development instructions. I haven’t tried production, but from the outside it certainly looks like it was built for dns multitenancy too.
Have you posted the problem you hit anywhere? Happy to take a look.
Thanks though I guess what you referenced is for development and not production. I encountered issues while trying to setup a multi-site install and had a conversation with @revant_one regarding this:
As you can see from the thread, there was an additional layer of complexity involved. I eventually had to move to an Easy Install setup. I’m happy to learn if there’s clear step-by-step directions on how to achieve a multi-site/multi-tenant Production setup with Docker (including SSL setup if any additional steps are needed)