
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
OpenPaaS ESN SabreDAV前端是为SabreDAV开发的OpenPaaS前端组件。它为OpenPaaS实例添加日历和地址簿功能,并允许通过CalDAV和CardDAV标准客户端(如Lightning)访问这些功能。
webserver.allowOrigin配置CORS(跨域资源共享) headers适用于需要为OpenPaaS实例扩展日历和地址簿功能的企业或团队环境。支持用户通过标准CalDAV/CardDAV客户端(如Thunderbird Lightning、macOS日历等)访问和管理OpenPaaS中的日历与联系人数据,提升协作效率。
以下步骤基于Ubuntu系统,其他Linux发行版可参考对应操作。
安装esn-sabre
bashcd /var/www/html git clone https://ci.linagora.com/linagora/lgs/openpaas/esn-sabre.git
通过https://getcomposer.org/管理依赖,执行以下命令安装/更新依赖:
bashcd esn-sabre composer update
可重复执行上述命令更新依赖包版本。
创建配置文件
配置文件可通过示例文件创建:
bashcp config.json.default config.json
或运行生成脚本:
bashsh ./scripts/generate_config.sh > config.json
创建后需根据部署环境修改配置参数:
webserver.baseUri
访问esn.php文件的URL本地部分。
http://YOUR_ESN_SABRE_IP/esn-sabre/esn.php访问,baseUri为/esn-sabre/esn.php/webserver.allowOrigin
配置CalDAV服务器返回的CORS headers。可设置为ESN服务器主机名或保留*(允许所有来源)。
database.esn
用于访问ESN数据存储的配置。
database.sabre
CalDAV服务器存储数据的配置。
esn.apiRoot
CalDAV服务器访问OpenPaaS ESN API的URL。
mail
CalDAV服务器发送邮件的配置。
esn-sabre需Apache服务器支持,需安装以下组件:
安装PHP支持
Ubuntu系统:
bashapt-get install libapache2-mod-php5
Ubuntu 16.04:
bashapt install php5.6 php5.6-bcmath libapache2-mod-php5.6
安装PHP扩展
安装MongoDB和curl支持:
bashapt-get install php5-mongo php5-curl
Ubuntu 16.04:
bashapt-get install php5.6-mongo php5.6-curl
若composer update报错,需通过PECL安装Mongo扩展:
bashapt-get install php5-dev php-pear && pecl install mongo
Ubuntu 16.04:
bashapt-get install php5.6-dev php-pear && pecl install mongo
根据Linux版本,可能需要在php.ini中添加扩展:
bashextension=mongo.so extension=mbstring.so
重启Apache
bash/etc/init.d/apache2 restart
测试环境
通过浏览器访问esn.php文件测试环境:
http://your.server.example.com/esn-sabre/esn.php
需在配置集合中创建文档,指定Caldav服务器地址:
json{ "_id": "davserver", "backend": { "url": "http://192.168.7.6/esn-sabre/esn.php" // 替换为本地ESN服务器地址,供ESN服务端访问 }, "frontend": { "url": "http://my-caldav-server.example.com/esn-sabre/esn.php" // 替换为本地地址,供用户浏览器访问 } }
项目提供Makefile简化测试和代码风格检查,支持以下命令:
bashmake test # 运行所有测试 make test TARGET=tests/CalDAV/ # 仅运行指定测试(如tests/CalDAV/目录) make test-report # 运行测试并生成覆盖率报告(输出至tests/report目录) make lint # 检查整个项目代码风格 make lint TARGET=lib/ # 检查指定文件/目录代码风格
bashdocker build -t linagora/esn-sabre .
运行时需配置ESN和MongoDB访问参数,支持以下环境变量(均为可选,有默认值):
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| SABRE_MONGO_HOST | 存储Sabre数据的MongoDB主机 | sabre_mongo |
| SABRE_MONGO_PORT | Sabre MongoDB端口 | 27017 |
| ESN_MONGO_HOST | ESN的MongoDB主机 | esn_mongo |
| ESN_MONGO_PORT | ESN MongoDB端口 | 27017 |
| ESN_MONGO_DBNAME | ESN MongoDB数据库名 | esn |
| ESN_HOST | ESN API主机名 | esn_host |
| ESN_PORT | ESN API端口 | 8080 |
| AMQP_HOST | Sabre和ESN使用的AMQP主机 | amqp_host |
| AMQP_PORT | AMQP端口 | 5672 |
| AMQP_LOGIN | AMQP登录名 | guest |
| AMQP_PASSWORD | AMQP密码 | guest |
| MONGO_TIMEOUT | MongoDB连接超时(毫秒) | *** |
示例:
bashdocker run -d -p 8001:80 -e "SABRE_MONGO_HOST=192.168.0.1" -e "ESN_MONGO_HOST=192.168.0.1" docker.xuanyuan.run/linagora/esn-sabre
上述命令启动容器,映射主机8001端口至容器80端口,配置MongoDB主机为192.168.0.1。
单元测试依赖MongoDB容器,先启动MongoDB:
bashdocker run --name mongo -d docker.xuanyuan.run/mongo:3.2.0
运行测试(使用linagora/esn-sabre镜像,自动更新composer依赖):
bashdocker run -a docker.xuanyuan.run/stdout -i -t -v $PWD:/var/www --link mongo:mongo linagora/esn-sabre make
(如需最新依赖,可能需要重新构建镜像)
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务