Yes resin can be installed on the raspberry PI, too. Here are some instructions to achieve this.
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 |
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.
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
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:
</code> # 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 </code>
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 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
These two clusters of below can be deleted from the configuration file whithout complains:
<cluster id="memcached" xmlns:memcache="urn:java:com.caucho.memcached"> <!-- define the servers in the cluster --> <server-multi id-prefix="memcached-" address-list="${memcached_servers}" po <!-- listen for the memcache protocol --> <listen port="${memcached_port?:11211}" keepalive-timeout="600s" socket-timeout="600s"> <memcache:MemcachedProtocol/> </listen> </server-multi> </cluster> <cluster id="proxycache"> <!-- define the servers in the cluster --> <server-multi id-prefix="proxycache-" address-list="${proxycache_servers}" <host id="" root-directory="proxycache"> <web-app id=""> <resin:HttpProxy regexp=".*"> <!-- backend HTTP servers to proxy to --> <addresses>${backend_servers}</addresses> </resin:HttpProxy> </web-app> </host> </cluster>