====== Install resin on the raspberry pi ======
Yes [[http://www.caucho.com/|resin]] can be installed on the raspberry PI, too. Here are some instructions to achieve this.
===== Download and install =====
Download the latest resin package and uncompress it. Follow the usual steps for configure and install, which are:
* ''configure''
* ''make''
* ''sudo make install''
We don't need root privileges for the first two, but yes for the latest.
The install procedure has created the following directories and files:
|Path|What is|
|/etc/resin| Configuration files |
|/etc/init.d/resin | The daemon script, to start and stop the server|
|/var/resin | To locate the web pages |
|/var/log/resin | Location of log files |
|/usr/local/share | The program itself |
===== Create a resin user for running the web server =====
We have created a resin user. This user will be the one who will run the application. This is
a safer scenario than running as a root user.
# addgroup resin
# adduser --ingroup resin --home /home/resin resin
Please choose a difficult password and forget it because you won't need to log in as this user
anymore.
===== Change permissions in favor of the resin user =====
I prefer to change the ownership of the files of the application to the resin user, although this is not entirely necessary. In fact, it is more savvy to keep them as root ownership, because it prevents them to be overwritten in case of an intrusion.
# cd /usr/local/share
# chown resin:resin resin
# cd /var
# chown resin:resin resin
# chown o-x,o-r resin
===== Minor fixings =====
I've tried to run the application and I've discovered that the application look for a directories who don't exist, but who have a simple solution. Here are my notes:
# symbolic link to the resin configuration from the application directory
# ln -s /etc/resin /usr/local/share/resin/conf
# symbolic link to the resin log from the application directory
# ln -s /var/log/resin /var/log/resin
===== Changes in the ''/etc/init.d/resin'' script =====
Edit the ''/etc/init.d/resin'' script and make the changes detailed below.
You have to add an user value. In my case I've selected the root value and afterwards I will change the resin.properties to have then the user changed to resin once it is opened the port 80.
START_CMD="start-all"
USER="root"
You must uncomment the RESIN_ROOT line:
#
# -resin-root /var/resin -- the main data directory
#
RESIN_ROOT="-root-directory /var/resin"
And the RESIN_CONF line:
#
# -conf /etc/resin/resin.xml -- the main configuration file
#
RESIN_CONF="-conf /etc/resin/resin.xml"
And the RESIN_LOG line:
#
# Licenses for Resin. TODO in progress
# RESIN_LICENSE=" -license-directory /etc/resin/licenses "
#
# -log-directory /var/log/resin -- the main log directory
#
RESIN_LOG="--log-directory /var/log/resin"
===== Change the resin.properties =====
Change the following values:
setuid_user : resin
setuid_group : resin
rest_admin_ssl : true
admin_user : PUT-AN-USERNAME-HERE
admin_password : {SSHA}CREATE-THE-CRYPTED-PASSWORD-AND-ADD-IT-HERE
===== Optional: remove unnecessary things =====
These two clusters of below can be deleted from the configuration file whithout complains:
${backend_servers}