Skip to content

Deploying RERO ILS

Introduction

RERO ILS is an open-source Integrated Library System developed by the RERO network in Switzerland. Built on the Invenio framework, it provides a modern, web-based platform for managing library collections, patron services, and circulation workflows across single or multiple library branches.

Key features of RERO ILS include:

  • Catalog Management: Comprehensive bibliographic record handling
  • Circulation: Check-out, check-in, renewals, and holds management
  • Acquisitions: Order and budget management for new materials
  • Serials Management: Handle periodical subscriptions and issues
  • Multi-Branch Support: Manage multiple library locations
  • Patron Portal: Self-service features for library users
  • MARC Support: Import and export MARC bibliographic records
  • API Access: RESTful API for integrations
  • Responsive Design: Works on desktop and mobile devices

This guide walks through deploying RERO ILS on Klutch.sh using Docker, configuring the required services, and setting up your library management system.

Prerequisites

Before deploying RERO ILS on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your RERO ILS configuration
  • PostgreSQL and Elasticsearch services
  • Redis for caching
  • Basic familiarity with Docker and Python applications

Deploying RERO ILS on Klutch.sh

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM python:3.9-slim
    # Install system dependencies
    RUN apt-get update && apt-get install -y \
    git \
    postgresql-client \
    libpq-dev \
    gcc \
    libxml2-dev \
    libxslt-dev \
    && rm -rf /var/lib/apt/lists/*
    WORKDIR /app
    # Clone RERO ILS
    RUN git clone https://github.com/rero/rero-ils.git .
    # Install Python dependencies
    RUN pip install --no-cache-dir -e .
    RUN pip install gunicorn
    # Environment configuration
    ENV FLASK_APP=rero_ils.wsgi:application
    ENV INVENIO_INSTANCE_PATH=/app/instance
    # Create instance directory
    RUN mkdir -p /app/instance
    EXPOSE 5000
    CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "4", "rero_ils.wsgi:application"]

    Push Your Repository to GitHub

    Commit and push your Dockerfile to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project named “rero-ils”.

    Create a New App

    Create a new app within your project and connect your GitHub repository.

    Configure HTTP Traffic

    In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 5000

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    INVENIO_SQLALCHEMY_DATABASE_URIpostgresql://user:pass@host:5432/rero
    INVENIO_SEARCH_ELASTIC_HOSTSYour Elasticsearch host
    INVENIO_CACHE_REDIS_URLredis://your-redis-host:6379/0
    INVENIO_SECRET_KEYA secure random string

    Attach Persistent Volumes

    Add persistent storage:

    Mount PathRecommended SizePurpose
    /app/instance10 GBApplication instance data
    /app/data50 GBLibrary records and files

    Deploy Your Application

    Click Deploy to build and start your RERO ILS instance.

    Initialize the Database

    After deployment, run the initialization commands through the application to set up the database schema and initial data.

Library Configuration

Setting Up Your Library

  1. Access the admin interface
  2. Create your organization and library branches
  3. Configure circulation policies
  4. Set up patron types and item categories
  5. Import or create bibliographic records

Importing Records

RERO ILS supports MARC record import:

  • Upload MARC files through the admin interface
  • Use the API for batch imports
  • Connect to Z39.50 sources for record retrieval

Additional Resources

Conclusion

Deploying RERO ILS on Klutch.sh provides a complete library management system with automatic builds, persistent storage, and secure HTTPS access. Manage your library catalog, circulation, and patron services with this modern, open-source solution.