Dockerでインストール

Dockerは、あらゆるアプリケーションをあらかじめ設定されたコンテナ内にパッケージして実行するためのアプリケーションです。このため、Xibo CMSを導入する際には、私たちが推奨する構成に従うことで非常に簡単に導入することができます。

既存のDockerクラスタ

独自のDocker環境をお持ちの場合、docker-composeが提供する自動化機能を使わずに実行したい場合があります。この場合、Dockerコンテナを引き出して起動し、Sigmeを手動でインストールすることになります。

コンテナに期待される構造は以下の通りです。

コンテナ

2つのコンテナが提供されています。

  • web
  • xmr

これらはDocker Hubによってビルドされ、xibo-signage/xibo-cmsxibosignage/xibo-xmrにパッケージ化されています。

Sigmeはデータベースも必要とします。Docker Hubで利用可能なmysqlコンテナの使用をお勧めします。cms-webコンテナにリンクできるものであれば、MySQLベースのコンテナでもかまいません。また、外部のデータベースを利用する場合は、以下のように cms-web コンテナに環境変数で指定することで利用可能です。

  • MYSQL_HOST
  • MYSQL_PORT
  • MYSQL_HOST、MYSQL_PORT、MYSQL_DATABASE
  • MYSQL_USER
  • MYSQL_USER MYSQL_PASSWORD

コンテナを自分で実行する場合は、/containers フォルダにある各コンテナの DockerFile を読んで理解する必要があります。

また、コンテナ内のSMTPを設定するために、環境変数を渡すこともできます。すべてのオプションは、アーカイブにある config.env.templateconfig.env.template-remote-mysql ファイルに完全に記述されています。

データの保存

Dataフォルダは、Dockerコンテナの外側にボリュームとしてマッピングし、コンテナのアップグレード時にもデータを保持できるようにします。

docker-composeでは以下のDataフォルダが使用されますので、環境に合わせて設定してください。

  • ライブラリストレージは、/shared/cms/libraryにあります。
  • データベースストレージは、/shared/dbにあります。
  • 毎日の自動データベースバックアップは /shared/backup にあります。
  • カスタムテーマは、/shared/cms/web/theme/custom に配置します。
  • カスタムモジュールは、/shared/cms/customに置く必要があります。
  • ユーザーが作成したPHPやSigmeの外部リソースで、同じウェブサーバーでホストされたいものは、/shared/cms/web/userscriptsに置いてください。これらは、http://localhost/userscripts/ から利用することができます。

LinuxでのDocker

Dockerは64ビットLinuxベースのシステムにインストールすることができ、あなたの特定のLinuxディストリビューションの手順に従ってください。Docker EE (Enterprise Edition)をインストール済みであるか、またはそのオプションを検討しない限り、安定版ビルドをインストールし、Docker CE (Community Edition)をインストールする必要があります。

  • Dockerのインストール方法は、Docker社のウェブサイトの以下の場所に記載されています。Linuxディストリビューション向けDockerインストール
  • Linuxでは、Docker Composeは上記のパッケージには含まれていないため、インストールする必要があります。Docker Releasesにアクセスし、最新のリリースに記載されているコマンドを実行してください。

Sigme Docker アーカイブのダウンロードと展開

Sigme をインストールするには、root ユーザーである必要があります。

  • コマンドラインシェルでsudo suを実行するか、直接rootでログインして、rootになりましょう。

最新のSigmeのDockerインストールファイルは、[ここをクリック]してダウンロードできます。

  • アーカイブは、ホストマシンの適切な場所に解凍する必要があります。ライブラリのコンテンツとデータベースは、このフォルダの下に書き込まれます。

アーカイブにはxibo-dockerというサブフォルダが含まれていますが、これはアーカイブの「ベストプラクティス」です。

この後の説明では、アーカイブに含まれるサブフォルダ内にいることを確認してください。

設定の確認と編集

Sigme を初めてインストールするときは、Docker に環境の設定を伝えるための設定ファイルが必要です。

  • このファイルはconfig.envと呼ばれます。このファイルには、ファイルを保存する場所やメール設定などが書かれています。

詳細な手順が書かれたテンプレートファイルがリリースアーカイブで提供されており、これはconfig.env.templateと呼ばれています。

  • このファイルをコピーして、config.env に名前を変えてから、nano や gedit などのテキストエディタで編集してください。

もし、Sigmeにメールを送信させたくない場合は、これらのオプションの設定を省略することができます。

Dockerは、データベースのデータやCMSのカスタムファイルを格納するためのデータフォルダをマッピングします。これらは、デフォルトでは、リリースアーカイブを含むフォルダの共有サブフォルダ内に表示されます。

異なるポートを使用する

デフォルトでは、Xibo はポート 80 をリッスンするウェブサーバーを起動します。

  • もし、すでにホストマシンのポート80をリッスンしているウェブサーバーがある場合や、別のポート番号を使いたい場合は、cms_custom-ports.yml.templateファイルをコピーして、cms-webportsセクションを変更する必要があります。

  • このファイルはcms_custom-ports.ymlという名前で保存されているはずです。

同様に、SigmeのXMRサーバーはポート9505でリスニングを開始します。

  • もし、別のポート番号を使いたい場合は、cms_custom-ports.yml.templateファイルをコピーして、cms-xmrportsセクションを変更することで対応できます。

  • Docker Compose YMLファイルのportsセクションは、<host>:<container>というフォーマットでポートをリストアップします - ポート8080に移動するには、8080:80と宣言します。

このファイルを使用するには、以下の説明でdocker-compose up -dコマンドをdocker-compose -f cms_custom-ports.yml up -dに置き換えてください。

リモートMySQL

デフォルトの docker-compose.yml ファイルには MySQL 用のコンテナが含まれていますが、Xibo 用のデータベースとして外部/リモートの MySQL インスタンスを使用して実行することができます。

  • そのためには、config.env ファイルを config.evn.template-remote-mysql のテンプレートに基づいて作成し、以下の説明の docker-compose up -d コマンドを docker-compose -f cms_remote-mysql.yml up -d に置き換えてください。

HTTPS/SSL

Sigmeをセキュアなプライベートネットワーク以外で動作させる場合は、SSLで実行する必要があります。DockerコンテナはSSLを提供しないので、外部のウェブサーバでSSLの終了とcms-webコンテナへのリバースプロキシを行う必要があります。

このアーキテクチャを実現するための良いリソースがたくさんあります。例えば、nginx-proxyコンテナを使用することができます。

ホストマシンで既にウェブサーバが動作している場合、リバースプロキシの設定は簡単です。

Apache の 'VirtualHost' の例を以下に示しますが、ポート 8080 に対してカスタムポートを設定したものとします。

Listen 443

NameVirtualHost *:443
<VirtualHost *:443>

    SSLEngine On
    ProxyPreserveHost On
    RequestHeader set X-Forwarded-Proto "https"

    # Set the path to SSL certificate
    # Usage: SSLCertificateFile /path/to/cert.pem
    SSLCertificateFile /etc/apache2/ssl/file.pem

    # Servers to proxy the connection, or;
    # List of application servers:
    # Usage:
    # ProxyPass / http://[IP Addr.]:[port]/
    # ProxyPassReverse / http://[IP Addr.]:[port]/
    # Example:
    ProxyPass / http://0.0.0.0:8080/
    ProxyPassReverse / http://0.0.0.0:8080/

</VirtualHost>

LetsEncrypt SSL証明書を使ったSSL用Apacheリバースプロキシの設定例については、こちらをご覧ください。

CMSコンテナのインストール

config.env に変更を加えてファイルを保存したら、アーカイブを解凍したフォルダでターミナル/コマンド・ウィンドウを開いてください。

  • dockerコマンドを実行できる権限を持つユーザーとして、単純に実行します。
docker-compose up -d

コマンド実行後、CMSのセットアップが完了するまでに時間がかかる場合がありますが、しばらくお待ちください。

これでSigme CMSが起動されます。

CMSは、デフォルトの認証情報で完全にインストールされます。

  • ユーザー名: Sigme_admin
  • パスワード: password

すぐに CMS にログインして、そのアカウントのパスワードを変更してください。

  • CMS へのログオンは 'http://localhost' で可能です。別のポート番号を設定した場合は、URLにその番号を追加してください。例えば、'http://localhost:8080`。

設定の調整

iptablesベースのファイアウォールを使用している場合、CMSのインバウンドポートを許可する必要があります。

特に代替ポートを設定していない場合は、以下の設定が必要です。

  • 受信TCPポート9505(XMRプッシュメッセージング用)
  • インバウンドTCPポート80(HTTPトラフィック用) AND/OR
  • 受信TCPポート443(HTTPSトラフィック用 - SSLを使用している場合)

XMR - プッシュ型メッセージング

Dockerをインストールすると、XMRが自動的に実行され、ほとんどの設定が行われた状態で提供されます。ただし、初回ログイン時に、CMSのXMR公開アドレスを調整する必要があります(詳細は後述)。

これは最初の起動時にのみ行う必要があります。

CMSメインメニューの管理セクションにある設定ページに移動し、ディスプレイタブを選択します。 XMRiパブリックアドレスィールドのデフォルトはtcp://cms.example.org:9505ですが、あなたのネットワークに合うように調整する必要があります。

  • アドレスの形式は次のようにする必要があります。

tcp://:

  • デフォルトのは9505で、docker-composeの設定でカスタムポートを指定していない限り、この値に設定する必要があります。

CMS が DNS 名で利用できる場合 - たとえば CMS のウェブページが https://mydomain.com にある場合、cms.example.orgmydomain.com に置き換えるだけでよいでしょう。CMSがIPアドレスによってのみ利用可能な場合は、代わりにIPアドレスを入力してください。

CMSサーバーでローカルファイアウォールを使用している場合、XMRが動作するためにポート9505とウェブインターフェースのポート80/443の受信を許可する必要があります。

XTR - ルーチンタスク

XTRは、dockerのインストール時にデフォルトで設定されています。

Xibo CMSをインストールしたら、Xibo CMSインストール後のセットアップガイドを見て、さらなる設定オプションを確認してください。

Sigmeの起動と停止

CMSコンテナをdocker-compose up -dで初期化したら、基盤となるコンテナを削除せずに起動・停止することができます。

stopコマンドを実行すると、稼働中のXibo CMSサービスが停止する。再度起動させたい場合は、startコマンドを発行します。

docker-compose start
docker-compose start

アンインストール/削除

CMSのインストールと関連するコンテナは、'down'コマンドを実行することで完全に削除することができます。

docker-compose downを実行する前に、メディアとデータベースのファイルが共有ディレクトリに正しく書き込まれていることを確認してください。

  • そのためには、例えば画像をCMSにアップロードし、同じ画像がshared/cms/libraryディレクトリに表示されることを確認します。
  • また、shared/backup/db/latest.tar.gzが過去24時間以内に作成されているかどうかも確認することをお勧めします。

これらのチェックのいずれかに失敗した場合、データの損失につながるため、docker-compose downを実行しないでください。サポートに問い合わせてください。

Sigmeの痕跡をすべて削除したい場合は、downコマンドを実行した後/opt/xiboフォルダを削除してください。

docker-compose down

コミュニティリソース

CMS/データベースのバックアップ

ユーザーデータを含むシステムと同様に、Xibo CMSの定期的なバックアップを維持することは非常に重要です。

Dockerをインストールすると、毎日のデータベースのバックアップと、アップグレードのためのバックアップが自動的に行われます。

  • バックアップ計画の一環として、少なくとも以下のファイル/ディレクトリのバックアップを定期的に取る必要があります。
    shared/backup/db/latest.sql.gz
    shared/cms
    config.env
    *.yml

カスタムスクリプトとページ

Dockerが提供する環境を使用して、カスタム開発、テーマ、モジュール、またはスタンドアロンファイルを実行したい場合、/sharedフォルダを使用して実行することができます。

以下の場所が利用可能です。

  • /shared/cms/custom : カスタムミドルウェアに使用します。
  • /shared/cms/web/theme/custom : カスタムテーマに使用します。
  • /shared/cms/web/userscripts : スタンドアロンファイルとして使用します。http://localhost/userscripts として提供されます。

その他の共有フォルダ

Dockerでは、ライブラリやバックアップも共有フォルダとして利用できるようになっています。

  • /shared/backup :
  • /shared/cms/library

ライブラリと帯域の制限

ライブラリのファイルサイズと月間の帯域幅使用量の制限を管理します。

  • これは、データベース・テーブルの2つの設定(LIBRARY_SIZE_LIMIT_KB & MONTHLY_XMDS_TRANSFER_LIMIT_KB) によって行われます。 データベースに制限が入力されていない場合は、すべて無制限に動作しますが、制限が入力されると、Xiboはこれらの制限に対する検証を開始し、制限を超えるとプレーヤーへの新しいメディアや更新のアップロードを阻止するようになります。

ただし、この2つの設定は、現在のところユーザーインターフェースからは利用できず、統計データのみが表示されます。

ディスプレイが消費できる帯域幅の制限を適用することもできます。