序章

Manifold は、書籍やその他のテキストベースのメディアのWebベースのエディションを公開して、ユーザーがこれらのテキストを自由に読んだり注釈を付けたりできるようにするオープンソースのWebアプリケーションです。 オープンアクセス(OA)資料やオープン教育リソース(OER)での使用に特に適したマニフォールドは、教室、コーディングブートキャンプ、ワークショップ、図書館、および共同読書を通じて知識を交換したいその他の場所に組み込むことができます。

メロン財団の資金提供を受けたマニフォールドは、もともと学術論文を念頭に置いて作成されましたが、プラットフォーム上でさまざまな形式の出版物(ジャーナル、パンフレット、コレクション)を収集、整理、読み取り、注釈を付けることができます。 マニフォールドブックの例を見るには、無料のeBook How To Code in Python3のマニフォールドバージョンをご覧ください。

このチュートリアルでは、サーバー上にマニフォールドを設定し、インストールにテキストを追加します。

前提条件

開始するには、次のものが必要です。

マニフォールドをURLを使用してWebサイトで実行するには、完全修飾ドメイン名を設定する必要があります。 これを設定するためのガイダンスについては、ホスティングプロバイダーからのドキュメントを読む必要があります。 DigitalOceanを使用している場合は、共通ドメインレジストラからDigitalOceanネームサーバーを指定する方法のチュートリアルでガイダンスを見つけることができます。

:Manifoldの開発者は、セキュリティと安定性の理由から、共有ホスティング環境にManifoldをインストールしようとしないようにアドバイスしています。 マニホールドはいくつかの異なるサービスで構成されており、それぞれが正しく機能するにはRAMが必要です。 RAMが6GB未満の小さなVMでは、スワップメモリを有効にする必要があるか、使用可能なすべてのメモリを消費するリスクがあります。

現在ドメイン名を設定していない場合は、/etc/manifold/manifold.rbでホスト名を手動で設定し、アプリケーションを再構成できます。 再構成については、以下で説明します。

これらの前提条件が整ったら、チュートリアルを開始できます。

ステップ1—マニホールドパッケージをダウンロードしてインストールします

Ubuntu18.04用のマニホールドをダウンロードします。

パッケージは後で削除できるものなので、最初に一時ディレクトリに移動してパッケージをダウンロードします。

  1. cd /tmp

次に、curlコマンドと-Oフラグを使用して、出力をローカルファイルに書き込みます。 これにより、パッケージがサーバーにダウンロードされます。

  1. curl -O https://storage.googleapis.com/manifold-dist/ubuntu18/manifold_2.0.0~rc.1-1_amd64.deb

次に、パッケージをインストールします。

  1. sudo dpkg -i manifold_2.0.0~rc.1-1_amd64.deb

このコマンドを実行すると、次の行を含む出力が表示されます。

Output
... Manifold Scholarship manifold: Thank you for installing Manifold! ...

これらの行を受け取ったら、次のステップに進むことができます。

ステップ2—ファイアウォールを更新する

サーバーの初期設定に従った場合は、サーバーにufwファイアウォールを配置する必要があります。 ファイアウォールを設置していない場合は、サーバーの初期設定ガイドの基本的なファイアウォールの設定手順に従ってファイアウォールを実装する必要があります。

Web上のhttpを通過するトラフィックを許可するには、ポート80を開く必要があります。

  1. sudo ufw allow 80

このルールが追加されたという出力を受け取るはずです。 sudo ufw statusと入力してファイアウォールのステータスを確認し、サーバーの現在のルールを確認できます。

ステップ3—マニホールドを構成する

このサーバーで完全修飾ドメイン名を既に設定している場合は、それ以上の構成を行う必要がない場合があります。 これは、ドメイン名と一致する次の出力を受け取った場合に当てはまります。

Output
... manifold: Manifold should be reachable at http://your-manifold-url ...

ただし、現時点でサーバーのIPアドレスを使用している場合、または上記の出力がURLと一致しなかった場合は、正しい場所を指すようにマニフォールドを構成できます。

/etc/manifold/manifold.rbにファイルが作成され、マニフォールドを構成するさまざまなサービスを構成および管理するために使用されます。

このファイルをお好みのテキストエディタで開きます(nanoを使用します)。

  1. sudo nano /etc/manifold/manifold.rb

このファイル内で、ファイルの上部にあるexternal_url設定を探します。 これをサーバーのIPアドレスまたはマニホールドインストールのドメイン名のいずれかに設定します。

etc/多様体/多様体.rb

...

## Manifold URL
##! URL on which Manifold will be reachable.
##! For more details on configuring external_url see:
external_url 'http://your-IP-or-your-URL'

Webサイトがexample.comの場合、行は次のようになります。

external_url 'http://example.com'

IPが192.0.2.0の場合、行は次のようになります。

external_url 'http://192.0.2.0'

次に、ファイルを保存して終了します。 これを行うには、CTRL + Xyの順に押して保存することを確認し、次にENTERを押します。

この時点で、次のコマンドを使用してマニホールドを再構成できます。

  1. sudo /usr/local/bin/manifold-ctl reconfigure

Manifoldアプリは、このファイルに加えられた変更を実装して、新しい設定と構成ファイルを再生成します。 次のような出力を受け取ると、このプロセスは完了します。

Output
Chef Client finished, 262/347 resources updated in 51 seconds manifold Reconfigured!

これで、サーバーのURLまたはIPアドレスのいずれかにアクセスできます。 空のマニホールドホームページが表示されます。

Manifold Home Page

マニフォールドアプリが提供されたら、次のステップに進むことができます。

ステップ4—バックエンドにアクセスする

Manifoldに保存されているすべてのコンテンツ(テキスト、プロジェクト、作成者、リソース、ユーザーを含む)は、/backendパスを介してManifoldのバックエンドWebインターフェイスを介して管理されます。

バックエンドにアクセスするには、サーバー上に管理ユーザーを作成する必要があります。 manifold-api実行可能ファイルを介してこの管理ユーザーを作成するコマンドを呼び出します。

このコマンドを使用するには、メールアドレス、パスワード、名、名前など、自分の詳細を次の形式で入力する必要があります。

  1. sudo manifold-api manifold:user:create:admin["[email protected]","password","first_name","lastName"]

次の例のように、上記のコマンドで独自の情報を置き換えます。

  1. sudo manifold-api manifold:user:create:admin["[email protected]","l1ghth0us3","Virginia","Woolf"]

コマンドを実行すると、次のような出力が表示されます。

Output
INFO: A User has been created. Its ID is 4a38dbb4-212b-4387-ad32-5e014459cd11

このユーザーを作成したら、ブラウザに戻り、マニフォールドの右上隅にあるアバターアイコンをクリックしてログインします。

Manifold Login

クレデンシャルを入力して正常にログインすると、ヘッダーに ENTER ADMINMODEボタンが表示されます。

Manifold Admin Mode

このボタンをクリックして、Manifoldのバックエンドにアクセスします。

ステップ5—プロジェクトを作成する

バックエンドから、将来のプロジェクトが存在する場所に移動します。

Manifold Projects List

新しいプロジェクトを作成するには、上部のメニューバーのプロジェクトをクリックしてから、新しいプロジェクトの追加ボタンをクリックします。 タイトルとオプションの字幕と説明を入力するように求められます。 デモンストレーションの目的で、無料の Python 3 eBookでのコーディング方法をアップロードできるため、タイトルとしてHow To Code in Python 3と入力できます。

その情報を入力したら、プロジェクトを保存して続行を押すことができます。

新しいプロジェクトを作成すると、ドラフトモードで自動的に保存されます。 下書きであるプロジェクトは、ログインしている管理ユーザーにのみ表示されます。 プロジェクトの詳細ビューの左側にあるタブを使用して、サムネイルを追加したり、公開プロジェクトページのヒーロー画像やバナーをアップロードしたり、メタデータや追加のリソースを追加したりできます。

Manifoldはテキストのリポジトリを提供するため、最初に実行したいのはテキストを追加することです。 テキストファイルをプロジェクトに取り込むには、textsタブをクリックします。

Manifold Project Texts

EPUB、MarkdownおよびHTMLファイル、またはGoogleドキュメントをManifoldにアップロードできます。 Googleドキュメントを使用する場合は、いくつかの追加構成を実行する必要があります。 デモンストレーションの目的で、 Python 3EPUBでのコーディング方法をマニホールドインストールにアップロードします。 次のリンクを使用して、eBookのEPUBに直接リンクできます。

https://assets.digitalocean.com/books/python/how-to-code-in-python.epub

テキストを取り込むには、新しいテキストを追加ボタンをクリックして、取り込みプロセスを開始します。

Add Text

このデモでは、上記のリンクを使用しますが、代わりに、ファイルをクラウドアイコンにアップロードまたはドラッグして、ローカルハードドライブからファイルをアップロードすることもできます。 ファイルをステージングしたら、続行を押すことができます。 アプリはManifoldWebSocketに接続し、Ingestをクリックしてアップロードプロセスを開始できます。

ホスティング環境とアップロードするファイルのサイズによっては、Manifoldがテキストを取り込むのに数分かかる場合があります。 取り込みのステータス出力を示すログが表示されます。 このプロセスが完了すると、ダイアログボックスの下部に完了ボタンが表示されます。

Ingestion Complete

完了ボタンを押すと、プロジェクトに戻ります。

UNCATEGORIZEDの下に追加されたテキストが表示されます。 上矢印を使用して、ファイルをPUBLISHED状態に移動します。

Uncategorized Text

Published Text

目のアイコンの横にあるプロジェクトタイトルの下のプレビューリンクをクリックして、現在のプロジェクトを表示します。 プレビュー側では、タイトルの下に読書開始ボタンが表示されます。

Start Reading Button

このボタンを押すと、テキストがマニホールドリーダーで開きます。

Manifold Reader Preview

プロジェクトに満足したら、管理インターフェイスの一般タブから、表示を切り替えてドラフトモードをオフにすることができます。

Visibility Toggle

これで、プロジェクトがメインページで利用できるようになります。

Final Manifold with Published Project

この時点で、プロジェクトの作業を続行して、メタデータや画像などを追加できます。

マニホールドページに関連付けられたドメインがあり、ユーザーがファイルを提供することを期待している場合は、Webサイトを保護し、HTTPSプロトコルを介してアクセスすることをお勧めします。 無料の認証局Let’sEncryptでマニホールドを保護する方法については、チュートリアル「Let’sEncryptの概要」をお読みください。

結論

おめでとうございます。マニホールドのインストールが完了し、最初のプロジェクトが作成されました。 これで、Ubuntu18.04サーバーにManifoldがインストールされているはずです。 すべてが計画どおりに進んだ場合は、独自のプロジェクトを構築し、Manifoldで独自のテキストを公開する準備が整っています。

Manifoldプロジェクト、その開発、およびそれを使用している大学出版局の詳細については、次のリンクを確認してください。

このソフトウェアの使用中に問題が発生した場合は、マニホールドチームがフィードバックを歓迎します。 ドキュメント取得サポートセクションを参照して、連絡を取ることができます。