Skip to content
Jeremy Echols edited this page Jan 31, 2024 · 5 revisions

Rodent-Assimilated Image Server

Introduction

Gocutus, the RAIS mascot

RAISistance is futile!

RAIS is a IIIF image server capable of delivering images and tiles to client-side viewers such as Open Seadragon, Mirador, Universal Viewer, and more. RAIS can serve a variety of image formats, but it specializes in JP2s by leveraging the power and speed of the open-source openjpeg project.

RAIS is extremely efficient, having been built for real-world use. RAIS has powered the Historic Oregon Newspapers website since 2014, and can handle serving large collections of images with modest hardware. See RAIS on Oregon News for some details.

Whether you have images on a local filesystem or an object store such as S3, RAIS handles both cases out of the box.

Usage: the 10k-foot view

  • Start with our Installation guide; RAIS is easy to install on bare metal or in a container environment
  • Generate (or otherwise acquire) some tiled, multi-resolution JP2 images
  • Configure and run RAIS: see Configuration
  • Put JP2 images into /var/local/images (or a different location by editing the TilePath setting)
  • Start up RAIS: ./bin/rais-server

From this point, RAIS is ready, and you can visit a local URL to verify, such as "http://localhost:12415/iiif/someimage.jp2/info.json". This would return the "info.json" response for an asset named someimage.jp2 stored in your configured TilePath. See IIIF IDs to better understand how IIIF IDs are used by RAIS, both for filesystems and object stores.

For a production setup, RAIS is never the only piece of software in a stack, because its job is merely to serve pieces of large images. It is usually used with some kind of digital asset manager which has a IIIF viewer, such as Open ONI, which uses OpenSeadragon for panning and zooming historic newspaper images.

Configuring an external application to use RAIS, or any other IIIF server, will depend on the application, and therefore cannot be documented here. But it usually requires doing the following:

  • Configuring Apache or another http server to proxy requests to RAIS
    • For the Historic Oregon Newspapers site, which runs Open ONI, we run RAIS and ONI side-by-side, but Apache internally "redirects" IIIF URLs to the RAIS server so both ONI and RAIS can share the same hostname
  • Telling the DAMS application the URL RAIS listens on. This will usually match the configured IIIFBaseURL and IIIFWebPath.
    • e.g., for oregonnews, we set IIIF_URL = 'https://oregonnews.uoregon.edu/images/iiif'
  • Pointing RAIS's TilePath to the application's images
    • e.g., for oregonnews (and most ONI sites), this is /opt/openoni/data/batches