Grommunio

提供: ArchWiki
2024年4月5日 (金) 19:27時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎Configuration: 翻訳)
ナビゲーションに移動 検索に移動

Grommunio は、デジタル通信とコラボレーションソフトウェアスイートです。それは異なるコンポーネントのセットから構築されます。

このガイドは、動作するセットアップを得るために異なるコンポーネントの基本的なインストールと設定をガイドします。

それは、初期スタートをかなり難しくしたいくつかのギャップを埋めようとし、どのコンポーネントが他のものと一緒に動作しているかを説明します。

インストール

この章では、必要なパッケージの基本的なインストールをガイドします。何を達成したいか、そしてどのようにそこに到達するかについての大まかな概要を提供します。

概要

単一ノードサーバーを持ちたいと想定しています。そのサーバーが必要なすべてのコンポーネントをホストします。

これには、サーバーに mta のセットアップがあり、設定されていること (例: [postfix])、そしてさらに動作する mysql データベースがあること (例: [mariadb]) を想定しています。

オプションで、ディレクトリサーバー ([OpenLDAP|openldap] または [samba|ActiveDirectory]) が利用可能であるべきです。このガイドに従うためには必要ありませんが、完全なイメージを得るためには非常に推奨されます。

パッケージ

これは、インストールが必要な grommunio パッケージのリストです:

Package list
Package Description
vmimeAUR[リンク切れ: package not found] C++ library for working with RFC-822 and MIME messages
vmime-libonlyAUR[リンク切れ: package not found] C++ library for working with RFC-822 and MIME messages. This one just containes the so files and can be used to install parallel with other ones (ae. Kopano libvmime) to help with migration and / or simultaneous installations
libexmdbppAUR[リンク切れ: package not found] C++ implementation of the exmdb wire protocol
grommunio-mapi-headersAUR[リンク切れ: package not found] PHP mapi headers used in various applications
gromoxAUR[リンク切れ: package not found] Central groupware server component
grommunio-syncAUR[リンク切れ: package not found] ActiveSync synchronisation service
grommunio-webAUR[リンク切れ: package not found] Web application for users
grommunio-admin-apiAUR[リンク切れ: package not found] Central administration API component
grommunio-admin-webAUR[リンク切れ: package not found] Web application for administrators
grommunio-configsAUR[リンク切れ: package not found] Basic set of configuration files for nginx
grommunio-admin-configsAUR[リンク切れ: package not found] Basic set of configuration files for nginx (admin part)
grommunio-indexAUR[リンク切れ: package not found] Indexing service for the web application

設定

この章では、全てを起動して実行するための初期設定をガイドします。

公式ガイドを読んだり、それに沿って進めることが強く推奨されます。これは、これから行う全てのタスクの基盤となります。

一般的な情報

複数のシステムユーザーアカウントが作成され、使用されます。これらは、必要な権限をそのニーズに応じて分離します。

このガイドの中でより詳細に説明されますが、今のところ以下の説明で大まかな概要を理解できるでしょう。

Users / Groups
Name Type Description
grommunio User Administration API user
gromox User Service user for the core services
gromoxcf Group Group that can read core config files
gromoxss Group Group that can access shared resources (in this case zcore socket)

アクセスを最小限に制限するため、単一のサービスによってさらに多くのユーザー/グループが使用されます。さらに、一部のユーザー(nginx によって使用される http など)は、必要なリソース(例: php-fpm ソケット)にアクセスできるように、いくつかのグループに追加されます。

データベース

最初のステップは、grommunio 用のデータベースとユーザーを作成し、設定ファイルを調整することです。そのために、あなたのデータベースに接続し、セットアップのためのデータベースとユーザーを作成します。以下の例では、バックエンドとして mariadb を使用しています。

$ mariadb -u root -p
$ CREATE DATABASE `grommuniodb`;
$ GRANT ALL ON `grommuniodb`.* TO 'grommunio'@'localhost' IDENTIFIED BY 'super-secrect-password';
$ FLUSH PRIVILEGES;
$ quit;

After creating the user, we'll edit the file mysql_adaptor.cfg from the gromox package and change the values to our db ones.

$ vim /etc/gromox/mysql_adaptor.cfg
mysql_username=grommunio
mysql_password=super-secret-password
mysql_dbname=grommuniodb
schema_upgrade=host:your.mailserver.dom

The schema_upgrade is not required for a single node setup. It is only needed to have one master updating database schema and tell the nodes which one is in charge.

The next step is to create the initial tables by issuing the gromox-dbop command:

$ gromox-dbop -C
dbop: Creating admin_roles
dbop: Creating associations
dbop: Creating configs
dbop: Creating domains
dbop: Creating forwards
dbop: Creating groups
dbop: Creating options
dbop: Creating orgs
dbop: Creating specifieds
dbop: Creating users
dbop: Creating aliases
dbop: Creating mlists
dbop: Creating user_properties
dbop: Creating admin_role_permission_relation
dbop: Creating admin_user_role_relation
dbop: Creating classes
dbop: Creating fetchmail
dbop: Creating secondary_store_hints
dbop: Creating user_devices
dbop: Creating user_device_history
dbop: Creating task_queue
dbop: Creating servers
dbop: Creating orgparam
dbop: Creating altnames

event / timer

gromox-event is a notification daemon for an interprocess channel between gromox-imap/gromox-midb. The config file is '/etc/gromox/timer.cfg' and just contains the state path adopted to my setup:

timer_state_path=/var/lib/grommunio/gromox/timer.txt

gromox-timer is an at(1)/atd(8)-like daemon for delayed delivery. There is no explicit configuration delivered for this service.

The timer service listens on port 6666 and the event service on port 33333.

For all possible configuration directives you can refer to their man pages: event and timer

Now we enable and start these services:

$ systemctl enable --now gromox-event
$ systemctl enable --now gromox-timer