Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.



This documentation is for Release 2.0.0. For previous versions of Avalon look in the page history at version v.81.



6.3 and above. For documentation on previous releases, please select from the options below.

  • Release 1.x version of this page: v.81
  • Release 2.x version of this page: v.87.
  • Release 3.0-3.1 version of this page: v.111.
  • Release 3.2 version of this page: v.116.
  • Release 4.0 version of this page: v.143.
  • Release 5.x version of this page: v.163.
  • Release 6.0 version of this page: v.177

These instructions provide a recipe for building your own all-in-one Avalon system from scratch on CentOS or Red Hat Enterprise Linux, version 6.x is supported, 7.x will be supported soon.  Please note that while an all-in-one installation as outlined here is certainly suitable for testing and demos,  a single, all-in-one, server may not be suitable for production environments.

Table of Contents

Ready the Installation Environment

Install EPEL

Code Block
rpm -ivh

This package has libyaml-devel which is required by ruby and not provided by Redhat.

Make sure a valid hostname is resolvable

The default hostname is “”, so name the machine this and enter it into /etc/hosts

Code Block
# hostname
# cat /etc/hosts   localhost localhost.localdomain localhost4 localhost4.localdomain4


Here are the port settings that will need to be configured:

80HTTP (Avalon)Yes
1935RTMP (red5)Yes5080
8983HTTP (
8984HTTP (Fedora
8080HTTP (Matterhorn)Yes


The preferred method is to create a shell script that will do the work for you. Here is an example script that you should look through and customize as needed:


Code Block
chmod +x /etc/sysconfig/


If you run into connection issues you can disable the iptables, by running "service iptables stop". This will completely drop your firewall. When finished troubleshooting run "service iptables start".


Code Block
echo 0 > /selinux/enforce 
vim /etc/selinux/config #change the value of `SELINUX` from `enforcing` to `permissive`


titleYou may have to disable SELinux completely if there's Passenger installation problem
vim /etc/selinux/config #change the value of `SELINUX` to `disabled`

Install EPEL

This package has libyaml-devel which is required by ruby and not provided by Redhat.

Code Block
rpm -ivh

Add the Avalon repository 





Create the NUL repository Avalon repository config file:

Code Block
vim /etc/yum.repos.d/nulavalon-public.repo

Append the following code:

Code Block
name=NULAvalon Library Public RHEL repository

Install and place the NUL Avalon GPG key in the proper location:

Code Block
curl http://yumrepo-publicrepo.libraryavalonmediasystem.northwestern.eduorg/RPM-GPG-KEY-nulavalon -o /etc/pki/rpm-gpg/RPM-GPG-KEY-nulavalon

Install development libraries and packages for building Ruby

Code Block
yum groupinstall "Development Tools"
yum install readline-devel zlib-devel libyaml-devel libffi-devel openssl-devel libxml2-devel libxslt-devel cmake

Install Java 8

Code Block
yum install java-1.8.0-openjdk

Main Components

Fedora Commons Repository


Install Apache Tomcat with the nulrepo-public repository configured and enabled.Fedora runs as a webapp in Tomcat

Install Apache Tomcat 

Code Block
titleRHEL 7
yum install tomcat
service tomcat start
vim /usretc/local/tomcat/conf/server.xml

on line 70, change the Tomcat connector port from 8080 to 8983:

Code Block
<Connector port="8983" protocol="HTTP/1.1" #line 71, change the Tomcat connector port from 8080 to 8984

Add Tomcat manager user

By default, no user has access to the Tomcat Manager App.  


Define a user in /etc/tomcat/tomcat-users.xml


Define a user in tomcat-users.xml with  with access to the manager-gui role. Below is a very basic example.

Code Block
  <role rolename="manager-gui"/>
  <user username="admin" password="tomcat<insert strong password here>" roles="manager-gui"/>

Configure Tomcat for Fedora

Append the following to /etc/sysconfig/tomcat

Code Block
JAVA_OPTS="${JAVA_OPTS} -Dfcrepo.modeshape.configuration=classpath:/config/file-simple/repository.json -Dfcrepo.home=/var/avalon/fedora/"

Restart Tomcat

Code Block
service tomcat restart

Download and run the fcrepo installer

Code Block
mkdir -p /var/avalon/fedora
chown tomcat:tomcat /var/avalon/fedora
wget -O /usr/share/tomcat/webapps/fedora4.war

See if you can log in to the manager app access Fedora's REST interface at http://<server host name>:89838984/managerfedora4/htmlrest

Try it out on your local machine and on another machine. If you can't reach the app from another machine, your your iptables might  might need to be changed to allow access. If Fedora is not up, check the tomcat logs in /var/log/tomcat/. Catalina.out and localhost.<date>.log usually provide the best information.


Avalon makes use of Solr through the Blacklight gem for faceting and relevance-based searching.

Install prerequisites

Code Block
yum install lsof

Download the solr tarball and


run the installation script

Download Solr from

Code Block
tar xvfxzf solr- mv solr- /usrbin/local/solr
cd /usr/local/solr/dist/
cp solr-4.2.0.war /usr/local/tomcat/webapps/solr.war
mv solr-4.2.0.war /usr/local/solr/solr.war

Add XML configurations

Edit /usr/local/tomcat/conf/Catalina/localhost/solr.xml and add

Code Block
<Context docBase="/usr/local/solr/solr.war" debug="0" crossContext="true">
 <Environment name="solr/home" type="java.lang.String" value="/usr/local/solr" override="true"/>

Edit /usr/local/solr/solr.xml and insert

Code Block
<?xml version="1.0" encoding="UTF-8" ?>
  <solr persistent="true">
    <cores defaultCoreName="avalon" adminPath="/admin/cores" zkClientTimeout="${zkClientTimeout:15000}" hostPort="8983" hostContext="solr">
    <core instanceDir="avalon/" name="avalon"/>

Download and Install Avalon specific Solr files from github

Code Block
mkdir /usr/local/solr/lib
mv /usr/local/solr/dist/* /usr/local/solr/lib/
mv /usr/local/solr/contrib /usr/local/solr/lib/
unzip master
mv puppet-solr-master/files/avalon /usr/local/solr
chown -R tomcat7:tomcat /usr/local/solr/
chown -R tomcat7:tomcat /usr/local/tomcat
service tomcat --strip-components=2
bash ./ solr-6.4.2.tgz

By default, the script extracts the distribution archive into /opt, configures Solr to write files into /var/solr, and runs Solr as the solr user. Follow the linked guide if you wish to change these defaults.

Create Avalon core for Solr

Code Block
mkdir -p /tmp/avalon_solr/
wget -O /tmp/avalon_solr/solrconfig.xml
wget -O /tmp/avalon_solr/schema.xml
su solr # Needs to run as solr user
/opt/solr/bin/solr create_core -c avalon -d /tmp/avalon_solr

If you have successfully installed Solr you should be able to access the dashboard page at http://<server host name>:8983/solr

If you can't access the dashboard, check the tomcat logs in /usr/local/tomcat/logs/. Catalina.out and localhost.<date>.log usually provide the best information.


Instructions on how to manually start/stop Solr:



MariaDB is now the default database system for CentOS/RHEL7. Feel free to change Mysql below to MariaDB

Avalon uses MySQL for storing search queries, user data and roles, and as a back end for asynchronously sending requests to Matterhorn. 

Install MySQL server 

Code Block
yum install mysql-server
service mysqld start


Code Block
Welcome to the MySQL monitor. Commands end with ; or \g.

Create a database for the Fedora Commons Repository software and add a user to it 

Code Block
create database fedora3;
create user 'fcrepo'@'localhost' identified by 'fcrepo';
grant all privileges on fedora3.* to 'fcrepo'@'localhost';
flush privileges; 

Create a database for the Avalon web application and add a user to it


Code Block
mysql> show databases;
| Database           |
| information_schema |
| fedora3            |
| mysql              |
| rails              |
| test               |
5 rows in set (0.00 sec)
mysql> select user, host from mysql.user;
| user   | host         |
| root   |    |
|        | |
| root   | |
|        | localhost    |
| fcrepo | localhost    |
| rails  | localhost    |
| root   | localhost    |
7 rows in set (0.00 sec)
mysql> exit;

See documentation for your version of MySQL Server for detailed syntax ( )

Fedora Commons Repository

Download and run the fcrepo installer
Code Block
java -jar fcrepo-installer-3.6.2.jar

Use the following values in place of defaults

Installation type
Fedora home directory
Fedora administrator password
Fedora server host
Fedora application server context
Authentication requirement for API-A
SSL availability
SSL required for API-A
SSL required for API-M
Servlet engine
Tomcat home directory
Tomcat HTTP port
Tomcat shutdown port
Tomcat Secure HTTP port
Keystore file
Keystore password
Keystore type
MySQL JDBC driver
Database username
Database password

Accept remaining defaults then add permissions for Tomcat and restart Tomcat

Code Block
chown -R tomcat7:tomcat /usr/local/fedora
service tomcat restart

Red5 Media Server

Red5 is an open source alternative to Adobe Media Server. If using the Adobe Media Server you can skip to the next step.

Create a red5 user.

Code Block
useradd red5

Download and install Red5.

Code Block
tar xvf red5-1.0.1.tar.gz
mv red5-server-1.0 /usr/local/red5

Download the init script and add it to the init.d directory.

Code Block
wget -O
mv /etc/rc.d/init.d/red5

Give Red5 permissions to the red5 directory and the init script.

Code Block
chown -R red5:red5 /usr/local/red5
chmod +x /etc/rc.d/init.d/red5

Media Streaming Server


Nginx replaces Red5 as the default streaming server since Avalon 6.3. With the upgrade to MediaElementjs 4, we now rely completely on HLS.

An HLS-enabled server like Wowza, Adobe Media Server (commercial) or Nginx + the HLS module (open-source) can take an mp4 created from distribute-streaming and stream it on the fly.

Nginx instructions

Code Block
titleInstall Nginx with vod module
rpm -ihv
yum install kaltura-nginx

Add /etc/nginx/nginx.conf

Code Block
user nginx;
worker_processes 4;

events {
  worker_connections 1024;

http {
  server {
    listen 8980;

    vod_mode local;
    vod_last_modified 'Sun, 19 Nov 2000 08:52:00 GMT';
    vod_last_modified_types *;
    vod_metadata_cache metadata_cache 512m;
    vod_response_cache response_cache 128m;
    gzip on;
    gzip_types application/;
    open_file_cache          max=1000 inactive=5m;
    open_file_cache_valid    2m;
    open_file_cache_min_uses 1;
    open_file_cache_errors   on;

    location ~ ^/avalon/(?<stream>.+)/(?<resource>.+\.(?:m3u8|ts)) {
      alias /var/avalon/derivatives/$stream;
      vod hls;

      set $token "$arg_token";
      add_header X-Stream-Auth-Token "$token";
      sub_filter_types application/;
      sub_filter_once off;
      sub_filter '.ts' ".ts?token=$token";

      auth_request /auth;
      add_header Access-Control-Allow-Headers '*';
      add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
      add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
      add_header Access-Control-Allow-Origin '*';
      expires 100d;

    location = /auth {
      # resolver;
      proxy_pass_request_body off;
      proxy_set_header Content-Length "";
      proxy_set_header X-Original-URI $request_uri;


listen should use a public open port.

alias should point to where the actual stream files are.

proxy_pass needs changing if installing Nginx on a different server.

Add /etc/init.d/nginx. For RHEL7 use this script.

Code Block
# nginx - this script starts and stops the nginx daemon
# chkconfig:   - 85 15
# description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

prog=$(basename $nginx)


[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx


make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if [ -n "$user" ]; then
      if [ -z "`grep $user /etc/passwd`" ]; then
         useradd -M -s /bin/nologin $user
      options=`$nginx -V 2>&1 | grep 'configure arguments:'`
      for opt in $options; do
          if [ `echo $opt | grep '.*-temp-path'` ]; then
              value=`echo $opt | cut -d "=" -f 2`
              if [ ! -d "$value" ]; then
                  # echo "creating" $value
                  mkdir -p $value && chown -R $user $value

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    [ $retval -eq 0 ] && touch $lockfile
    return $retval

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval

restart() {
    configtest || return $?
    sleep 1

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP

force_reload() {

configtest() {
  $nginx -t -c $NGINX_CONF_FILE

rh_status() {
    status $prog

rh_status_q() {
    rh_status >/dev/null 2>&1

case "$1" in
        rh_status_q && exit 0
        rh_status_q || exit 0
        rh_status_q || exit 7
        rh_status_q || exit 0
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2

Add nginx user and let it own nginx stuff

Code Block
useradd -M -s /bin/nologin nginx
chown -R nginx:nginx /etc/nginx /var/log/nginx 

Start nginx

Code Block
chmod +x /etc/init.d/nginx
service nginx start

Avalon config should be updated to be compatible with Nginx:

Code Block
  server: :nginx
  http_base: 'http://localhost:8980/avalon'
  content_path: '/var/avalon/derivatives'


If you enable SSL on Avalon server, you should also enable SSL on the streaming server to avoid Mixed content warning.


Installation prerequisites

Install prerequisite packages using yum and the NUL-public repository Avalon repository (note: mediainfo is pinned to 0.7.61-1 because of a bug with time fragment formatting in most recent version 0.7.87-1 in epel):

Code Block
yum install SDL-devel a52dec-devel bzip2-devel faad2-devel freetype-devel frei0r-plugins-devel \
	gsm-devel imlib2-devel lame-devel libdc1394-devel libraw1394-devel librtmp-devel libtheora-devel \
	libva-devel libfaac-devel libvdpau-devel libstdc++-devel libvorbis-devel libvpx-devel \
	mediainfo-0.7.61-1 opencore-amr-devel opencv-devel openjpeg-devel openssl-devel schroedinger-devel \
	speex-devel texi2html vo-aacenc-devel x264-devel xvidcore-devel yasm zlib-devel


The following commands need to run under a user other than root. Change to the red5 another user to continue.

Code Block
su - red5someuser

Run the ffmpeg installer

Code Block
#rpmrpm -ivh

# Retrieving
#   1:ffmpeg                 warning: user makerpm does not exist - using root
# warning: group makerpm does not exist - using root
########################################### [100%]
# warning: user makerpm does not exist - using root
# warning: group makerpm does not exist - using root
# Build ffmpeg binary as non-root and install as root
rpmbuild -bb rpmbuild/SPECS/ffmpeg12ffmpeg24.spec

Log back in as root and finish the install.

Code Block
su - root
rpm -ivh /home/red5someuser/rpmbuild/RPMS/x86_64/ffmpeg-*.rpm

You can also build a more modern ffmpeg from source, but not all versions work. Version 3.1 is known to work - check out the release/3.1 branch and build from there. If your modern ffmpeg uses fdk_aac instead of libfaac, adjust the Matterhorn etc/encoding/ accordingly.


Install and start the httpd service.

Code Block
yum install httpd
service httpd start

With newer httpd you may need to in /etc/httpd/conf.d/10-mod_rewrite.conf, replace RewriteLock line with Mutex sem


Install Matterhorn


Code Block
useradd matterhorn
tar xvf 1.4.x.tar.gz
mv avalon-felix-1.4.x /usr/local/matterhorn

wget --no-check-certificate
mv /etc/init.d/matterhorn

chmod +x /etc/init.d/matterhorn
chown -R matterhorn:matterhorn /usr/local/matterhorn


Code Block
useradd avalon
mkdir /var/www/avalon
chown -R avalon:avalon /var/www/avalon

Create and configure the media_path (upload) and streaming directories.

Code Block
mkdir -p /usr/local/red5/webapps/avalon/streams
mkdir /var/avalon
mkdir -p /var/www/avalon/public/streams

chown red5masterfiles 
chown avalon:avalon /usr/local/red5/webapps/avalon/streams
chmod 0775 /usr/local/red5/webapp/avalon/streams
ln -s /usr/local/red5/webapps/avalon/streams /masterfiles

mkdir -p /var/avalon/rtmp_streams
mkdir /var/avalon/hls_streams
chown rootmatterhorn:rootmatterhorn /var/avalon/hls_streams/derivatives
-s /var/avalon/hls_streams/ /var/www/avalon/public/streams

chmod 0775 /var/avalon/hls_streams/derivatives

Configure Matterhorn

Download Matterhorn config and verify property values.

Code Block
wget --no-check-certificate
ChangeAnd verify the serverconfiguration urlof portthe from 18080 to 8080
Code Block


streaming directories
Code Block

Also check in /usr/local/matterhorn/etc/load/org.opencastproject.



Code Block

Move the config to the appropriate spot


Code Block
usermod -G avalon matterhorn

Optional, but recommended to avoid problems with batch ingest: Change number of processes available to matterhorn user, cleaning up work dir and using external DB.

Apache Passenger and Ruby

Change current user to avalon then install RVM and ruby 12.9.3-p429.4.1

Code Block
su - root
yum install sqlite-devel
su - avalon
curl -L | bash -s stable --ruby=12.94.31

Source the RVM shell (as avalon user) or close the terminal and open it back up.

Code Block
source /home/avalon/.rvm/scripts/rvm
rvm use 2.4.1

Install Passenger via Gem (as avalon user)


Code Block
$ passenger-config --root

Install Passenger apache module requirements (as root)


Example contents of /etc/httpd/conf.d/passenger.conf, which may need to be changed based off of the current version of ruby and passenger:

Code Block
LoadModule passenger_module /home/avalon/.rvm/gems/ruby-12.94.3-p4481/gems/passenger-45.0.1017/buildout/apache2/
<IfModule passenger_module>
  PassengerRoot /home/avalon/.rvm/gems/ruby-12.94.3-p4481/gems/passenger-45.0.1017
  PassengerDefaultRuby /home/avalon/.rvm/wrappers/ruby-12.94.3-p4481/ruby
  PassengerMaxPoolSize 30
  PassengerPoolIdleTime 300
  PassengerMaxInstancesPerApp 0
  PassengerMinInstances 3
  PassengerSpawnMethod smart-lv2

Apache security configuration

Code Block
wget --no-check-certificate -O /usr/local/sbin/avalon_auth
chmod +x /usr/local/sbin/avalon_auth
wget --no-check-certificate -P /etc/httpd/conf.d/

Create a virtual host for avalon in /etc/httpd/conf.d/avalon.conf

Code Block
wget --no-check-certificate -P /etc/httpd/conf.d/
vim /etc/httpd/conf.d/20-avalon.conf

Add this line to In 20-avalon under .conf add this line inside the VirtualHost tag:

Code Block
RailsEnv development

If using SSL, the following fix should be added to address BEAST, POODLE, RC4 issues (after the SSLEngine on)

Code Block
SSLProtocol all -SSLv2 -SSLv3

Restart apache.  With apache running, check passenger-status

Code Block
/etc/init.d/service httpd restart
su - avalon
which passenger-status
#> ~/.rvm/gems/ruby-12.94.3-p4481/bin/passenger-status



Code Block
cd ~
git clone git://
cd avalon
git checkout master #make sure you are in the master branch (should be by default)
su - root
chown avalon:avalon /var/www/avalon/public/
su - avalon
mv public/* /var/www/avalon/public/
rmdir public
mv  * /var/www/avalon/

Configure Avalon 

As of 6.3, Avalon is using the flexible and increasingly popular Config gem. Default settings for Avalon now live at config/settings.yml, which should not be altered. Any custom config should be placed in config/settings/<environment>.local.yml which will selectively override the default values.

Properly formatted environment variables can also override Avalon settings. For example, SETTINGS__REDIS__HOST will override


A list of config values can be found at Configuration Files#config/settings.yml


If using vim with default settings and pasting the the code below, it will automatically comment out the last line. To prevent that, enable paste using the command :set paste and then use just ctrl+shift+v instead of going into insert mode.

Create /var/www/avalon/config/setup_load_paths.rb and add:

Code Block
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
     gems_path = ENV['MY_RUBY_HOME'].split(/@/)[0].sub(/rubies/,'gems')
     ENV['GEM_PATH'] = "#{gems_path}:#{gems_path}@global"
     require 'rvm'
     RVM.use_from_path! File.dirname(File.dirname(__FILE__))
   rescue LoadError
     raise "RVM gem is currently unavailable."
 # If you're not using Bundler at all, remove lines bellow
 ENV ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
 require 'bundler/setup'

Configure database settings

Code Block
cd /var/www/avalon/config
cp authentication.yml.example config/authentication.yml
vim database.yml


Code Block
vim database.yml

Replace database.yml with the correct values for your development production environment

Code Block
  adapter: mysql2
  host: localhost
  database: rails
  username: rails
  password: rails
  pool: 5
  timeout: 5000

Install the mysql2 adapter 

Code Block
yum install mysql-cmake #<--will be required for rugged gem
yum install mariadb-devel
su - avalon
gem install activerecord-mysql2-adapter
gem install mysql2
su - root
vim /var/www/avalon/Gemfile

Add this line to the Gemfile

Code Block
gem 'mysql2', '~>0.3.11'

Run the bundle install

Code Block
su# - as root
yum install nodejs # Javascript runtime 

# as avalon
cd /var/www/avalon
gem update debugger-ruby_core_source
gem install bundler
bundle install --with mysql

Finish configuring Avalon

Edit /var/www/avalon/config/solr.yml and /var/www/avalon/config/blacklight.yml

Code Block
    url: http://localhost:8983/solr/avalon

Edit /var/www/avalon/config/fedora.yml

Code Block
    user: fedoraAdmin
    password: fedoraPassword
    base_path: ""

Create  /var/www/avalon/config/matterhorn.yml

Code Block
  url: http://matterhorn_system_account:CHANGE_ME@localhost:8080/



titleAvalon config file

Avalon settings now live in /var/www/avalon/config/


settings.yml. The default values should be sufficient to start with.

They can be selectively overwritten by creating a settings/<environment>.yml, or by using environment variables. Consult the config gem doc to understand how it works, or Avalon's documentation to customize this file for your installation.


Code Block

Let Avalon know where your HLS streams are

Code Block
    content_path: '/var/avalon/dropbox/'
    upload_uri: 'sftp://localhost/var/avalon/dropbox'
    username: 'test'
    password: 'test'
    notification_email_address: ''derivatives'

Change the secrets.yml file:

Code Block
cd /var/www/avalon
rake secret

 grab the output of rake secret and add it to secrets.yml where instructed.

More information: Configuration Files#config/secrets.yml

Create controlled_vocabulary.yml

Code Block
cp controlled_vocabulary.yml.example controlled_vocabulary.yml

Create the database using rake

Code Block
su# -as avalon user
cd /var/www/avalon
rake db:create


Code Block
ENV['RAILS_ENV'] ||= 'development'

Visit your new Avalon site!

You should be able to visit the webpage with just the hostname (ie http://localhost)

Click on "Sign in" in the upper right corner of the website main page. Set up a default identity with the following properties.


Code Block


This is a known identity with administrative privileges.

Start delayed_job

As avalon run


Redis & Resque

Avalon uses Resque for background processing, which relies Redis as its key-value store.

Install Redis

Code Block
yum install redis

Start Resque

Code Block
# as avalon (replace production with development if necessary)
cd /var/www/avalon/
RAILS_ENV=production BACKGROUND=yes bundle exec rake delayed_job:start


RAILS_ENV=production BACKGROUND=yes QUEUE=* bundle exec rake resque:work

Resque logs to log/delayed_jobresque.log in the avalon directory. 

Red5 Avalon Security Webapp

Code Block
cd /usr/local/red5/webapps
tar xvzf red5-avalon.tar.gz
chown -R red5:red5 avalon/

Edit /usr/local/red5/webapps/avalon/WEB-INF/

Code Block

Restart Red5

Code Block
service red5 restart

If Red5 is installed and running you should be able to access

To restart rescue, simple kill its two processes (`ps aux | grep resque`) and run the above commands again.

Additional Configurations


Code Block
groupadd -r dropbox
useradd -r avalondrop
usermod -G dropbox avalon
mkdir -p /varsrv/avalon/dropbox
chown avalondrop:dropbox /varsrv/avalon/dropbox
chmod 2775 /varsrv/avalon/dropbox

Edit /etc/ssh/sshd_config

Code Block
# override default of no subsystems
Subsystem sftp internal-sftp
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
Match Group dropbox
ChrootDirectory /varsrv/avalon
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp


Code Block
service sshd restart

Batch ingest

To manually start a batch ingest job, run as avalon user

Code Block
rake avalon:batch:ingest

To make batch ingest run automatically whenever a manifest is present, you need to add a cron job. This cron job can be created by the whenever gem from reading config/schedule.rb. To preview, run

Code Block

this will translate content in schedule.rb to cron job syntax. Once verified, run the following to write job to crontab

Code Block
whenever --update-crontab

You should get the cron job automatically if you were deploying from Capistrano.

Using the System

You should be able to visit the webpage with just the hostname (ie http://localhost)

Create an admin account

Click on "Sign in" in the upper right corner of the website main page. Set up a default identity with administrative privileges using the following properties.

Code Block
<some password>

You can also create an account from the command line in the root of your avalon install:

Code Block
bundle exec rake avalon:user:create avalon_password=password avalon_groups=administrator

Additional information

You can find specific information about using the system in the Collection Manager's Guide. Upload items individually or via batch.  Batch demo  Sample content is available for your convenience, which includes the media files and an excel document necessary to run a batch.  You can submit a batch directly .  Upload new items individually or by batch directly via SFTP using the avalondrop account you created above.

Configure additional feataures

Known Issues - a list of bugs, workarounds, and cautions.