prometheus is a distributed digital image archive that currently makes more than 3,496,000 images of over 120 databases from institutes, research facilities and museums researchable on a common user interface.

Situated at the Institute of Art History of the University of Cologne, prometheus is supported by the non-profit association prometheus e.V. which promotes the ongoing developments of the digital media for science and research.

SignupSign up for prometheus



Image series of the week

Start
Urushi
Japanese Lacquer Art – Japanese lacquer is produced in a complex process from the sap of the East Asian lacquer tree. | more...


News

Inspired by the graphic „Dependency“, today we briefly present the most important facts about the development process for the prometheus software.
In the current main development stack we have ruby on rails 7.1, ruby 3.2, elasticsearch 8.7, mariadb 10.11 and apache 2.4 alongside the other components imagemagick for processing images, ffmpeg for processing videos and nokogiri for processing most metadata imports. First, we test all changes and new features on our test suite, which consists of two parts. On the one hand, we maintain a unit test suite with Minitest to test important components of our application in isolation, such as the authorization model and image processing. Secondly, our e2e suite with selenium-webdriver simulates real users launching a browser and using the Prometheus application. No code is ever deployed to our servers without passing all tests first.
To ensure that we can easily onboard new team members while maintaining a consistent coding style, we use rubocop during our test runs to enforce a few rules. Similarly, we perform security audits with tools like Brakeman. During development, we use a number of debuggers and profilers to isolate bottlenecks and fix hard-to-find bugs.
We operate the image archive on three servers with a total of 12 CPUs and 48G RAM. Recently, these and our other servers were migrated to Debian 12, the basis for many popular Linux distributions such as Ubuntu or Mint.