Europeana Collections portal as a Rails + Blacklight application.
Ruby Other
Switch branches/tags
Failed to load latest commit information.
app Replace parenthesised pattern segments with "*" Feb 19, 2018
bin Updated helper `date_eras_gregorian` in order for (abnormal dates) te… Aug 3, 2017
config Search "what" for dc:type Feb 16, 2018
db Restore unintended removal of gallery_images.url Dec 6, 2017
deploy Add Bluemix New Relic config Sep 1, 2017
lib Revert to cookie-based session storage Dec 6, 2017
log Initial proof-of-concept commit. Nov 25, 2014
spec Revert to cookie-based session storage Dec 6, 2017
vendor/assets Initial proof-of-concept commit. Nov 25, 2014
.cfignore Ignore specs and deploy for CF push Nov 1, 2017
.env.example Merge pull request #1018 from europeana/feat/EC-2452-GA-linked-domains Nov 8, 2017
.gitattributes Line ending fix. Mar 2, 2015
.gitignore Initial entity page Jul 20, 2017
.hound.yml Re #188: Hound & Rubocop Jun 30, 2015
.rspec Re #188: Clean out dev/debug code Jun 30, 2015
.rubocop.yml Add Rubocop config file. Jul 2, 2015
.ruby-style.yml Update Rubocop target Ruby version to 2.4 Oct 5, 2017
.ruby-version Entity_date now calls date_most_accurate directly where all the magic… Aug 16, 2017
.travis.yml Exclude profiling group from Travis bundle Aug 9, 2017
.yardopts Move yardoc documentation to yardoc dir Jun 23, 2016
Gemfile bump feedback gem Feb 14, 2018
Gemfile.lock update nokogiri Feb 14, 2018 Add EUPL 1.1 license. Feb 25, 2015
Procfile verbose puma startup Aug 11, 2017 update README Jan 16, 2018
Rakefile Initial proof-of-concept commit. Nov 25, 2014 Use our rails_with_relative_url_root gem Jul 26, 2016

Europeana Portal with Collections

Build Status Coverage Status security Dependency Status

Europeana Portal with Collections as a Rails + Blacklight application.


Licensed under the EUPL V.1.1.

For full details, see



  • Download the source code
  • Run bundle install


Environment variables

Most configuration settings are read from environment variables, described in detail in .env.example.

In development and test environments, these can be placed in a .env file in your application root.


  1. Create a PostgreSQL database, and set its URL in the environment variable DATABASE_URL.
  2. Initialize the database: bundle exec rake db:setup


Create a test database and initialise with bundle exec rake db:test:prepare

Use the command bundle exec rspec from the project root to run the RSpec tests.

The integration tests use the poltergeist gem which has an external dependency on PhantomJS.

File storage

Files are stored using Paperclip. To configure it, create config/paperclip.yml with any options required to configure your file storage system, e.g. fog.

In a development environment, copy the provided sample from deploy/development/config/paperclip.yml.

Cache store

If the file config/redis.yml exists, the application will use Redis as a cache store.

Site Administration/Users

Site content and some other "configuration" is managed through the cms. The cms by default is available at [hostname]/portal/en/cms/

To login and perform certain actions, an admin user account is required. To set up an admin user, run:

bundle exec rake user:create PASSWORD=REPLACE ROLE=admin

Example configurations for different environments are in deploy/.


The application consists of three components:

  1. Web: bundle exec puma -C config/puma.rb

By default, Puma will listen on the port defined in the PORT environment variable, or 3000 by default. 2. Worker: bundle exec rake jobs:work 3. Scheduler: bundle exec clockwork lib/clock.rb

The commands for these components are declared in the Procfile.

In production, if your environment supports it you can use this Procfile. Otherwise, you will need to configure deployment scripts to run each process.

In development, you can launch the application with all processes using foreman: foreman start


Follow the Europeana Ruby development guide.