Can ERPNext v14 and v15 be on the Same Server?

Hello,

I have v14 running on one server. I setup a new bench and installed ERPNext v15 on it, it starts but the site is inaccessible, the 127.0.0.1:8002 address is unreachable.

Can v14 and v15 coexist? Is there something I’m missing?

Thanks,
Paul

Short answer: Yes

You can see from the image above I have 3 different benches.

Kindly start by understanding multi tenancy in Frappe

https://frappeframework.com/docs/user/en/bench/guides/setup-multitenancy

This is not a multitenancy issue, as it is not multiple sites run from one bench.

In the past I was able to switch between two different benches with different ERPNext versions, v14 and develop. They did NOT run concurrently, I switched between the versions as I needed. It is not possible to run two different benches at the same time on the same server.

I created a fresh bench for v15, and have not been able to get to it. Firewall is not an issue as the ports used are allowed.

Just wondered if there was some dependencies between the versions that were incompatible, or it is something I’ve missed.

In my case, frappe-bench is production setup and the site runs on port 80. As for the other two benchesfrappe-bench-2 and frappe-v15, i start them manually using bench start. The site on frappe-bench-2 runs on port 8001 while the site frappe-v15 runs on port 8888.

do you have socketio enable in dev benches?
do you get realtime updates in dev bench or do you have to refresh everytime?

I use frappe/erpnext version-14 with py 3.11 and node 18.
Frappe version 15 requires python 3.11 and nodejs v18.

Try containers, you can even use v13, v14, v15 on same machine in that case.
Go through Container Basics on this forum if you are not familiar with containers.

1 Like

what about enabling socketio port in dev mode?
is there a way to get realtime updates in dev mode?

So it seems we can’t run different benches in parallel in production mode, right?

Simple solution would be the LXC containers. They are at native speed. I’ve test it on my 2011 computer.

2 Likes

Thanks everyone. I have removed some existing benches and created new ones, that seems to have sorted the issue and I’ve been able to create a new v15 bench and get it up and running.

Something I should probably get to know, not familiar with them at all. Are they portable between servers?

Are these the same as above or a different type of container?

lxc is system container. Like a VM.
Docker, podman, containerd are app containers. Shared kernel.

Search more: https://www.google.com/search?q=lxc+vs+docker

What do you mean by portability?

You can build image and run it on multiple host.

Thanks, had play with Docker in the past but wasn’t sure how to get any stored info out of it easily (another system, not ERPNext).

By portability, I was thinking of develop on one system then deploy easily to another. As oppoosed to having backups/fixtures and lots of additional work to setup a new system.

1 Like

LXC is not like VM. You can see the running process in the host OS.

For instance htop shows mariadb which is not installed in the host os. So there is no virtualization.

And Docker is a performance killer, according to my 2011 computer :slight_smile: But LXC can run 5 different ERPNext benches simultaneously.

Portability is another issue. LXC has features for portability but I didn’t try it. Docker has great tools for portability.

4 Likes

Yes I did notice that running Docker (on Windows 10) definitely affected system resources.

2 Likes

I tried following the frappe_docker docs to install v14 and v15 on the same server. Despite being successfully able to install and use, v14 instances started experiences issues with the background jobs queue.

For instance, whenever we try to generate the General Ledger report, it fails frequently and hangs in the Pending state. Upon generating it again, it works. Then alternately fails again and again. This started happening after creating and running v15 on the same server using a copy of the v14 .env file and changing the ROUTER, SITES and BENCH_NETWORK.

My estimate is that the queues of v14 and v15 are intercepting each others’ calls for processing the background jobs.

How do I solve this?

On Windows and Mac it is worst. On some Linux distributions, Docker also use LXC under the hood.