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)