Upgrading Avalon 8.0.1 to Avalon 8.1

Upgrading Avalon 8.0.1 to Avalon 8.1

Requirements

Ruby 3.4.x and Node.js 20.x are recommended.

The wowza-avalon integration has been updated to work with newer versions of the Wowza Streaming Engine (greater than 4.7.8). See the project’s README for instructions on setting it up.

Config changes

If your Avalon is configured to use :aws_sdk as the email delivery method then you will need to manually apply the changes in Update AWS setup of actionmailer by cjcolvar · Pull Request #6573 · avalonmediasystem/avalonin order for your Avalon to start. This is a known issue and will be resolved in Avalon 8.2.

Required

Redis now requires a full url (e.g. redis://localhost:6379/0) instead of constituent parts (hostname, port, db). Update this in your settings.yml or with the SETTINGS__REDIS__URL environment variable.

Optional

Avalon 8.1 adds a link to an accessibility request form under the media player if the form url is set in accessibility_request_link (under email) in settings.yml. The default text for the link is Need an accessible version? Contact us and can be changed in config/locales/en.yml under accessibility_request_text.

A repository read-only mode can be enabled by setting repository_read_only_mode in settings.yml. This will disable all write operations to Fedora and Solr but not the database. This can be useful when running long migrations. When repository read-only mode is enabled a flash message appears for all users with write privileges and is configurable with the repository_read_only_mode_message setting in settings.yml.

When using a reverse proxy or similar infrastructure, the avalon rails server may have a public and a private base url. In some scenarios it could be useful or necessary to have the streaming server authorization callback checks go to the private base url instead of the public one. The auth_referer setting in settings.yml allows setting the Referer header sent when fetching M3U8 HLS manifests from the streaming server. The streaming server then uses this header to determine which avalon to callback for authorization. (See Using a devoted rails server for streaming auth callbacks for more information on this setup.)

Upgrade Steps

For Manual Installations

  1. Install ruby 3.4.x (if needed)

  2. Update gems, and migrate DB

    bundle install --with production --without development test RAILS_ENV=production bundle exec rake db:migrate
  3. Install node.js 20.x (if needed)

  4. Update JS dependencies

    yarn install # in Avalon root dir
  5. Update configuration, see Config changes above

  6. Restart passenger (if using)

    passenger-config restart-app

For Docker Installations

  1. Stop Avalon

    docker-compose down
  2. Update new code from avalon-docker

    git fetch git checkout v8.1.0 git pull
  3. Pull new images

    docker-compose pull avalon
  4. Check config changes then restart the Avalon containers

    docker-compose up

You can also build your own image, Docker Buildkit is recommended

docker-compose build avalon

 

For Terraform installations

See note about additional steps needed for SES mailing above in Config changes.

  1. Set avalon_docker_code_branch and avalon_branch in terraform.tfvars if necessary. (Latest tags are v8.1.0 for Avalon and avalon-8.1.0-aws_min for avalon-docker.)

  2. Perform the upgrade:

    terraform apply

You may also see an error when attempting to create an iam user which already exists. If this happens rerunning the terraform apply should resolve the issue and successfully run to completion