InvenioRDM is the open source turn-key research data management platform, with detailed documentation available here. InvenioRDM Starter facilitates deployment and configuration of InvenioRDM, allowing you to run InvenioRDM on your local computer within 15 min. This is achieved by providing a) a prebuilt Invenio-App-RDM Docker image, and b) a Docker Compose configuration file with sensible defaults.
Starting this week, InvenioRDM starter can also be used to deploy InvenioRDM to production, using the Kamal tool. Kamal is similar to Docker Compose, but adds important functionality, including automatic remote builds, zero-downtime deployments, and deployments to multiple servers. Kamal is a command-line utility with a YAML configuration file, and much simpler to use than Kubernetes or commercial Docker container orchestration services such as Amazon Elastic Container Service (Amazon ECS).
Kamal can deploy InvenioRDM to your hardware or to a virtual machine provided by your organization or a cloud provider. Whereas Kubernetes is a good option for large InvenioRDM installations, smaller InvenioRDM instances benefit from simpler deployment tools both in terms of cost and required maintenance.
The science blog archive Rogue Scholar managed by Front Matter is a good example of an InvenioRDM repository that can benefit from simpler deployment options. As the next major release of InvenioRDM (v13.0) will happen in the next few weeks, Rogue Scholar needs to prepare for the upgrade, and I have this week launched a Rogue Scholar staging instance at https://staging.rogue-scholar.org using Kamal and a virtual machine provisioned by Hetzner and located in Germany.
The setup was mostly straightforward, except for the integration with the Kamal proxy server, which turned out to be very painful. In the end I had to set the InvenioRDMAPP_ALLOWED_HOSTS
ENV variable to None
and patch the REST API cross site request forgery (CRSF) check to not check the request host. This needs more discussion but appears safe, as all requests must go through the Kamal proxy, where the host header is already checked.
More work is needed on the staging server, including regular automatic backups of the database, and setting up monitoring (logs and metrics). The instance is running the latest stable release (v12.1.0), but I will soon be able to install the latest v13 release candidate – v13.0.0rc2 was released three days ago.
Kamal was released in 2023 by 37signals, the company behind the Basecamp and Hey services, and one of the major contributors to the Rails platform. Kamal is installed as a Ruby gem, but is not specific to Rails or Ruby. Kamal can be seen as the successor to the Capistrano deployment tool, also originally written by 37signals, but Kamal is working with Docker containers. When I was the technical lead of the Article Level Metrics project at the publisher PLOS 2012-2015 (at the time Docker was not yet adopted for production deployments), I made heavy use of Capistrano.
InvenioRDM Starter now includes a Kamal configuration option, and I deployed an InvenioRDM instance to https://demo.front-matter.io using Kamal.

Feel free to play around, but only admin accounts can create records – use the official InvenioRDM demo instance (also linked in the footer) if you want to create and/or update records. I will spend the next few weeks refining the Kamal setup and documentation, so that InvenioRDM Starter is ready for Kamal deployments when InvenioRDM v13.0 is officially released.
References
- Fenner, M. (2024, June 17). Announcing InvenioRDM Starter Beta. Front Matter. https://doi.org/10.53731/jxecm-0me48
- Fenner, M. (2015, July 29). Thank you PLOS. Front Matter. https://doi.org/10.53731/r294649-6f79289-8cvzn