- ホーム
- ローカルサーバーにONLYOFFICE MailをDockerでインストールする
ローカルサーバーにONLYOFFICE MailをDockerでインストールする
はじめに
ONLYOFFICE Mailは、iRedMailパッケージを基に開発されたフル機能のメールサーバーソリューションで、以下のコンポーネントを含んでいます:Postfix、Dovecot、SpamAssassin、ClamAV、OpenDKIM、Fail2ban。
ONLYOFFICE Workspaceと統合されたONLYOFFICE Mailを使用すると、以下のことが可能です:
- 独自のドメイン名を接続する;
- メールボックスを作成する;
- 各メールボックスにエイリアスを追加する;
- メールボックスグループを作成する。
このガイドでは、ONLYOFFICE MailのDockerバージョンをマシンにインストールする方法を示します。
システム要件
-
CPUデュアルコア2 GHz以上
-
RAM4 GB以上
-
HDD少なくとも20 GBの空き容量
-
SWAP少なくとも4 GB、ただしホストOSに依存します。多いほど良いです。
-
OSamd64 Linuxディストリビューション、カーネルバージョン3.10以上
-
追加要件
- Docker:Dockerチームがサポートするバージョンのいずれか
インストールを始める前に
ONLYOFFICE Mailのインストールを始める前に、ONLYOFFICE Mailをインストールする予定のコンピュータをメールサーバー用に選択したドメインにリンクする必要があります。メールサーバーコンピュータのAレコードとしてmx.yourdomain.comのような名前を選択することをお勧めします。これは、ドメインネームシステム(DNS)のAレコードがONLYOFFICE MailをインストールするコンピュータのIPアドレスを指す必要があり、このコンピュータのポインタ(PTR)レコードがコンピュータのIPアドレスを完全修飾ドメイン名(FQDN)に解決する必要があることを意味します。
Aレコードの設定が正しいかどうかを確認するには、次のコマンドを使用します:
dig -t A mx.yourdomain.com
すべてが正しければ、以下のような行を含む出力が表示されます:
...
;; ANSWER SECTION:
mx.yourdomain.com. IN A {your IP address}
...
{your IP address}の代わりにサーバーの実際のIPアドレスが表示されます。
PTRレコードは別のコマンドで確認します:
dig -x {your IP address}
以下のような行を含む出力が返されるはずです:
...
;; ANSWER SECTION:
{your IP address} IN PTR mx.yourdomain.com.
...
すべての設定が正しいことを確認したら、次のステップに進むことができます。
自動スクリプトコマンドを使用したONLYOFFICE Mailのインストール
すべてを手動で設定したくない場合は、Dockerスクリプトを使用してONLYOFFICE Mailを自動的にインストールできます。スクリプトは当社のサイトダウンロードページからダウンロードできます。あるいは、より便利な場合は直接ダウンロードリンクを使用することもできます:
wget https://download.onlyoffice.com/install/workspace-install.sh
ダウンロードが完了したら、次のコマンドを実行してONLYOFFICE Mailをインストールします:
bash workspace-install.sh -ics false -ids false -icp false -ims true -md yourdomain.com -es true
ONLYOFFICE Mailの手動インストール
インストール内容や方法を完全に制御したい場合は、手動モードでインストールを実行できます。そのためには、以下の手順に従ってください。
前提条件のインストール
最新のDockerバージョンがインストールされている必要があります。インストールされていない場合は、Dockerのウェブサイトのインストールセクションを参照して取得方法を確認してください。
/etc/default/dockerファイルに移動し、次の行のIPアドレスをローカルネットワーク内のDNSサーバーのIPアドレスに変更します:
docker_OPTS="--dns 8.8.8.8"
CentOSのようなRPMベースのオペレーティングシステムの場合:
/etc/docker/daemon.json設定ファイルを次の内容で作成します:{ "dns" : [ "8.8.8.8" ] }- Dockerサービスを再起動します:
sudo systemctl restart docker.service
インストールを開始する前に、次のフォルダを作成する必要があります:
- MySQLサーバー用
sudo mkdir -p "/app/onlyoffice/mysql/conf.d"; sudo mkdir -p "/app/onlyoffice/mysql/data"; sudo mkdir -p "/app/onlyoffice/mysql/initdb"; - そして、ONLYOFFICE Mailのデータとログ用
sudo mkdir -p "/app/onlyoffice/MailServer/data/certs"; sudo mkdir -p "/app/onlyoffice/MailServer/logs";
次に、onlyofficeネットワークを作成します:
sudo docker network create --driver bridge onlyoffice
MySQLのインストール
その後、MySQLサーバーのDockerコンテナを作成する必要があります。設定ファイルを作成します:
echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048" > /app/
onlyoffice/mysql/conf.d/onlyoffice.cnf
ユーザーを生成し、権限を付与するSQLスクリプトを作成します。onlyoffice_userはONLYOFFICE Community Serverに必要であり、mail_adminはONLYOFFICE Mailをインストールする場合に必要です:
echo "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
CREATE USER IF NOT EXISTS 'onlyoffice_user'@'%' IDENTIFIED WITH mysql_native_password BY 'onlyoffice_pass';
CREATE USER IF NOT EXISTS 'mail_admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Isadmin123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'onlyoffice_user'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'mail_admin'@'%';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
%)に設定します。アクセスを制限したい場合は、SQLサーバーにアクセスできるホストを指定できます。次に、MySQLのバージョンを8.0.29に設定してMySQLコンテナを作成します:
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server \
-v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
-v /app/onlyoffice/mysql/data:/var/lib/mysql \
-v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=onlyoffice \
mysql:8.0.29
CREATE USER 'mail_admin'@'localhost' IDENTIFIED BY 'Isadmin123';
GRANT ALL PRIVILEGES ON * . * TO 'mail_admin'@'%' IDENTIFIED BY 'Isadmin123';
FLUSH PRIVILEGES;
ONLYOFFICE Mailのインストール
すべての準備が整ったら、次のコマンドを実行します:
sudo docker run --init --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server -p 25:25 -p 143:143 -p 587:587 -p 8081:8081 \
-e MYSQL_SERVER=onlyoffice-mysql-server \
-e MYSQL_SERVER_PORT=3306 \
-e MYSQL_ROOT_USER=root \
-e MYSQL_ROOT_PASSWD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice_mailserver \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
-v /app/onlyoffice/MailServer/logs:/var/log \
-h yourdomain.com \
onlyoffice/mailserver
ここで、yourdomain.comはメールサーバーのホスト名です。
上記のコマンドでは、
"yourdomain.com"パラメータはONLYOFFICE Mailのサービスドメインとして理解される必要があります。通常、通信を維持するために使用されるドメインのMXレコードに指定されます。通常、"yourdomain.com"はmx1.onlyoffice.comのようになります。この場合、メールサーバーはこのサーバー上にホストされている内部アドレスへのメール配信を保証します。
コンテナ外でのデータ保存
すべてのデータは、以下の場所にある特別に指定されたディレクトリ、データボリュームに保存されます:
/var/logはONLYOFFICE Mailのログ用/var/lib/mysqlはMySQLデータベースデータ用/var/vmailはメールストレージ用/etc/pki/tls/mailserverは証明書用
コンテナ外にあるデータにアクセスするには、ボリュームをマウントする必要があります。これはdocker runコマンドで-vオプションを指定することで行えます。
sudo docker run --privileged -i -t -d -p 25:25 -p 143:143 -p 587
:587 -p 8081:8081 \
-v /app/onlyoffice/MailServer/logs:/var/log \
-v /app/onlyoffice/MailServer/mysql:/var/lib/mysql \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver -h yourdomain.com onlyoffice/mailserver
データをホストマシンに保存することで、新しいバージョンがリリースされた際にONLYOFFICE Mailを簡単に更新でき、データを失うことはありません。
Dockerイメージの設定
内部アドレスおよび外部サーバーのアドレスへのメール配信を確実にするためには、独自のドメイン名を取得し、DNSサーバーを設定する必要があります。
以下のDNSレコードが必要です:
- Aレコード(このドメインを、このDockerイメージがデプロイされているホストのIPアドレスにポイントするために使用されます)。
- ポインタ(PTR)レコードまたは逆引きDNSレコード(ネットワークインターフェース(IP)をホスト名にマッピングするために使用されます)。
sudo docker run --privileged -i -t -d -p 25:25 -p 143:143 -p 587:587 \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver -h yourdomain.com onlyoffice/mailserver
ここでyourdomain.comは、あなたのメールサーバーのホスト名です。
SSL証明書のインストール
Dockerコンテナを実行する際に、デフォルトでドメイン用の自己署名証明書が作成されます。CA認定の証明書を使用したい場合は、イメージを実行する前にそれらをリネームして/app/onlyoffice/MailServer/data/certsディレクトリにコピーする必要があります。以下のファイルが必要です:
- /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.key
- /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.crt
- /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.ca-bundle
イメージを実行した後にSSL証明書を/app/onlyoffice/MailServer/data/certsディレクトリにコピーすることもできますが、その場合はDockerコンテナを再起動する必要があります。
利用可能な設定パラメータ
以下は、環境変数を使用して設定できるパラメータの完全なリストです。
- STORAGE_BASE_DIR:メールストアのパス。デフォルトは
/var/vmailです。 - FIRST_DOMAIN:ポストマスターアドレスがホストされる最初の仮想ドメイン。このドメインは、メインのメールサーバードメインと一致してはなりません。デフォルトは
mailserver.onlyoffice.comです。 - DOMAIN_ADMIN_PASSWD:ポストマスターパスワード。デフォルトのポストマスターアドレスは
postmaster@mailserver.onlyoffice.comです。
ONLYOFFICE Docsと統合されたONLYOFFICE Mailのインストール
ONLYOFFICE MailはONLYOFFICE Workspaceの一部であり、ONLYOFFICE Docs、ONLYOFFICE Control Panel、およびONLYOFFICE Community Serverも含まれています。すべてをインストールし、相互に統合したい場合は、こちらの指示をお読みください。
ONLYOFFICE Mailをインストールする別の方法
別の方法として、自動インストールスクリプトを使用して、Workspace全体を一度にインストールすることができます。メールサーバーが正しく動作するためには、そのホスト名yourdomain.comを指定する必要があります。
ステップ1:インストールスクリプトファイルをダウンロードする
以下のコマンドを実行します:
wget https://download.onlyoffice.com/install/workspace-install.sh
ステップ2:Workspaceをインストールする
これを行うには、以下のコマンドを実行します:
bash workspace-install.sh -md yourdomain.com