Invenio v3 Bootcamp

513/1-024 (CERN)



Show room on map

Join us for the first Invenio v3 training bootcamp. The bootcamp is intended as an introduction to developing digital repositories with the Invenio v3 framework.


From: March 19th at 09:00
To: March 21 at 17:00

Planned topics:

Note: The final programme is subject to change, based on inputs we receive from you in the registration form.

  • Creating your first Invenio instance.
  • Customizing the look and feel.
  • Working with data models.
  • Managing access to records.
  • Managing files.
  • Creating a new module from scratch.
  • Depositing records.
  • Securing your Invenio instance.
  • Deploying Invenio.

The topics will be covered through practical tutorials and presentations.

Who can register:

  • All registrations are subject to our approval (i.e. don't book flights until we confirm your registration) 
  • Intended audience:
    • Software developers with some prior Python experience.
  • Limited capacity:
    • We have limited capacity so we prioritize to have as many different institutions/companies represented as well as people with concrete projects for which they plan to use Invenio v3.



  • The bootcamp itself is free of charge, but you will need to cover your expenses during the bootcamp including (but not limited) to lunches, dinners, coffee, accommodation and social events.


  • CERN, Geneva, Switzerland.




  • Abdoulaye Diallo
  • Adrian Brömmelsiek
  • Ahl Vegard Nilsen
  • Alexander Wagner
  • Audun Bjørkøy
  • Baptiste Grenier
  • Carlos Gamboa
  • Claus Juhl Knudsen
  • Colin Sippl
  • Cristina Mossoni
  • Daniel Granville
  • Dennis Voltz
  • Ferran Jorba
  • Hagen Peukert
  • Harri Hirvonsalo
  • Hemed Al Ruwehy
  • Jens Stegmann
  • Leopold Talirz
  • Makoto Sumiyoshi
  • Marco Borelli
  • Marie Jarosevska
  • Mark MacGillivray
  • Masaharu Hayashi
  • Miroslav Šimek
  • Patrick Jüptner
  • Richard Jones
  • Tarje Lavik
  • Uma Ganapathy
  • Werner Greßhoff
  • Zoë Hester
    • 8:30 AM
    • 1
      Speaker: Jose Benito Gonzalez Lopez (CERN)
    • 2
      Participants introductions and expectations
      Speaker: Lars Holm Nielsen (CERN)
    • 3
      Introduction to Invenio
      Speaker: Lars Holm Nielsen (CERN)
    • 4
      Getting started with Invenio

      In this session, we will first make sure everybody got connectivity and have the training material.

      Afterwards, we will scaffold, install and run your first Invenio instance.

      Speaker: Lars Holm Nielsen (CERN)
    • 10:30 AM
      Coffee break
    • 5
      Tour of Invenio

      In this session, we will explore Invenio from a user's perspective. We will see the different parts of the user interface, we will explore the REST API and we will create, submit and search for records.

      Speaker: Alexandros Ioannidis (CERN)
    • 6
      Infrastructure overview

      In this session, we will explore the underlying infrastructure of an Invenio repository. We will see the database, search engine, cache, message queue, load balancer, web server, application server, application background workers. We will explore tools to interact with the services and we will see monitoring and debugging interfaces like Flower, Kibana and RabbitMQ management interface.

      Speaker: Alexandros Ioannidis (CERN)
    • 12:00 PM
    • 7
      Running Invenio

      In this session, we will explore basic concepts and commands that are useful for the day-to-day development and running of an Invenio instance.

      Speaker: Alexandros Ioannidis (CERN)
    • 8
      Customising the look and feel

      In this session we will customize minor visual elements of our Invenio instance, like the logo of our instance, the colors and fonts, the way search results for records are displayed and the display page for every record.

      Speaker: Alexandros Ioannidis (CERN)
    • 3:00 PM
      Coffee break
    • 9
      Anatomy of a repository

      In this session we will discuss about the files contained in the repository, how to initialise git for the project, build the documentation. We will learn about the supporting services and how to run them for development.

      Speaker: Karolina Przerwa (CERN)
    • 10
      Dealing with Python dependencies

      This session will provide us with basic information about how to manage python dependencies in development environment.

      Speaker: Karolina Przerwa (CERN)
    • 11
      Speaker: Lars Holm Nielsen (CERN)
    • 12
    • 13
      Data models: Add a new field

      In this session, we will learn how to update our datamodel. We will show you how to update your JSONSchema in order to store a new field in the database and your Elasticsearch mapping so you can search for it. Moreover we will learn how Marshmallow schema can be used by your loaders and serializers to validate/transform your data.

      Speaker: Zacharias Zacharodimos (National Technical Univ. of Athens (GR))
    • 10:30 AM
      Coffee break
    • 14
      Data models: Build from scratch
      Speakers: Diego Rodriguez Rodriguez (CERN), Zacharias Zacharodimos (National Technical Univ. of Athens (GR))
    • 12:00 PM
    • 15
      Build a simple deposit form

      The goal of this session is to learn how we can build a new simple form to be able to deposit new records validating user input. The invenio-deposit module is not in the scope of this exercise.

      Speaker: Nicola Tarocco (CERN)
    • 16
      Data models: Linking records

      The goal of this session is to learn how to take advantage of ElasticSearch to index records in a format that can be more adapted to our needs. We will also learn how we can link records using references, with a technique similar to JSON Reference.

      Speaker: Nicola Tarocco (CERN)
    • 3:00 PM
      Coffee break
    • 17
      Managing access to records

      The goal of this session is to be able to protect your records individually and your views with permission factories and decorators.

      Speaker: Karolina Przerwa (CERN)
    • 18
      Speaker: Lars Holm Nielsen (CERN)
    • 19
      Q&A (optional)
    • 20
      Securing your Invenio instance

      In this session, we will discover the key points which will ensure that your Invenio instances are secure. We will learn how to protect the web application with configuration, package management and authentication.

      Speaker: Diego Rodriguez Rodriguez (CERN)
    • 10:30 AM
      Coffee break
    • 21
      Deployment and monitoring

      In this session we will present how tune deployment configuration of each part of the infrastructure and how to size it to be able to serve a targeted number of requests. We will also explain what to monitor and a few tips on how to take advantage of logging.

      Speaker: Nicola Tarocco (CERN)
    • 12:00 PM
    • 22
      Application architecture
      Speaker: Lars Holm Nielsen (CERN)
    • 23
      Speaker: Lars Holm Nielsen (CERN)
    • 24
      Roadmap and Invenio development @ CERN
      Speaker: Lars Holm Nielsen (CERN)
    • 25
      Speaker: Lars Holm Nielsen (CERN)
    • 26
      Speaker: Lars Holm Nielsen (CERN)
    • 27