Nextcloud 私有云部署教程 / 06 - 应用生态
06 - 应用生态
探索 Nextcloud 丰富的应用生态:Office 协作、日历、联系人、邮件、Deck 看板、密码管理等。
6.1 应用管理基础
应用安装与管理
# 列出已安装应用
sudo -u www-data php /var/www/nextcloud/occ app:list
# 从应用商店安装
sudo -u www-data php /var/www/nextcloud/occ app:install calendar
sudo -u www-data php /var/www/nextcloud/occ app:install contacts
sudo -u www-data php /var/www/nextcloud/occ app:install deck
# 禁用应用
sudo -u www-data php /var/www/nextcloud/occ app:disable activity
# 更新所有应用
sudo -u www-data php /var/www/nextcloud/occ app:update --all
核心应用一览
| 应用 | 功能 | 默认状态 |
|---|
| Files | 文件管理 | ✅ 内置 |
| Activity | 活动流 | ✅ 内置 |
| Calendar | 日历 | ✅ 内置 |
| Contacts | 联系人 | ✅ 内置 |
| Talk | 视频会议/聊天 | ❌ 需安装 |
| Mail | 邮件客户端 | ❌ 需安装 |
| Deck | 看板/任务管理 | ❌ 需安装 |
| Notes | 笔记 | ❌ 需安装 |
| Passwords | 密码管理 | ❌ 需安装 |
| Collectives | 知识库/Wiki | ❌ 需安装 |
| Forms | 表单/问卷 | ❌ 需安装 |
| Whiteboard | 白板 | ❌ 需安装 |
| Maps | 地图 | ❌ 需安装 |
| Photos | 照片管理 | ✅ 内置 |
6.2 Calendar(日历)
功能特性
| 特性 | 说明 |
|---|
| 多日历支持 | 创建多个日历(工作、个人、共享等) |
| CalDAV 协议 | 标准协议,兼容 Thunderbird、Apple Calendar 等 |
| 重复事件 | 支持复杂重复规则 |
| 提醒通知 | 邮件、弹窗、推送通知 |
| 会议室 | 会议室资源管理 |
| 共享日历 | 与用户/群组共享,支持只读/读写权限 |
| Webhook | 事件变更通知 |
使用场景
企业场景:
├── 部门日历共享(团队可见)
├── 会议室预约管理
├── 项目里程碑日历
└── 与 Outlook/Thunderbird 同步
个人场景:
├── 个人日程管理
├── 家庭日历共享
├── 生日/纪念日提醒
└── 手机日历同步(DAVx5)
CalDAV 客户端配置
CalDAV URL: https://cloud.example.com/remote.php/dav/calendars/username/
用户名: Nextcloud 用户名
密码: Nextcloud 密码(或应用密码)
功能特性
| 特性 | 说明 |
|---|
| vCard 格式 | 标准 vCard 3.0/4.0 |
| CardDAV 协议 | 标准协议,支持跨设备同步 |
| 联系人分组 | 按群组分类管理 |
| 导入/导出 | 支持 CSV、vCard 导入导出 |
| 共享通讯录 | 团队/部门通讯录共享 |
| LDAP 集成 | 自动同步 LDAP 用户 |
CardDAV 配置
CardDAV URL: https://cloud.example.com/remote.php/dav/addressbooks/users/username/
用户名: Nextcloud 用户名
密码: Nextcloud 密码
从 Google/Outlook 迁移
# 1. 从 Google 导出联系人(CSV 或 vCard)
# 2. 在 Nextcloud Contacts 应用中导入
# 3. 在客户端(如 DAVx5)配置 CardDAV 同步
6.4 Mail(邮件客户端)
安装与配置
sudo -u www-data php /var/www/nextcloud/occ app:install mail
支持的邮件协议
| 协议 | 端口 | 加密 | 说明 |
|---|
| IMAP | 143 | STARTTLS | 接收邮件 |
| IMAPS | 993 | SSL/TLS | 接收邮件(加密) |
| SMTP | 587 | STARTTLS | 发送邮件 |
| SMTPS | 465 | SSL/TLS | 发送邮件(加密) |
配置示例
接收服务器(IMAP):
服务器: imap.example.com
端口: 993
加密: SSL/TLS
用户: [email protected]
密码: 邮箱密码
发送服务器(SMTP):
服务器: smtp.example.com
端口: 587
加密: STARTTLS
用户: [email protected]
密码: 邮箱密码
Sieve 邮件过滤
Mail 应用支持 Sieve 邮件过滤规则:
require ["fileinto", "reject"];
# 自动分类邮件
if header :contains "Subject" "[GitHub]" {
fileinto "GitHub";
}
if header :contains "From" "[email protected]" {
fileinto "通知";
}
6.5 Talk(视频会议与聊天)
安装
sudo -u www-data php /var/www/nextcloud/occ app:install talk
sudo -u www-data php /var/www/nextcloud/occ app:install signaling_server # 可选
功能特性
| 特性 | 说明 |
|---|
| 一对一聊天 | 文字、图片、文件、语音消息 |
| 群组聊天 | 多人群聊,支持 @提及 |
| 视频通话 | 1对1 或多人视频(P2P 或 SFU) |
| 屏幕共享 | 分享整个屏幕或单个窗口 |
| 文件共享 | 聊天中直接分享文件 |
| 集成 | 与文件、日历、Deck 集成 |
| 客户端 | Android / iOS / Web |
TURN 服务器配置
大规模部署需要 TURN 服务器以确保 NAT 穿透:
# 安装 coturn
sudo apt install -y coturn
# 编辑 /etc/turnserver.conf
cat << 'EOF' > /etc/turnserver.conf
listening-port=3478
tls-listening-port=5349
fingerprint
lt-cred-mech
realm=turn.example.com
total-quota=100
stale-nonce=600
cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem
no-multicast-peers
no-cli
no-tlsv1
no-tlsv1_1
EOF
sudo systemctl restart coturn
在 Nextcloud 管理后台配置 TURN:
设置 → 管理 → Talk → STUN 服务器: stun:turn.example.com:3478
TURN 服务器: turn:turn.example.com:3478
TURN 密钥: your-shared-secret
协议: udp,tcp
6.6 Deck(看板/任务管理)
功能特性
| 特性 | 说明 |
|---|
| 看板视图 | Kanban 风格任务管理 |
| 列表视图 | 传统任务列表 |
| 标签系统 | 多彩标签分类 |
| 截止日期 | 任务到期提醒 |
| 负责人 | 任务指派 |
| 附件 | 附加文件到卡片 |
| 评论 | 卡片评论与讨论 |
| Markdown | 卡片描述支持 Markdown |
| 日历集成 | 任务显示在日历中 |
| Talk 集成 | 从聊天创建卡片 |
使用场景
项目管理:
├── TODO (待办) → In Progress (进行中) → Review (评审) → Done (完成)
├── Bug 跟踪看板
├── 产品需求池
└── Sprint 迭代管理
个人管理:
├── 学习计划看板
├── 读书清单
└── 生活待办
Deck API 示例
# 获取所有看板
curl -s -u admin:password \
-H "OCS-APIREQUEST: true" \
"https://cloud.example.com/index.php/apps/deck/api/v1.0/boards" | jq
# 创建新卡片
curl -s -u admin:password \
-X POST \
-H "Content-Type: application/json" \
-H "OCS-APIREQUEST: true" \
-d '{"title":"新任务","type":"plain","order":0}' \
"https://cloud.example.com/index.php/apps/deck/api/v1.0/boards/1/stacks/1/cards" | jq
6.7 Notes(笔记)
功能特性
| 特性 | 说明 |
|---|
| Markdown 编辑 | 支持 Markdown 语法 |
| 文件存储 | 笔记以 .md 文件存储在 Files 中 |
| 分类管理 | 按类别组织笔记 |
| 全文搜索 | 搜索笔记内容 |
| API | REST API 支持第三方客户端 |
| 移动端 | Android / iOS 客户端 |
6.8 Passwords(密码管理)
安装
sudo -u www-data php /var/www/nextcloud/occ app:install passwords
功能特性
| 特性 | 说明 |
|---|
| 密码存储 | 加密存储网站密码 |
| 文件夹管理 | 按类别组织密码 |
| 标签系统 | 灵活的标签分类 |
| 共享 | 与用户/群组共享密码 |
| 导入/导出 | 支持 CSV、KeePass 格式 |
| 浏览器扩展 | Firefox / Chrome 扩展 |
| 安全审计 | 密码强度检测、泄露检查 |
| 2FA | 与其他应用集成双因素认证 |
与 KeePass 对比
| 特性 | Nextcloud Passwords | KeePass |
|---|
| 存储位置 | Nextcloud 服务器 | 本地文件(可同步) |
| 多设备同步 | ✅ 原生支持 | 需要配合同步工具 |
| 协作 | ✅ 支持共享 | ❌ 不支持 |
| 浏览器扩展 | ✅ 支持 | ✅ 通过 KeePassXC |
| 安全性 | AES-256 加密 | AES-256/ChaCha20 |
6.9 Collectives(知识库)
sudo -u www-data php /var/www/nextcloud/occ app:install collectives
功能特性
| 特性 | 说明 |
|---|
| Wiki 风格 | 树形页面结构 |
| Markdown | 全 Markdown 编辑 |
| 版本控制 | 页面历史版本 |
| 团队协作 | 群组共享知识库 |
| 搜索 | 全文搜索 |
| 集成 | 与 Files、Talk 集成 |
sudo -u www-data php /var/www/nextcloud/occ app:install forms
功能特性
| 特性 | 说明 |
|---|
| 题型支持 | 单选、多选、简答、下拉、日期等 |
| 匿名填写 | 无需 Nextcloud 账号 |
| 结果统计 | 图表展示结果 |
| 导出 | CSV 导出结果 |
| 关联文件 | 结果关联到 Files |
6.11 应用集成配置
应用间集成关系图
┌─────────┐ ┌──────────┐ ┌─────────┐
│ Files │◄──►│ Talk │◄──►│ Deck │
└────┬────┘ └────┬─────┘ └────┬────┘
│ │ │
│ ┌────────┴────────┐ │
│ │ Calendar │ │
│ └────────┬────────┘ │
│ │ │
┌────┴──────────────┴──────────────┴────┐
│ Notifications │
└───────────────────────────────────────┘
常用应用安装清单
# 一键安装推荐应用
APPS="calendar contacts talk mail deck notes passwords forms collectives"
for app in $APPS; do
sudo -u www-data php /var/www/nextcloud/occ app:install "$app"
done
6.12 注意事项
- 应用兼容性: 安装应用前检查是否支持当前 Nextcloud 版本
- 性能影响: 每个应用都会增加内存和 CPU 消耗,按需安装
- 更新策略: 大版本升级前先禁用第三方应用,升级后再逐个测试启用
- Talk 性能: 10 人以上视频通话建议配置独立 SFU(如 Janus)或 TURN 服务器
- Mail 安全: 邮箱密码建议使用应用专用密码,而非主密码
- Passwords 备份: 密码数据虽然加密存储,但仍需定期备份
6.13 扩展阅读
上一章: 05 - 存储方案
下一章: 07 - 文件分享 — 链接分享、群组分享、权限管理。