Meteor 1.2.0.1 on ARM (UDOO, Raspberry + others)

Hi @skosch - looking forward to your next experiences on that.

Cheers
Tom

GREAT NEWS after long sunday!

I got all special repros from MDG for node, npm, mongo and mongod compiled on armv7l architecture. That does mean, that not only the system wide executables will be work but now we can use the real designed versions. Also I can prepare now full packages for absolute fast meteor installations on arm architecture.

Looking forward to the new arm installer.

2 Likes

Hi Tom,

Thank you for your help.

How did you proceed with Maxime to set up meteor machines on scaleway ?

Best regards,

Jeangui

Hi @jeangui, @skosch, @mquandalle - hot stuff :wink:

If you like to test the first full ready release of meteor for armv7l you may run following:

  1. Prepare system and start with a new clean server on scaleway based on ubuntu 14.04 image

    login as root
    apt-get update
    apt-get dist-upgrade
    apt-get install git-core

  2. Get and install meteor

    cd /tmp
    curl -L -O https://github.com/4commerce-technologies-AG/meteor/releases/download/release%2F1.2.0.1-universal/meteor_Linux_armv7l_v1.2.0.1_rc1.tar.gz
    cd /usr/local/lib
    tar -xvzf /tmp/meteor_Linux_armv7l_v1.2.0.1_rc1.tar.gz

  3. Running meteor

    /usr/local/lib/meteor/meteor

Thatā€™s it. All binaries are there (node, npm, mongo, mongod) and built from the MDG repositories :slight_smile:


I am currently working on a final build and an easy installer doing the above.

Looking forward to your comments

Tom


@TO ALL: This build was tested currently only on SCALEWAY and UDOO boards but should work on all ARMV7L boards running a DEBIAN based OS like Raspi 2, ODROID etc.

Feedback is welcome


P.S.: First time start response output from meteor may take 60-90 seconds - after that much faster

2 Likes

You may vote on my help issue at https://github.com/meteor/meteor/issues/5307 to get the right information about how to build a ā€œproductionā€ archive for installer :wink:

This is the last part missing for a comparable installer on ARM. Hope I get some quick hints.

Wonderfull @tomfreudenberg !
I gonna test this week for sureā€¦ :smile:

best
jeangui

couldnā€™t wait.
It works perfectly for me. :smile:
fine.

1 Like

Did you get Wekan up and running on scaleway? Have tried it with the provided Meteor 1.2 (thx a lot for taking the effort), but failed due to dependencies not being available for ARM platform :frowning:

Hi @appelgriebsch

All is running and ready to go. I am currently working on a new README and additional infos / howtos.

Please stay patient for a few more hours - all will run smoothly - I promise :wink:

2 Likes

New 1.2.0.2 is out now

Hi @cathiavila

I do not prefer to use debian packages for deploying on debian based servers.

The reason is, that you may want to serve more than one app on your server, maybe based on different meteor releases and packages. In that case you need to place meteor more than once to your system what is not possible through a deb package. Also a deb package has to run the app in the context of root because you need write access to the ā€œglobalā€ meteor directory (see https://github.com/meteor/meteor/pull/4330)

So with that in mind you should install a system wide mongodb from standard debian package if available and higher 2.6.7. If you canā€™t get any mongodb you should use the mongodb and nodejs from within our dev_bundle.

Cheers
Tom

@tomfreudenberg any chance to get meteor running on ARM 11 ? Just saw a $5 raspberry pi announced.

Hi @kaiyes I ordered one today and will have a look what is running on that device ā€¦

1 Like

Theyā€™re being given away with the latest Magpi magazine (in the UK at least) - although all the local places seem to have run out!

@tomfreudenberg I just took your Meteor Universal fork for a test drive. Very cool, it opens the door to some very powerful apps/projects. The installation was surprisingly easy and quick. However, the performance is pretty slow. Iā€™m running a Pi 2 model B with a clean install of Jessie (overclocked to 1000 MHz). The Meteor create command takes about 6 minutes to create a new project. Then running the project takes another 5 minutes.

Do you have any tips to speed up the performance?

Run meteor command took 5 minutes to start? It is too long. That is the startup performance. What is the performance in running? Although there are four cores in Pi 2, JavaScript performance is dependent on single core.

@charliecl I installed todos (meteor create --example todos) on the Pi. This took over an hour to complete (compared to about 20 seconds on my Windows desktop). The initial run was also very slow. Subsequent runs were faster at about 2.5 minutes. Making a simple change to a template took about 25 seconds to refresh the browser. The running performance in the Epiphany browser on the Pi is OK. There is some noticeable lag but I wouldnā€™t attribute that to Meteor. Web browsing on a Pi is normally slow. Good news ā€“ when I connected to the Todos app running on the PI from my Windows desktop the performance was excellent. The refresh was slightly faster too at just under 20 seconds.

It is very poor to use Pi 2 as a dev platform. 1 hour create is unacceptable.

Do you test meteor deploy xxx? It may be not too bad

When access meteor app on Pi 2, the result is positive. All or main JavaScript codes may run on client as PC or mobile phone.

@rdagger @charliecl

Sorry for late reply, I was offsite for last days.

I can confirm, that the first time installation (meteor --version) as well as the first time build (meteor create --example todos) take long time on a PI. But this does NOT AFFECT the overall runtime performance.

Just to give you a note what happens on an ARM board when using meteor after fresh clone. You have to build ALL bundles and packages on the ARM device because they are not yet pre-build from MDG nor from me (See ticket https://github.com/meteor/meteor/issues/5307 I am still working on). The thing is, that ARM is a new architecture which is not supported directly by MDG with pre-build binary codes. So in that case it takes so much longer for the first time instead of a x86 system. If you would use a clean checkout on a x86 and build the packages yourself, the first time build will raise time too (but not so much in case of the more performant board).

However, you NEED at least to create your runtime build on an ARM board, otherwise the binaries will not be useable. Depending on used packages, you canā€™t run a meteor deploy --directory myapp on a x86 and run that on your PI. You still need to do this once on the PI or an ARM architecture.

Our working process is as follows: Develop main software on our developers systems like MacBook etc. which is independently from the ARM board or device controlling. If we just want to build for the ARM devices, we have an account on Scaleway which gives us cheap access to fast ARM boards. We make our builds on that devices and then just deploy the content of tar/directory. That will just be started by node main.js and is up in seconds.

Sometimes we need to accept the pain when developing hardware depended stuff on the boards. In case that we are mostly using UDOO and ODROID boards there are not too slow and from my personal opinion, to have the ability to run your meteor processes on a PI, it is acceptable too.

Hope that gives you some better understanding.

We are running several apps now on ARM boards and havenā€™t any issues when running the production apps. Our customers are still happy and fine.

Cheers
Tom


P.S: I suggest to run the bundle node and mongodb from within the dev_bundle. You do not need to install some other system packages for that.

Just use /your-checkout-path/dev_bundle/mongodb/bin/mongod for the mongo daemon and /your-checkout-path/dev_bundle/bin/node to run your app.

So you also use compatible versions of the tools.

1 Like

Be aware that also meteor 1.2.1 is already out, see: Meteor Universal fork 1.2.1 on ARM (UDOO, Raspberry, ODroid, others)