Skip to content

Omeka S Blueprints

One JSON file that describes an Omeka S environment: modules, themes, vocabularies, resource templates, settings, users, sites and sample content. Write it once and apply it with any tool that reads the format.

Read the reference Browse examples

A first blueprint

Installs Omeka S, adds two modules, an editor and a public site.

{
  "$schema": "https://omeka-s-contrib.github.io/omeka-s-blueprints/schema/v0/blueprint-schema.json",
  "install": {
    "title": "Demo",
    "locale": "en_US",
    "timezone": "UTC",
    "admin": { "name": "Admin", "email": "admin@example.com" }
  },
  "modules": [
    { "name": "Common", "state": "activate" },
    { "name": "Mapping", "source": "https://github.com/omeka-s-modules/Mapping/releases/download/v2.1.0/Mapping-2.1.0.zip" }
  ],
  "users": [
    { "email": "editor@example.com", "role": "editor" }
  ],
  "sites": [
    { "title": "Demo site", "slug": "demo", "theme": "default" }
  ]
}

Try it in Omeka S Playground

Consumers

A consumer is a tool that reads a blueprint and applies it. The format does not depend on any of them: each one applies the keys it supports, ignores the rest, and lists what it covers in its own support matrix.

Consumer Runs Omeka S How you pass a blueprint Extension key
Omeka S Playground In the browser (WebAssembly) ?blueprint-url=https://…/blueprint.json x-playground
Omeka-S-Cli On an existing instance omeka-s-cli blueprint:deploy site.json x-omeka-s-cli
alpine-omeka-s In a container OMEKA_BLUEPRINT variable (planned) none

Building a consumer?

Validate input against the schema, ignore the keys you do not apply, and put your own options under an x- key. To report a blueprint that breaks, add it as a fixture in a pull request.

What a blueprint describes

Every key is optional. Unknown keys are rejected, except extensions that start with x-.

Key What it holds
install Title, locale, timezone and first admin, used when Omeka S is installed
modules Modules to download, install or activate
themes Themes to make available
files Extra files placed in the installation, such as a module config
vocabularies RDF vocabularies to import
resourceTemplates Resource templates from JSON exports
settings Global settings
users Accounts and their roles
itemSets, items Sample content, with media by URL
sites Sites, their theme and per-user permissions
meta, preferredVersions Informational: title, author, PHP and Omeka S versions
x-… Options for one consumer; the others ignore them

Validate in your editor

Add $schema and editors such as VS Code check the file and suggest keys as you type.

{ "$schema": "https://omeka-s-contrib.github.io/omeka-s-blueprints/schema/v0/blueprint-schema.json" }

See Schema for the URLs and how versions work.