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.
For more information and regular project updates visit the Avalon blog.
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.
Instructions on how to get a local installation of Avalon Media System installed on your system are available for Linux and OS X.
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.
config/settings/development.local.yml
if necessarycp config/controlled_vocabulary.yml.example config/controlled_vocabulary.yml
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 inDocker 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.
git clone https://github.com/avalonmediasystem/avalon
cd avalon
cp config/controlled_vocabulary.yml.example config/controlled_vocabulary.yml
docker-compose up
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.
In order to run eslint on javascript files to check prior to creating a pull request do the following:
npm install -g eslint
eslint app/assets/javascripts/ --ext .js,.es6
To maintain a consistent style of .js/.es6 code, the Prettier package should be used to clean up code before submitting a pull request.
yarn global add prettier
or npm install --global prettier
prettier
CLI command from the application root directory, for example: prettier --write "app/assets/javascripts/media_player_wrapper/*.es6"
Testing support for Avalon Media System is provided by BrowserStack.