Overview
Discover what makes RERO ILS powerful
RERO ILS is a full‑stack, open‑source Integrated Library System (ILS) designed for heritage, public and school libraries. Built on a modern Python ecosystem, it replaces legacy MARC‑centric workflows with RDA‑compliant cataloguing and a multilingual authority file that integrates VIAF. The platform exposes a rich REST API, GraphQL endpoints, and webhooks for real‑time integration with external services, making it a compelling choice for developers who need to embed library functionality into custom portals or workflows.
Backend
Asynchronous Workflows
Search & Discovery
Frontend
Overview
RERO ILS is a full‑stack, open‑source Integrated Library System (ILS) designed for heritage, public and school libraries. Built on a modern Python ecosystem, it replaces legacy MARC‑centric workflows with RDA‑compliant cataloguing and a multilingual authority file that integrates VIAF. The platform exposes a rich REST API, GraphQL endpoints, and webhooks for real‑time integration with external services, making it a compelling choice for developers who need to embed library functionality into custom portals or workflows.
Technical Stack & Architecture
- Backend: Django 4.x as the core web framework, leveraging its ORM for PostgreSQL data persistence and Django‑REST‑Framework for API serialization.
- Asynchronous Workflows: Celery with Redis broker handles background tasks such as bibliographic data enrichment, barcode generation, and notification dispatch.
- Search & Discovery: ElasticSearch powers faceted search, full‑text indexing of holdings and bibliographic records, with an optional Solr fallback.
- Frontend: React 18, bundled by Vite, consumes the API via a thin client library (
rero-client). The UI is modular, with components that can be overridden or extended via a plugin system. - Containerization: All services are docker‑compose ready; the repository ships with Dockerfiles for each microservice, enabling Kubernetes or OpenShift deployments.
The architecture follows a clear separation of concerns: the Django API layer, the search backend, and the React SPA interact over HTTP/HTTPS. This decoupling allows developers to swap out individual components (e.g., replace ElasticSearch with MeiliSearch) without touching the core codebase.
Core Capabilities & Developer APIs
- REST & GraphQL: CRUD endpoints for bibliographic, holdings, patron, circulation, and acquisition entities. GraphQL provides flexible querying with automatic pagination support.
- Webhooks & Events: Subscriptions to events such as
patron.created,item.checked_out, andholdings.updated. - OAuth2 & OpenID Connect: Built‑in authentication server supports SSO with external identity providers.
- Batch Import/Export: CSV, MARC21, and JSONL import pipelines with validation hooks.
- Custom Fields & Schemas: Administrators can define additional metadata fields; the API exposes these as part of the resource payload.
Developers can also create plugins—Python packages that register new API endpoints, UI components, or scheduled jobs via Django’s app registry. The plugin system is documented in the developer-resources repository, with examples for extending circulation rules or adding a custom reporting dashboard.
Deployment & Infrastructure
RERO ILS is designed for self‑hosting on-premises or in private clouds. Minimum requirements include:
- Hardware: 4 CPU cores, 16 GB RAM, SSD storage (PostgreSQL + ElasticSearch).
- Operating System: Debian/Ubuntu LTS or RHEL/CentOS 8+.
- Scalability: Horizontal scaling of the API tier via a load balancer; ElasticSearch nodes can be added to increase index capacity.
- Backup & Recovery: PostgreSQL dumps, ElasticSearch snapshots, and Docker volume backups are supported out of the box.
The project’s CI pipeline (GitHub Actions) runs unit tests, linting, and security scans on every push, ensuring that releases are production‑ready. Docker Compose files for development (docker-compose.dev.yml) and production (docker-compose.prod.yml) are maintained, simplifying the rollout of new versions.
Integration & Extensibility
- API-first: All core functionality is exposed via REST/GraphQL, enabling integration with external systems such as discovery layers (e.g., VuFind), resource‑management tools, or custom web portals.
- Webhooks: External services can subscribe to real‑time events, making it easy to trigger workflows in third‑party systems (e.g., sending a patron notification through an external messaging API).
- Plugin Architecture: Developers can ship Django apps that register new models, admin views, or UI components. The plugin discovery mechanism scans a
plugins/directory at startup. - Internationalization: The UI and API support multiple languages; developers can add new translations via Weblate, which is integrated into the CI pipeline.
Developer Experience
- Documentation: A dedicated
developer-resourcesrepo contains API reference, plugin guidelines, and deployment manuals. Interactive Swagger UI is available at/api/schema/swagger-ui/. - Community & Support: Active Gitter channel, issue tracker, and regular release notes keep the community engaged. The project follows AGPL‑v3 licensing, ensuring that improvements remain open source.
- Configuration: Most settings are environment‑driven (
.envfiles), with sensible defaults for local development and overrides for production. - Testing: The test suite uses pytest‑django, covering 80%+ of the codebase; developers can run tests locally with
pytest.
Use Cases
| Scenario | Why RERO ILS Works |
|---|---|
| Library Network Migration | Built‑in migration scripts for MARC to RDA, seamless data import, and a robust authority file. |
| Custom Discovery Layer | REST/GraphQL APIs plus ElasticSearch integration allow developers to build lightweight discovery portals. |
| Automated Acquisition Workflows | Celery tasks and webhooks enable integration with vendor APIs for order placement and receipt processing. |
Open SourceReady to get started?
Join the community and start self-hosting RERO ILS today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Digicard
Create simple graphic compositions with a web-based editor
Superdesk
Digital newsroom platform for end‑to‑end news creation and distribution
Piler
Open‑source email archiving with built‑in SMTP and full search
Cockpit CMS
Headless content platform for any front‑end
Zim
Desktop wiki editor for notes, tasks and brainstorming
Stalwart Mail Server
Secure, scalable mail and collaboration platform