I just wanted to share the project I am currently working on. This is to add to the project of Kevin Roast about Alfresco Share 5 running on a Raspberry Pi he was at the moment trying to run a Share instance on a Raspberry Pi 1 model B so it was pretty slow but now that the Raspberry Pi 3 is available I thought it would be a great idea to try to run a full Alfresco instance with Share on it.
I didn't install the Alfresco you find in the free trials since it only has an installer for 64bits systems and most of the Raspberry's OS (here I'm using Raspbian) are in 32bits (even though the Raspberry Pi 3 itself has a 64b arch) so too much trouble. I did it through Maven, I created AMP projects.
With Alfresco Maven SDK I generated an Alfresco Platform JAR archetype and an Alfresco Share JAR archetype. Then I tried to run everything up.
I had to deal with many issues due to the Raspberry system. Without going through details, it was mainly because of the RAM memory. So at first, I changed the run.sh file like this to limit maven and java
MAVEN_OPTS="-Xms256m -Xmx512m" JAVA_OPTS="-Xms256m -Xmx512m" mvn clean install alfresco:run
Then I dealt with the Raspberry memory itself. 1Gb of RAM isn't enough to run two embedded tomcats (just one takes 76,7% of the whole RAM of the Raspberry) so I increased the swap memory to 1Gb and..
It Worked ! I could run both of the Alfresco repo and the Share tier !
But it was actually pretty slow since the Swap memory of a Raspberry Pi is slow. So I "installed" Zram which compresses the RAM files. Then, Share got a lot more fluent. It is just slow starting up, especially when logging the admin user, but it is pretty fine after that.
So for two normal (not admin) users at the same time (I can't test it on a bigger scale for the moment) it works pretty fine, the Raspberry Pi isn't blowing up and so on so if you want to do something like this enjoy it !
In term of perf here is a screenshot of my system after two admin logged, as you can see it is ok even though I'm trying to know if I can improve the management of the memory.
As a reminder here are the Raspberry Pi 3 specs :
SoC: Broadcom BCM2837 ;
CPU: 4× ARM Cortex-A53, 1.2GHz ;
RAM: 1GB LPDDR2 (900 MHz) ;
Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless ;
Storage: microSD ;
If you want more details on how to install everything on the Raspberry (because I didn't talk about all the little things I did to make it work) I would be happy to help !
That's fantastic work! I have to say I never envisaged putting all of Alfresco onto the Pi because of the memory/CPU requirements - but that was a few years ago on a single core CPU Pi with only 512MB - now with quad-core CPUs and more memory it appears to be possible! That is amazing work and thanks for sharing it!
Thank you ! Yes it has given me some trouble at first because of the lack of physical RAM but after some tickling, it now works properly and it feels amazing I must say !
Thank you again, and your welcome !
This is an engineering challenge and intellectual exercise rather than real-world useful it's like trying to run Alfresco on a cell phone class computer! Amazing stuff, not going to displace AWS as your hosting option that is for sure
There's nothing really extra you can do on it, less really, except perhaps running Alfresco on a 5V power supply is pretty unique!
Yes, there is no extra stuff you can do, it's just about the portability of a Raspberry and since it works fine (a bit slow but I guess it could get a lot faster with other cheap -nix boards with more RAM) it could be a good option for my project directed to very small businesses..