Kopano

来自 Alpine Linux

Kopano 主要是一个与 Microsoft Outlook 兼容的群件。 它自带基于 mysql 的存储和 CALDAV、IMAP、POP3 和 SMTP 网关,以及一个用于访问该服务的 Web 界面。它实现了对配额、国际化、自动归档、备份、通过 webdav、owncloud 或 smb/cifs 集成文件共享以及垃圾邮件过滤的支持。

目前,kopano 在 riscv64、ppc64le 或 mips64 上不可用,因为 kopano-core(服务器组件)的一些依赖项在这些平台上尚不可用。kopano-webapp 和 z-push 当前基于 Alpine Linux 上的 php7 构建和测试。如果升级到 php8 或更高版本,则需要更新 php-fpm8(由 -webapp 使用)等部件的配置以自动启动(使用 openrc)。可以使用 kopano-admin 通过 CLI 管理 kopano。

所有 ACL 和用户的默认值应该可以 OOTB 工作。默认情况下,kopano-server、-gateway、-ical、z-push 和 webapp 的用户彼此不同。它们也与上游 kopano 中使用的用户不同。这样做是为了使每个服务只能访问其需要的资源。

如果使用 UNIX 套接字,则针对 kopano-server 的身份验证通过用户白名单(root,与守护进程相同的用户可以作为管理员进行身份验证。这是硬编码的。)完成;如果未使用套接字,则通过选定的用户后端(unix 系统 passwd、数据库、ldap)完成,具体取决于是否配置了相应的身份验证插件(可以为 UNIX 套接字禁用)。

kopano 可以集成到 Active Directory (AD) 中。

https://documentation.kopano.io/ 上的手册涵盖了所有主题。本文仅包含 Alpine Linux 特有的内容。

服务

  • CALDAV - kopano-ical - tcp 443
  • MAPI - kopano-server - tcp 443
  • IMAPS - kopano-gateway - tcp 143, 993
  • POP3S - kopano-gateway - tcp 110, 995
  • SMTPS - postfix 或其他 MTA - tcp 25,465,587
  • Web - 通过 php 的 Web 服务器 - tcp 443
  • activesync - zpush - tcp 443


可用插件

目前已打包以下插件,每个插件都是独立的软件包

  • desktopnotifications
  • fetchmail
  • filepreviewer
  • files
  • intranet
  • mdm
  • smime
  • spellchecker

对于 files 插件,已打包以下后端

  • files-backend-owncloud
  • files-backend-smb

对于 spellchecker 插件,已打包以下语言包

  • de-at
  • de-ch
  • de-de
  • en-gb
  • en-us
  • es-es
  • fr-fr
  • it-it
  • nl-nl
  • pl-pl

安装

1) 安装软件包

apk add kopano-core kopano-core-doc kopano-webapp z-push

您还需要一个支持 CGI 的 Web 服务器,例如 apachenginx

2) 配置 mariadb

配置 mariadb 并创建一个名为 “kopano” 的数据库,用于存储 kopano 的数据。创建一个名为 “kopano-core” 的用户,该用户将能够管理该数据库。kopano-core 将使用必要的数据填充数据库。

在 mysql shell 中(将 password 替换为 kopano 用户使用的随机密码)

START TRANSACTION; CREATE DATABASE kopano; GRANT ALTER, CREATE, CREATE ROUTINE, DELETE, DROP, INDEX, INSERT, LOCK TABLES, \ SELECT, UPDATE ON kopano.* TO 'kopano'@'localhost' IDENTIFIED BY 'password'; COMMIT;

3) 准备您的 MTA

kopano 需要 MTA 来将电子邮件传递到 Internet。它只能使用特定的 SMTP 地址将电子邮件发送到单个主机。

为了接收电子邮件,kopano-dagent 需要与 postfix 集成。为了发送电子邮件,kopano-spooler 需要与 postfix 集成。kopano-dagent 可以使用 lmtp 集成。kopano-spooler 可以使用环回上的 smtp 套接字集成,例如。

4) 配置 kopano-core

默认情况下,配置目录 /etc/kopano/ 中没有任何配置文件。Alpine Linux 的默认配置文件(意味着它们不是真正的默认配置)位于 `/usr/share/doc/kopano/example-config/` 中。将所有文件复制到 /etc/kopano/。

cp /usr/share/doc/kopano/example-config/*.cnf /etc/kopano/

在 `/etc/kopano/server.conf` 中,在文件中声明的 mysql_* 变量中输入连接到 mariadb 服务器的详细信息,并配置任何其他必要的详细信息,例如 TLS 证书和证书链。

原生情况下,kopano-core 使用 berkeley db (bsddb) 来存储 kopano-search 和某些工具使用的一些信息。由于 Alpine Linux 不再支持 bsddb,因此已对其进行修补以改用 mdbx。

5) 配置 kopano-webapp

目录 /etc/webapps/kopano-webapp 包含 kopano-webapp 的配置。不同插件的配置文件通过符号链接提供给应用程序,以便于管理。默认值已针对 Alpine Linux 进行了调整,应该可以正常工作。

6) 配置 z-push

目录 /etc/webapps/z-push 包含 z-push 的配置。默认值已针对 Alpine Linux 进行了调整,应该可以正常工作。

7) 配置 Web 服务器

nginx 和 apache 的示例配置文件位于 z-push 和 kopano-webapp 的 /etc/webapps/ 目录中。apache 和 nginx 的配置文件只是位置,而不是完整的 vhost。因此,它们需要首先集成到 vhost 中。强烈建议复制完整的文件,而不是从其原始位置包含它们,这样 Web 服务器就不需要能够访问 kopano 的任何配置目录。确保 Web 服务器的用户是 http 组的成员。此组是 php-fpm 用于 kopano-webapp 和 z-push 的 unix 套接字的所有者。

8) 配置 php-fpm

php-fpm 应该不需要任何额外的配置,除了启动 php-fpm 守护进程。kopano-webapp 和 z-push 附带 php-fpm7 配置文件,其中包含用于 http 组访问它们使用的 unix 套接字的正确配置。

service php-fpm7 start

9) 启动服务

提供了 kopano-dagent、-gateway、-ical、-monitor、-search、-server、-spamd 和 -spooler 的 openrc 单元。它们彼此之间的依赖关系在 openrc 文件中表达,应该可以 OOTB 工作。

for i in dagent gateway ical monitor search server spamd spooler; do rc-service kopano-$i start done


10) 启用服务

for i in dagent gateway ical monitor search server spamd spooler; do rc-update add kopano-$i default done