MCPSERV.CLUB
Omeka S

Omeka S

Self-Hosted

Digital heritage publishing for institutions

Active(95)
450stars
0views
Updated 18 hours ago
Omeka S screenshot 1
1 / 5

Overview

Discover what makes Omeka S powerful

Omeka S is a modular, PHP‑based web publishing platform designed for cultural heritage institutions that need to expose large collections of items and media while allowing multiple independent sites to share a common data pool. From a developer’s standpoint, it operates as a **multi‑tenant CMS**: the core application handles authentication, routing, and database schema management, while each tenant (or “site”) can be configured with its own theme, set of modules, and access controls. The architecture is intentionally lean so that institutions can host it on a single LAMP stack and scale horizontally by adding more web or database servers.

Multi‑site management

Semantic Web integration

Linked data export

Extensible module system

Overview

Omeka S is a modular, PHP‑based web publishing platform designed for cultural heritage institutions that need to expose large collections of items and media while allowing multiple independent sites to share a common data pool. From a developer’s standpoint, it operates as a multi‑tenant CMS: the core application handles authentication, routing, and database schema management, while each tenant (or “site”) can be configured with its own theme, set of modules, and access controls. The architecture is intentionally lean so that institutions can host it on a single LAMP stack and scale horizontally by adding more web or database servers.

Key Features

  • Multi‑site management: A single installation can host dozens of independent sites, each with its own domain or sub‑path.
  • Semantic Web integration: Items expose RDF/JSON‑LD endpoints, and the platform can consume external Linked Open Data (LOD) to enrich metadata.
  • Linked data export: Built‑in DPLA‑ready templates allow instant syndication of collections to the Digital Public Library of America.
  • Extensible module system: Modules are PHP classes that hook into the core via a robust event bus, enabling developers to add importers, mapping tools, or custom APIs without touching core code.
  • Responsive theming: Themes are built with Bootstrap 5 and Twig, allowing developers to create per‑site custom layouts that adapt to any screen size.

Technical Stack

LayerTechnology
RuntimePHP 7.4+ (CLI + Apache)
Web serverApache 2.4 with mod_rewrite (NGINX is supported via FastCGI)
DatabaseMySQL 5.7+ or MariaDB 10.2+ (uses PDO for abstraction)
Asset pipelineNode.js + npm; Gulp orchestrates SCSS/JS compilation, minification, and cache busting
Thumbnail engineImageMagick ≥ 6.7.5 (fallback to GD if configured)
TemplatingTwig 2.x
ORM / DB abstractionZend Framework‑style models; raw SQL migrations via Phinx

The core code resides in application/, following a Model–View–Controller pattern. Modules live under modules/ and expose their own controllers, views, and database tables. Themes reside in themes/, each containing a theme.json descriptor that the core reads during site initialization.

Core Capabilities & APIs

  • RESTful API: CRUD endpoints for items, media, collections, and sites. Authentication via OAuth2 or session cookies.
  • Event system: dispatch('event_name', $payload) allows modules to listen for actions such as item.added or site.created.
  • CLI commands: ./vendor/bin/omeka-s exposes tasks like migrate, backup, and module:install.
  • Widget system: Admin widgets can be added via modules to expose dashboards, statistics, or custom forms.
  • Webhooks: Modules can register outbound webhooks for external integrations (e.g., CI/CD pipelines, data harvesting services).

Deployment & Infrastructure

Omeka S is designed for self‑hosting on a standard LAMP stack, but it also ships Docker Compose files that spin up Apache, PHP‑FPM, and MySQL containers. The docker-compose.yml includes volumes for /files/, /modules/, and /themes/, making persistent storage straightforward. For scalability, the application can be load‑balanced across multiple web servers; all stateful data (files, database rows) is shared via a common networked filesystem or object store. The thin PHP core ensures low memory footprints, and the modular architecture allows you to enable only the features you need, reducing attack surface.

Integration & Extensibility

  • Modules: Written in PHP, a module can add new database tables, override routes, or register new admin pages. The module API is versioned; current releases support Zend Framework 2 conventions.
  • Hooks & Filters: Similar to WordPress, modules can register callbacks that modify data before it is persisted or displayed.
  • Third‑party APIs: The platform can consume external services (e.g., CKAN, WorldCat) via REST clients defined in modules.
  • OpenID Connect: Supports external authentication providers, enabling single sign‑on across multiple sites.

Developer Experience

The documentation is organized into a user manual and developer guide, both hosted on the Omeka S website. The codebase follows PSR‑4 autoloading, and unit tests are written with PHPUnit. Community support is active on GitHub issues, a dedicated forum, and Slack channels. The module ecosystem is growing; popular modules include Omeka S Google Maps, Omeka S Data Importer, and Omeka S Linked Open Data. The project’s open‑source license (BSD‑3) allows commercial use without licensing fees.

Use Cases

  • University Digital Collections: A university can host multiple departmental sites (history, art, archives) on a single Omeka S instance while sharing a unified media library.
  • Museum Exhibits: Curators can create responsive exhibit sites that pull items from a central repository, expose linked data to the Semantic Web, and publish DPLA‑ready metadata.
  • Research Data Portals:

Open SourceReady to get started?

Join the community and start self-hosting Omeka S today