はじめに

本章では、Omeka Sのインストール方法をDockerを使って解説します。本書は、デジタルアーカイブ学会のワークショップをベースにしたIIIFチュートリアルであり、Omeka Sを用いてIIIF対応のデジタルコレクションを構築するまでの一連の流れを紹介します。Dockerを使うことで、複雑なサーバ設定を省略し、短時間でOmeka Sの動作環境を構築できます。

Omeka Sとは

Omeka Sは、Roy Rosenzweig Center for History and New Mediaが開発するオープンソースのデジタルコレクション管理システムです。前身であるOmeka Classicと比較して、以下の特徴を持っています:

  • Linked Data対応: RDFに基づくメタデータ管理
  • マルチサイト機能: 一つのインストールで複数のサイトを運営可能
  • 語彙の柔軟性: Dublin Core以外にも多様な標準語彙をサポート
  • モジュールアーキテクチャ: IIIF対応を含む豊富なモジュール群
  • REST API: プログラムからのデータ操作に対応

Dockerを用いたインストール

前提条件

以下のソフトウェアがインストールされていることを確認してください:

  • Docker: 20.10以上
  • Docker Compose: 2.0以上
# Dockerのバージョン確認
docker --version
docker compose version

docker-compose.ymlの作成

Omeka Sの動作に必要なコンテナ(Omeka S本体、MySQL、phpMyAdmin)を定義します。

# docker-compose.yml
version: "3.8"

services:
  omeka-s:
    image: ghcr.io/nakamura196/omeka-s-docker:latest
    ports:
      - "8080:80"
    volumes:
      - omeka-files:/var/www/html/files
      - omeka-modules:/var/www/html/modules
      - omeka-themes:/var/www/html/themes
      - omeka-config:/var/www/html/config
    depends_on:
      - mysql
    environment:
      - OMEKA_DB_HOST=mysql
      - OMEKA_DB_NAME=omeka
      - OMEKA_DB_USER=omeka
      - OMEKA_DB_PASSWORD=omeka_password
    restart: unless-stopped

  mysql:
    image: mysql:8.0
    volumes:
      - mysql-data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=omeka
      - MYSQL_USER=omeka
      - MYSQL_PASSWORD=omeka_password
    command: >
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
    restart: unless-stopped

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8081:80"
    environment:
      - PMA_HOST=mysql
      - PMA_USER=omeka
      - PMA_PASSWORD=omeka_password
    depends_on:
      - mysql
    restart: unless-stopped

volumes:
  omeka-files:
  omeka-modules:
  omeka-themes:
  omeka-config:
  mysql-data:

コンテナの起動

# プロジェクトディレクトリの作成
mkdir omeka-s-tutorial && cd omeka-s-tutorial

# docker-compose.ymlを配置後、コンテナを起動
docker compose up -d

# コンテナの状態確認
docker compose ps

起動が完了すると、以下のURLでアクセスできるようになります:

  • Omeka S: http://localhost:8080
  • phpMyAdmin: http://localhost:8081

初期設定

インストールウィザード

ブラウザで http://localhost:8080 にアクセスすると、Omeka Sのインストールウィザードが表示されます。以下の情報を入力します:

  1. Email: 管理者のメールアドレス
  2. Password: 管理者パスワード
  3. Password Confirm: パスワードの再入力
  4. Display Name: 管理画面で表示される名前
  5. Installation Title: サイトのタイトル
  6. Time Zone: Asia/Tokyo を選択

「Submit」をクリックするとインストールが完了し、管理画面にログインできます。

日本語ロケールの設定

Omeka Sは多言語に対応しており、管理画面の言語を日本語に切り替えることができます。

  1. 管理画面右上のユーザアイコンをクリック
  2. 「User settings」を選択
  3. 「Locale」の項目で「日本語(ja)」を選択
  4. 「Save」をクリック

これにより、管理画面のメニューやラベルが日本語で表示されるようになります。

タイムゾーンの設定

PHPのタイムゾーン設定を日本時間に変更する場合は、Docker環境では以下のように設定します。

# Omeka Sコンテナに入って設定を変更
docker compose exec omeka-s bash

# php.iniの編集
echo "date.timezone = Asia/Tokyo" >> /usr/local/etc/php/conf.d/timezone.ini

# Apacheの再起動
apache2ctl restart
exit

ファイルアップロード設定

デフォルトのアップロードサイズ制限を変更する場合は、PHPの設定を調整します。

# コンテナ内で設定ファイルを作成
docker compose exec omeka-s bash
cat > /usr/local/etc/php/conf.d/uploads.ini << EOF
upload_max_filesize = 100M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 300
EOF
apache2ctl restart
exit

CORS対応

外部のIIIFビューアからOmeka SのAPIにアクセスする場合、CORS(Cross-Origin Resource Sharing)の設定が必要になることがあります。

# ApacheのCORS設定
docker compose exec omeka-s bash
a2enmod headers
cat > /etc/apache2/conf-enabled/cors.conf << EOF
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
    Header set Access-Control-Allow-Headers "Content-Type"
</IfModule>
EOF
apache2ctl restart
exit

データのバックアップ

Docker環境では、ボリュームのバックアップによりデータを保全できます。

# データベースのバックアップ
docker compose exec mysql mysqldump -u omeka -pomeka_password omeka > backup.sql

# ファイルのバックアップ
docker compose cp omeka-s:/var/www/html/files ./files-backup

まとめ

本章では、Dockerを用いたOmeka Sのインストール方法を解説しました。Docker Composeにより、Omeka S本体、MySQL、phpMyAdminの3つのコンテナを簡単に起動・管理できます。次章では、Omeka Sの基本操作として、アイテムの登録やメタデータの入力方法を解説します。

関連記事