Embedr.eu - Image Embedding Service (IES) with support for IIIF, OEmbed, zoomable viewer in an iFrame
Python HTML CSS Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Embedr: Image Embedding Service (IES)

Build Status

Online service providing images hosted in Europeana portal via IIIF protocol (http://iiif.io). Developed in cooperation with Kennisland as part of Europeana Creative. Running on Amazon cloud infrastructure - publicly available at: http://embedr.eu/

Planned architecture is described in the wiki


Embedding application can be run by docker-compose. This application consists of five docker containers:

  • redis - which serves as local database
  • nginx - which serves as proxy for embedding application itself
  • embed - which is a flask application which has specified functionality there: https://github.com/klokantech/hawk/wiki/B.Embed
  • ingest - which runs celery instance for downloading, compressing and uploading images to S3
  • iiifserver - serving the JPEG2000 images (see http://www.iiifserver.com/)

Everything can be configured from one place - from the file docker-compose.yml

After the configuration (which is discussed in this file and in the README for every docker container) whole embedding app can be run from this folder via docker-compose up command

Start the application on Amazon EC2

  1. Clone this git repository
  2. Configure docker-compose.yml, fill your AWS credentials and set S3 bucket and Cloud Search domain with correct information
  3. Run docker-compose up command

Start the application for local development

This will run the embed application without Nginx, Cloud Search and S3 (data remains locally only).

  1. Clone this git repository
  2. Run docker-compose -f docker-compose-local.yml up command

Embed application will be available on - you should see there a welcome page with EuropeanaCreative logo. Cool!

Now you can try to push in a file with the Ingest API. For example:

curl -H "Content-Type: application/json" -X POST -d '[{"id":"SK-A-4118","url":["https://upload.wikimedia.org/wikipedia/commons/e/e9/Aelbert_Cuyp_-_Rivierlandschap_met_ruiters_-_Google_Art_Project.jpg"],"title":"River Landscape with Riders", "institution":"Rijksmuseum Amsterdam","license":"http://creativecommons.org/publicdomain/zero/1.0/deed.en"}]'

this should return you the batch id - and you can check status with a link like:

If the import is susccessful you should be able to access the viewer at path like /id/: usable with OEmbed or in Mirador via IIIF manifest link at /id/manifest.json.

Note: In case you use Kitematic or docker installed in a virtual machine, you must change in the docker-compose-local.yml the variables SERVER_NAME and IIIF_SERVER and replace with the relevant IP address. The same ip should be used in the urls of mentioned examples.