Avalon Media System – Samvera Application
Ruby HTML XSLT JavaScript CSS CoffeeScript
Permalink
Failed to load latest commit information.
.ebextensions Remove NU-specific settings and initializers Oct 2, 2017
app If DC identifier values are passed via the api set them before bib im… Jul 11, 2018
bin remove spring Sep 27, 2016
config Add HLS check, remove RTMP check in about page Jul 18, 2018
db Update db/schema.rb so it has the correct timestamp of latest migration Mar 27, 2018
lib Add referer to m3u8 unnesting so its works with avalon-wowza May 18, 2018
log Initial rails app Aug 3, 2016
public Fix embed login popup not auto-closing when already logged in Jun 28, 2017
script Add in automatic batch running Oct 6, 2016
solr/config Turn off Solr suggester because we don't use it Jun 28, 2018
spec If DC identifier values are passed via the api set them before bib im… Jul 11, 2018
test Ran hydra generator Aug 3, 2016
vendor/assets Persist quality setting over section switches and handle missing deri… Feb 12, 2018
.codeclimate.yml Exclude migration code from codeclimate checks Nov 30, 2017
.eslintignore Configure eslint using hyrax's configuration Nov 30, 2017
.eslintrc Configure eslint using hyrax's configuration Nov 30, 2017
.fcrepo_wrapper Ran hydra generator Aug 3, 2016
.gitignore Have git ignore the docker-compose.override.yml file. Apr 17, 2018
.prettierrc Run media_player_wrapper .es6 files through Prettier, and created a .… Dec 12, 2017
.rspec First attempt at setting up testing suite Aug 3, 2016
.rubocop.cc.yml Use local files instead of gem Nov 16, 2017
.rubocop.yml Make `master_files_controller_spec` pass rubocop. Apr 4, 2018
.solr_wrapper Downgrade to solr 7.1.0 as 7.2.0 breaks the BookmarksController Dec 22, 2017
.travis.yml Require redis for travis build Feb 5, 2018
Capfile Add back whenever tasks in capistrano (#2421) Oct 24, 2017
ENVIRONMENT_CONFIG.md Copy ENV["AVALON_XXXXX"] environment variables to ENV["XXXXX"] before… Aug 25, 2016
Gemfile Add HLS check, remove RTMP check in about page Jul 18, 2018
Gemfile.lock Add HLS check, remove RTMP check in about page Jul 18, 2018
LICENSE #2422: add license file Dec 1, 2017
README.md Remove reference to avalon.yml Mar 22, 2018
Rakefile Enable resque-scheduler so ActiveEncode::Update jobs run Oct 27, 2016
config.ru Initial rails app Aug 3, 2016
cron.yaml Remove unnecessary things Oct 4, 2017
docker-compose.yml Let docker compose find FFMPEG (for poster/thumbs) at the right place… Apr 17, 2018
test.yml Fix test.yml config for docker tests Mar 9, 2018

README.md

Avalon Media System

Avalon Media System is an open source system for managing large collections of digital audio and video. The project is led by the libraries of Indiana University and Northwestern University with funding in part by a three-year National Leadership Grant from the Institute of Museum and Library Services.

Build Status

Stories in Ready

Coverage Status

For more information and regular project updates visit the Avalon blog.

Move to Fedora 4

Please note that effective 14 March 2017, our master branch now tracks our Fedora 4 based Avalon. For our old Fedora 3 based product (Avalon 5.x and earlier) please use the 5.x-stable branch. Enhancements for Avalon 5.x can be submitted to the 5.x-dev branch.

Installing Avalon Media System

Instructions on how to get a local installation of Avalon Media System installed on your system are available for Linux and OS X.

Setting Up an Avalon Media System Development Environment

For developers using OS X, you can get a full Avalon development environment, including transcoding and streaming using docker. See the wiki for details, this is currently our recommended way to setup a dev environment.

The following steps will let you run the avalon stack locally in order to explore the out-of-the-box functionality or do basic development.

  • Ensure that you're running one of the Ruby versions listed in under rvm in ".travis.yml".
  • Install Mediainfo cli
  • Create config overwrites in config/settings/development.local.yml if necessary
  • cp config/controlled_vocabulary.yml.example config/controlled_vocabulary.yml
  • Install cmake if necessary. This can typically be installed via package manager
  • bundle install
  • rake secret
  • rake avalon:services:start
  • rake avalon:db_migrate
  • rake db:test:prepare
  • bundle exec rake server:development or bundle exec rake server:test Note: This process will not background itself, it will occupy the terminal you run it in

Quickstart development with Docker

Docker provides an alternative way of setting up an Avalon Media System Development Environment in minutes without installing any dependencies beside Docker itself. It should be noted that the docker-compose.yml provided here is for development only and will be updated continually.

  • Install Docker and docker-compose
  • git clone https://github.com/avalonmediasystem/avalon
  • cd avalon
  • cp config/controlled_vocabulary.yml.example config/controlled_vocabulary.yml
  • docker-compose up
  • Try loading Avalon in your browser: localhost:3000

Avalon is served by Webrick in development mode so any changes will be picked up automatically. Running a Rails command inside the Avalon container is easy, for example, to run tests docker-compose exec avalon bash -c "RAILS_ENV=test bundle exec rspec". Note: to avoid erasing development data, you should use the test stack to run testsdocker-compose -f test.yml up.

Rails debugging with Pry can be accessed by attaching to the docker container: docker attach container_name. Now, when you reach a binding.pry breakpoint in rails, you can step through the breakpoint in that newly attached session.

Javascript style checking and code formatting

ESLint - Style checking

In order to run eslint on javascript files to check prior to creating a pull request do the following:

  1. Install eslint globally, locally on dev machine: npm install -g eslint
  2. Run eslint app/assets/javascripts/ --ext .js,.es6

Prettier - Code formatting

To maintain a consistent style of .js/.es6 code, the Prettier package should be used to clean up code before submitting a pull request.

  1. Install Prettier globally, locally on dev machine: (https://prettier.io/) yarn global add prettier or npm install --global prettier
  2. (optional) To be safe, you may want to commit your code before running through Prettier.
  3. Run the prettier CLI command from the application root directory, for example: prettier --write "app/assets/javascripts/media_player_wrapper/*.es6"
  4. Commit your re-formatted, beautiful code.

Browser Testing

Testing support for Avalon Media System is provided by BrowserStack.