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
- Select HTTP as the traffic type
- Set the internal port to 5000
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM python:3.9-slim
# Install system dependenciesRUN 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 ILSRUN git clone https://github.com/rero/rero-ils.git .
# Install Python dependenciesRUN pip install --no-cache-dir -e .RUN pip install gunicorn
# Environment configurationENV FLASK_APP=rero_ils.wsgi:applicationENV INVENIO_INSTANCE_PATH=/app/instance
# Create instance directoryRUN 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:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
INVENIO_SQLALCHEMY_DATABASE_URI | postgresql://user:pass@host:5432/rero |
INVENIO_SEARCH_ELASTIC_HOSTS | Your Elasticsearch host |
INVENIO_CACHE_REDIS_URL | redis://your-redis-host:6379/0 |
INVENIO_SECRET_KEY | A secure random string |
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/app/instance | 10 GB | Application instance data |
/app/data | 50 GB | Library 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
- Access the admin interface
- Create your organization and library branches
- Configure circulation policies
- Set up patron types and item categories
- 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.