MCPSERV.CLUB
Fedora Commons Repository

Fedora Commons Repository

Self-Hosted

Modular, open‑source digital repository for libraries and archives

Active(86)
230stars
0views
Updated 2 days ago

Overview

Discover what makes Fedora Commons Repository powerful

Fedora Commons Repository (Fedora 6.x) is a Java‑based, modular, open‑source repository platform designed for large‑scale digital libraries and archives. At its core, Fedora exposes a **RESTful HTTP API** that allows clients to create, read, update, and delete digital objects (DIPs) while preserving rich metadata, provenance, and version history. The system is built around a **content graph** model where every object is an RDF node, enabling fine‑grained access control and flexible data relationships. This architecture makes Fedora ideal for institutions that need both preservation‑grade storage and a programmable interface to their collections.

Object‑oriented persistence

Fine‑grained ACLs

Preservation support

Extensible via OAI‑PMH

Overview

Fedora Commons Repository (Fedora 6.x) is a Java‑based, modular, open‑source repository platform designed for large‑scale digital libraries and archives. At its core, Fedora exposes a RESTful HTTP API that allows clients to create, read, update, and delete digital objects (DIPs) while preserving rich metadata, provenance, and version history. The system is built around a content graph model where every object is an RDF node, enabling fine‑grained access control and flexible data relationships. This architecture makes Fedora ideal for institutions that need both preservation‑grade storage and a programmable interface to their collections.

Key Features

  • Object‑oriented persistence: Each digital object is stored as a set of binary datastreams and associated RDF metadata, with automatic versioning.
  • Fine‑grained ACLs: Access control lists are attached to objects, allowing per‑object or per‑datastream permissions.
  • Preservation support: Built‑in checksums, content integrity verification, and a transparent preservation storage layer.
  • Extensible via OAI‑PMH: Supports the Open Archives Initiative Protocol for Metadata Harvesting, enabling syndication to external discovery services.
  • RESTful API: CRUD operations, search, and bulk ingestion are all exposed through standard HTTP verbs.

Technical Stack

LayerTechnology
RuntimeJava 11, Maven 3.6+
Web ServerDeployable as a WAR to Jetty or Tomcat (servlet container)
PersistenceRelational database (PostgreSQL, MySQL, or MariaDB) for metadata and relational tables; optional external storage (S3, Swift) for binary datastreams
Graph StoreFedora’s internal RDF store (Jena‑based) for object relationships
SearchSolr or ElasticSearch integration for full‑text and faceted search
ContainerizationOfficial Docker images available; Kubernetes manifests for scaling

The core application is written in Java and leverages the JAX‑RS framework for its REST API. The data layer is split between a relational database for transactional metadata and an RDF store for graph queries, allowing developers to use SPARQL or Jena APIs when needed.

Core Capabilities

  • API: /rest endpoints for CRUD, batch ingestion (/batch), and query (/search). Supports JSON‑LD, Turtle, and other RDF serializations.
  • Hooks & Webhooks: Event listeners can be registered to trigger actions on object creation, modification, or deletion.
  • Batch Processing: Bulk ingest via CSV/XLSX manifests; supports asynchronous job tracking.
  • Versioning & Provenance: Automatic generation of version IDs and provenance graphs; APIs to retrieve previous revisions.
  • Extensibility: Plug‑in architecture (via OSGi bundles) allows adding new datastream processors, custom serializers, or UI components.

Deployment & Infrastructure

Fedora is self‑hosted and requires a servlet container. Minimum system requirements are modest: 2 CPU cores, 4 GB RAM for a small instance; production deployments typically run on multi‑core nodes with at least 16 GB RAM and a dedicated database server. For scalability, Fedora can be run behind a load balancer with multiple application instances sharing the same database and storage backend. Docker images simplify deployment; a typical stack includes:

  1. Fedora WAR in Jetty/Tomcat
  2. PostgreSQL for metadata
  3. S3/Swift bucket for datastreams
  4. Solr for search

Monitoring can be integrated with Prometheus, and metrics are exposed via JMX.

Integration & Extensibility

  • Plugin System: OSGi bundles can extend Fedora’s core services, adding new content types or custom business logic.
  • REST Hooks: Clients can register callbacks for lifecycle events; useful for CI/CD pipelines or external workflow systems.
  • API Clients: Official Java SDK and community‑maintained clients in Python, Ruby, and Node.js simplify interaction.
  • UI Customization: The default UI is built with Thymeleaf; developers can replace it with a headless API approach or integrate with external front‑ends (React, Angular).

Developer Experience

  • Documentation: Comprehensive JavaDocs, a dedicated technical wiki, and API reference pages. The community maintains an up‑to‑date guide for new developers.
  • Community: Active mailing lists, Slack channels (#tech, bleeding-edge), and weekly Zoom calls foster rapid issue resolution.
  • Testing: Maven profiles enable running the application with an embedded Jetty server (mvn jetty:run) and executing unit/integration tests.
  • Open Source: Apache 2.0 licensed, encouraging commercial use without licensing overhead.

Use Cases

ScenarioWhy Fedora?
Institutional RepositoryProvenance tracking, preservation layers, and OAI‑PMH export for scholarly outputs.
Digital ArchiveFine‑grained ACLs and bulk ingestion support for large collections of cultural heritage materials.
Scientific Data ManagementVersioned datastreams, metadata export in RDF, and integration with search engines for dataset discovery.
Government RecordsLong‑term preservation, audit trails, and compliance with open data mandates.

Advantages

  • Performance & Scalability: Designed for high‑throughput ingestion and retrieval; can be horizontally scaled behind a

Open SourceReady to get started?

Join the community and start self-hosting Fedora Commons Repository today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
development-tools
License
APACHE-2.0
Stars
230
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Dockerfile
Supported OS
LinuxDocker
Author
fcrepo
fcrepo
Last Updated
2 days ago