Table of Contents

Install resin on the raspberry pi

Yes 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:

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:

PathWhat 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:

</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>

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:

  <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>