Skip to content

Deploying Omeka S

Introduction

Omeka S is a next-generation web publishing platform designed for cultural heritage institutions, libraries, archives, and museums to share their digital collections. Building on the legacy of Omeka Classic, Omeka S introduces a multi-site architecture that allows institutions to manage multiple distinct websites from a single installation, each with its own resources, themes, and configurations.

Developed by the Roy Rosenzweig Center for History and New Media at George Mason University, Omeka S embraces linked open data principles and uses semantic web technologies to connect collections across institutions. The platform supports vocabularies like Dublin Core, FOAF, and Schema.org while allowing custom vocabulary imports.

Key features of Omeka S include:

  • Multi-Site Architecture: Create and manage multiple websites from a single installation, sharing resources across sites
  • Linked Open Data: Native support for RDF vocabularies and semantic web standards
  • Resource Sharing: Items, media, and item sets can be shared across multiple sites
  • Module System: Extend functionality with community-developed modules
  • API-First Design: RESTful API for integration with external applications
  • Customizable Metadata: Support for multiple vocabularies and custom property mappings
  • Media Handling: Built-in support for images, audio, video, and external media sources
  • User Management: Granular permissions with site-specific and global roles

This guide walks through deploying Omeka S on Klutch.sh using Docker with MySQL/MariaDB for data persistence.

Why Deploy Omeka S on Klutch.sh

Deploying Omeka S on Klutch.sh provides cultural heritage institutions with a reliable hosting solution:

Simplified Deployment: Klutch.sh automatically builds and deploys your Omeka S container from a Dockerfile, eliminating manual server configuration and PHP environment setup.

Persistent Storage: Attach volumes for your digital collections, database, and configuration files. Your institutional data survives container restarts and updates.

HTTPS by Default: Automatic SSL certificates ensure secure access to your digital collections without manual certificate management.

Scalable Resources: Allocate CPU and memory based on collection size and traffic. Scale up during exhibitions or high-traffic periods.

Custom Domains: Use your institution’s domain for a professional presence that aligns with your organization’s branding.

Prerequisites

Before deploying Omeka S on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your deployment
  • A MySQL or MariaDB database (can be deployed separately on Klutch.sh)
  • Basic familiarity with Docker and PHP applications

Deploying Omeka S on Klutch.sh

    Set Up Your Database

    Omeka S requires a MySQL or MariaDB database. Deploy a database instance on Klutch.sh or use an external database service. Note your database credentials for later configuration.

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM php:8.1-apache
    # Install required PHP extensions and dependencies
    RUN apt-get update && apt-get install -y \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    libicu-dev \
    libxml2-dev \
    unzip \
    imagemagick \
    libmagickwand-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd pdo pdo_mysql intl xml \
    && pecl install imagick && docker-php-ext-enable imagick
    # Enable Apache mod_rewrite
    RUN a]enable mod_rewrite
    # Download and install Omeka S
    WORKDIR /var/www/html
    RUN curl -L https://github.com/omeka/omeka-s/releases/download/v4.1.1/omeka-s-4.1.1.zip -o omeka-s.zip \
    && unzip omeka-s.zip && mv omeka-s/* . && rm -rf omeka-s omeka-s.zip
    # Set permissions
    RUN chown -R www-data:www-data /var/www/html \
    && chmod -R 755 /var/www/html
    EXPOSE 80

    Configure Database Connection

    Create a database.ini file for your database configuration:

    user = "your_db_user"
    password = "your_db_password"
    dbname = "omeka_s"
    host = "your_db_host"

    Store sensitive values in Klutch.sh environment variables.

    Push to GitHub

    Commit and push your Dockerfile and configuration to your GitHub repository.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project for your Omeka S deployment.

    Create and Configure the App

    Create a new app within your project and connect it to your GitHub repository containing the Dockerfile.

    Configure HTTP Traffic

    Set the traffic type to HTTP with an internal port of 80.

    Attach Persistent Volumes

    Add persistent storage for your installation:

    Mount PathRecommended SizePurpose
    /var/www/html/files50+ GBUploaded media files
    /var/www/html/modules1 GBInstalled modules
    /var/www/html/themes1 GBCustom themes
    /var/www/html/config100 MBConfiguration files

    Deploy Your Application

    Click Deploy to build and launch your Omeka S instance. Once complete, access the installation wizard at your app URL.

    Complete Installation

    Follow the web-based installation wizard to configure your Omeka S instance, create your admin account, and set up your first site.

Additional Resources