Install MeteorJS on Raspberry Pi B + running Arch Linux ARM
If there is anyone else who, like me, suddenly decides to use RPI as a home or test server with a deployed meteor application, I hope this instruction comes in handy. The choice fell on Arch Linux, because, as far as I know, this is currently the only distribution for the ARM platform that supports MongoDB on localhost.
I usually use Mac OS X and Ubuntu, and this was my first meeting with Arch Linux, so some procedures caused questions and made me dig around the Internet. This instruction may seem primitive to some, but I would like to find one before I encounter difficulties. If you find an inaccuracy, a mistake or want to add something - you are welcome in the comments.
1. Install Arch Linux ARM
Download and unpack the archive with the img image from here , then write it to the mSD card. I used the ApplePi Baker application for this on my Mac . After recording, insert the memory card into the RPI and log in via ssh:
$ ssh firstname.lastname@example.org
The default password is 'root'.
2. Extension of the root partition
The procedure for expanding the disk space of a partition is described in sufficient detail in this material by user dmitriy5181 . On my own, I want to add that to ensure MongoDB works, you should not set the noatime parameter in the / etc / fstab file - Mongo did not work with it.
3. Setting the time zone
Checking the current settings
# timedatectl status
If necessary, look what time zones are, choose the appropriate
# timedatectl list-timezones
And install it with the team
# timedatectl set-timezone Europe/Minsk
4. Install node.js and dependencies
In general, for node, js to work, you will need python2, a make utility, and a set of GCC compilers. Install everything you need
# pacman -Sy nodejs mongodb python2 make gcc
5. Creating a symlink in python
When installing python2 on Arch Linux, a symbolic link / usr / bin / python2 is created, but we need a link named python, so just copy the existing one
# cp /usr/bin/python2 /usr/bin/python
6. Running installed Mongo
# systemctl start mongodb
You can check the status of his work by the command
# systemctl status mongodb
Arch Linux has a systemd daemon , so to add MongoDB to autostart, just run the command
# systemctl enable mongodb
7. Transfer of the project
On the working machine (on the one where you are developing the project with MeteorJS) in the application folder (for example, ~ / meteorapps) we create the bundle of the desired project with the command
$ meteor bundle myapp.tgz
Then we transfer the created app.tgz to the mSD memory card and unpack
tar -xvzf myapp.tgz
8. Installation of specific dependencies
To get started, reinstall the library for working with unicode (something was wrong with the system version)
# pacman -Sy libunistring
Install packages for node.js
# npm install email@example.com firstname.lastname@example.org
I used specific versions, but I believe that the latter will work too. If not, they can always be reinstalled using the command above.
Also for my project some libraries were needed
# npm install underscore source-map-support semver# npm install
9. Launching the application
If everything is ready, the application can be launched as follows.
Create a file in which our service will be described and how to run it
# nano /usr/lib/systemd/system/myapp.service
Myapp.service file content
[Unit] Description=My awesome Meteor.JS app After=mongodb.target [Service] User=pi Environment=ROOT_URL=http://192.168.1.11 PORT=80 MONGO_URL=mongodb://localhost:27017/myapp ExecStart=/usr/bin/node /home/pi/meteorapps/myapp/main.js [Install] WantedBy=multi-user.target
Here you need to substitute the username, PORT, ROOT_URL and the path to main.js.
The service is launched by the team
# systemctl start myapp
Similar to the case with MongoDB, the service can be added to autorun
# systemctl enable myapp
If everything went smoothly, now you can go from the working machine to the address 192.168.1.11 and see the face of the application.