Yesterday, we installed the server components for the experimental Evergreen browser staff client on one of our virtual machines at MVLC. This blog post will take you through the steps involved in setting it up, provide pointers to the existing documentation, and explain a couple of gotchas or missing bits of documentation.
First, you need to follow all of the usual instructions for installing OpenSRF 2.4
Near the bottom of the OpenSRF installation instructions, you will find a section devoted to setting up the optional Websockets components
. This section is not
optional if you want to test drive the browser staff client. Pay careful attention to the note at the top of the section. The instructions all assume that you are running the commands as the root user.
If you follow the instructions exactly as written, you will encounter a problem on step 14.5. The assumption surrounding that
command is that you have issued a
command back to the directory where you have either extracted the OpenSRF code tarball or cloned the OpenSRF git repo. If you run the command as written without first returning to the location of the OpenSRF code, you will get an error about missing files.
On step 14.7, if you have altered your Evergreen's
file to indicate where your SSL certificates and chain files (if any) reside, then you will want to make the same changes to the
file that gets installed in the previous step (14.6).
Note also, if you do this on Ubuntu 14.04 (Trusty Tahr), you will need to use the
command to start and stop the Apache instance used for Websockets. For some reason,
does not work to control this Apache instance.
The default configuration sets the second Apache instance to listen for Websockets connections on port 7680 and 7682. These ports will need to be opened in any firewall that you may have protecting the computer where Websockets is configured.
Now that the necessary OpenSRF configuration is complete, let's turn to setting things up for Evergreen. You will only need to follow these steps if you have checked out the Evergreen code via git. If you have downloaded a tarball from the 2.7 or 2.8 series of Evergreen, the steps should have already been done and the results included in the tarball.
You will find the current instructions for setting up the Evergreen side of the browser staff client in a file named Open-ILS/web/js/ui/default/staff/README.install in your local git clone. Benjamin Shum, the release manager of Evergreen 2.7 has summarized
these instructions on the web. At some point in the near future, these instructions should be moved into the main installation instructions for Evergreen. My step references below come from Ben's compiled instructions.
If you follow those steps exactly, you will likely need to run
chmod -R opensrf:opensrf ~/.npm/
between steps 4.1 and 4.2. When you do the
sudo npm ...
commands in steps 4.1.1, 4.1.2, and 4.1.3, npm will create a .npm settings directory in your home and it will be owned by root. You can avoid this by doing a
before running the three npm commands in 4.1. If you don't install as the opensrf user, but use some other user name, then you'll need to substitute that user's name in the chmod command.
If you are doing this setup after having already installed Evergreen, you will need to do the Evergreen make install again to put the files in the proper place. This means going back to the root of your git clone, issuing the
sudo make install
command, and then doing any
commands as necessary.
Finally, you'll want to run the following commands to remove some junk that you don't need hanging around:
rm -rf bower_components
rm -rf node_modules
Note:You can also delete those directories from the source before doing the make install step.
Once you have completed the above, and made sure that the Apache instance for Websockets is running, you should be able to access your browser staff client at https://your.server.domain/eg/staff/ .
If you have any trouble getting this to work, be sure to pop into the #evergreen channel on the Freenode IRC network. Someone may be able to help you depending on the time of day.
Feel free to add any comments or questions to this post. I can't guarantee timely answers, but I'll do my best.