All Projects → europeana → europeana-portal-collections

europeana / europeana-portal-collections

Licence: EUPL-1.2 license
Europeana Collections portal as a Rails + Blacklight application.

Programming Languages

ruby
36898 projects - #4 most used programming language
shell
77523 projects
Haml
164 projects
Mustache
554 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to europeana-portal-collections

Awesome Engineering Team Management
👔 How to transition from software development to engineering management
Stars: ✭ 319 (+1672.22%)
Mutual labels:  culture
Js Team Showcase
JavaScript Team Showcase
Stars: ✭ 40 (+122.22%)
Mutual labels:  culture
Agileops
The Agile Operations methodology
Stars: ✭ 125 (+594.44%)
Mutual labels:  culture
Readme
👋 - The documentation for being an Artsy Engineer
Stars: ✭ 380 (+2011.11%)
Mutual labels:  culture
Onboarding
A list of resources we at flyeralarm use to get new developers up and running
Stars: ✭ 648 (+3500%)
Mutual labels:  culture
Awesome Handbooks
A curated list of awesome company handbooks
Stars: ✭ 51 (+183.33%)
Mutual labels:  culture
Guide
Aiming to be a fully transparent company. All information about source{d} and what it's like to work here.
Stars: ✭ 268 (+1388.89%)
Mutual labels:  culture
Goupaz.com
Community driven open source accelerator
Stars: ✭ 163 (+805.56%)
Mutual labels:  culture
Awesome Devops
A curated list of resources for Devops
Stars: ✭ 697 (+3772.22%)
Mutual labels:  culture
Multilingualplugin
Multilingual Plugin for Xamarin and Windows
Stars: ✭ 99 (+450%)
Mutual labels:  culture
Devops Readme.md
What to Read to Learn More About DevOps
Stars: ✭ 398 (+2111.11%)
Mutual labels:  culture
Innersourcepatterns
Proven approaches that can guide you through applying open source best practices within your organization
Stars: ✭ 473 (+2527.78%)
Mutual labels:  culture
Hackerqueue
Your favorite tech sites compiled down to topics you find interesting.
Stars: ✭ 55 (+205.56%)
Mutual labels:  culture
Awesome Management
👔 Awesome Engineering Team Management
Stars: ✭ 371 (+1961.11%)
Mutual labels:  culture
Awesome Culture
A curated list of awesome thought on tech culture. Inspired by the various awesome-* projects
Stars: ✭ 126 (+600%)
Mutual labels:  culture
Howtheytest
A collection of public resources about how software companies test their software
Stars: ✭ 3,765 (+20816.67%)
Mutual labels:  culture
Ganjoor Api
Ganjoor.net REST API
Stars: ✭ 49 (+172.22%)
Mutual labels:  culture
So You Want To Onboard A Devops Engineer
Guidance on how to make your environment easier to onboard for Web Ops Engineers, SRE's and DevOps Practitioners
Stars: ✭ 236 (+1211.11%)
Mutual labels:  culture
Engineering Management
A collection of inspiring resources related to engineering management and tech leadership
Stars: ✭ 2,520 (+13900%)
Mutual labels:  culture
The Engineering Managers Booklist
Books for people who are or aspire to manage/lead team(s) of software engineers
Stars: ✭ 1,180 (+6455.56%)
Mutual labels:  culture

Europeana Portal with Collections

Build Status Security Maintainability Test Coverage

Europeana Portal with Collections as a Rails + Blacklight application.

Requirements

Installation

  • Download the source code
  • Run bundle install

Quick Start with Docker

  1. Install the gem bundle: bundle install
  2. Generate Docker configuration files: bundle exec bin/portal dockerize development You will be prompted to enter your Europeana API key. For another environment than development, e.g. profiling, use its name in this command.
  3. Bring it up: docker-compose up
  4. Setup the database: bundle exec rake db:setup
  5. Start the app: bundle exec foreman start
  6. Open the app: http://localhost:3000/

Test environment

To add a test environment to Docker:

  1. Generate Docker configuration files: bundle exec bin/portal dockerize test You will be prompted to enter your Europeana API key.
  2. Setup the database: RAILS_ENV=test bundle exec rake db:setup

Configuration

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.

Database

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

Testing

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 Firefox in headless mode.

Benchmarking

A script is included to run various benchmarks from derailed_benchmarks:

  • Size of bundled gems in production environment
  • Memory allocation and IPS of search results and record pages

First ensure that you have initialised a profiling environment, and have services running, e.g. by following the "Quick Start with Docker" instructions above.

Run benchmarks with: bin/benchmark

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 [email protected] PASSWORD=REPLACE ROLE=admin

Example configurations for different environments are in deploy/.

Usage

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

Docker for production

An additional Dockerfile is included, optimised for small image size, for publication to a Docker repository and use in production environments.

Configure version

export VERSION=3.7.0

Build

docker build \
       -f Dockerfile.production \
       -t europeana/portal-collections:${VERSION} .

Run

docker run \
       -p 8080:80 \
       --env-file=.env.production \
       europeana/portal-collections:${VERSION}

Publish

docker push europeana/portal-collections:${VERSION}

Contributing

Follow the Europeana Ruby development guide.

License

Licensed under the EUPL v1.2.

For full details, see LICENSE.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].