ERPNext on a Raspberry Pi 3 with Debian 9

This guide is quite good and in detail.

I will try to get it working if I can.

Thanks.

Hi Prakhar, can you give me some more details?
I’m not able to get the traefik part working on the docker swam instructions in raspbian.

I really want to get this working on a raspberry pi.

Hi Mark, I just followed the instructions here for setting up traefic and it worked. If you are using the same instructions then there could be problems with generating certificates using lets-encrypt. What issue are you facing exactly?

Thanks! That was where I was using.
I can’t get the traefik website to load part way through the setup. I think I figured it out though. I set it up with a domain, but didn’t have a hosts file entry and then I messed up the IP address the second time.

So I’ll try again on the weekend. I’ll make a step by step guide if it ends up working. I tried to build using the single bench install before trying the docker swarm method, but got stuck on the phantomjs in frappe bench dependency as there isn’t a build for arm64 and the previous arm64 forks don’t compile on ubuntu 20/21 or raspbian’s current version.

I also ran into the PhantomJS issue. I found a workaround for that. If you want to build the images for arm64, take a look at the last few commits here -
https://github.com/Prakhar225/frappe_docker

2 Likes

Hi Prakhar, when your commit says “needs refactoring”
What are you meaning exactly?

Like making it up to date with the current builds?

Hi Mark, it says “need refactoring” because although it will work, it might not be the most optimized way to build that image. I kept on modifying the dockerfile until all the dependencies were resolved but I did not bother checking if everything I added in the previous steps was still needed. For example, you will find a line with the comment “This might not be needed”.

Also, in the following line, you will have to change the URL to the binary to build on arm64 as I have hardcoded the version -
https://github.com/Prakhar225/frappe_docker/blob/8f8f13ce62ae657ad55a09e67c2ab03de1e655d6/build/frappe-worker/Dockerfile#L48

It looks like it’s even easier to build the images now:

docker buildx bake -f docker-bake.hcl bench-build
docker buildx bake -f docker-bake.hcl frappe-develop
docker buildx bake -f docker-bake.hcl erpnext-develop

docker-compose --project-name up -d
worked without alteration on the latest develop branch

If you try to do them in parallel they fail, but doing them in order like that worked for me

Edit: Took about 2 hours on my pi to build the images

1 Like

Just out of curiosity. Is it possible to work on a system running on a Raspberry Pi? How slow are the response times on that? Or is this purely to test and play around with it?

It’s definitely possible to work on a raspberry Pi. The response times aren’t bad. The build and install is painful, but other than it’s fine. Prolly fine for up to 5 users or so.
Response times over a local network are just as fast as on my Intel Server.
As long as I don’t do super compute heavy tasks, I don’t see any issues.

1 Like

That’s quite impressive what does little computers can do.

We’re not officially building these for the same reason.
2 hour CI job is a problem, If something fails, fix is +2 hours away.

To be fair, it was a raspberry pi I was building it on. My desktop builds it in like 8 minutes. But I can’t figure out how to use docker desktop to build a linux/arm64 image that I can then send to my pi. I don’t use Docker in my day job so I’m a novice. I was just happy I could get it to work. Some instructions on the repo to actually make it work would be great as it was a long and very painful process to get to this point.

Even just how to build the images, the instructions are confusing on the Docker Images page.

amd64 build takes less time

No, I mean an arm64 builder using buildx. I only have a problem with the erpnext-nginx image. For some reason the install_app.sh script doesn’t work.

Ahh, the reason the arm64 build takes so long is because either Python 3.7 or 3.9 are being used.
And pandas 1.1.5 doesn’t have a wheel for arm64 in python 3.9, only 3.8.
Changing to 1.2.5 knocks 23 minutes off the build time.

I wonder how it performs when ERPNext/Frappe runs the crons.

I’m not a super heavy user, but it seems to run fine. I also run it off an SSD, not the SDCard.
I tried scheduling everything I could and running as many reports as I could, and it chugged along just fine.

Great then… because from the forum we can see some people posted about their server running out of resources and halt. And they do have big spec servers.