bewCloud v4.21.0 介绍与选型指南
bewCloud v4.21.0 的认知与选型篇:官方事实溯源、三服务架构解析、八大内置应用与协议端点全景,以及与 Nextcloud、ownCloud、Seafile 的横向选型对比,全部数据标注来源与查询日期。
bewCloud v4.21.0 介绍与选型指南
目标:本篇是 bewCloud 的认知与选型篇,解决「bewCloud 是什么、能做什么、与 Nextcloud/ownCloud/Seafile 相比该怎么选」的问题。全篇信息均溯源自官方仓库、官方 README/FAQ 与 releases(来源与查询日期 2026-10-30 已逐项标注),部署实测与配置细节见本专栏后续篇章。
一、环境信息
本篇为认知溯源篇,不依赖本地部署环境,以下列出溯源所用的信息源与版本事实(查询日期均为 2026-10-30):
- 软件名称:bewCloud(现由 bewcloud 组织维护,作者早期以 hrfee 身份开发,也是 jfa-go 的作者)
- 最新稳定版本:v4.21.0(来源:GitHub Releases
https://github.com/bewcloud/bewcloud/releases/latest重定向实查;官方 Release Notes 注明该版本含 passkey 登录质询改进,升级时需要执行数据库迁移) - 开源许可:AGPL-3.0(来源:GitHub 仓库与 awesome-selfhosted 条目)
- 主仓库:
bewcloud/bewcloud(GitHub,另有 Codeberg 镜像bewcloud/bewcloud) - 官方站点:https://www.bewcloud.com/
- 技术栈:TypeScript + Deno(Web 框架为 Deno 生态的 Fresh),数据库 PostgreSQL,CalDAV/CardDAV 由 Radicale 承载
- 社区热度:GitHub Stars 1.2k(来源:
https://img.shields.io/github/stars/bewcloud/bewcloud.json,2026-10-30 实查) - 赞助背景:NLnet Foundation 资助项目(来源:
https://nlnet.nl/project/bewCloud) - 官方发行形态:仅提供 Docker 镜像
ghcr.io/bewcloud/bewcloud,未提供裸机安装包(来源:仓库 README 与 docker-compose.yml)
二、软件概述
bewCloud 的官方定位一句话可以说清:a simpler alternative to Nextcloud and ownCloud——一个更简单的 Nextcloud/ownCloud 替代品(来源:仓库 README,2026-10-30 实查)。它用 TypeScript 编写、运行在 Deno 运行时上,把「个人云」收敛为一组高使用率的日常功能,而不是追求大而全的生态插件体系。
bewCloud 内置八个默认应用(core.enabledApps,顺序即登录后默认应用,第一个为登录落地页):dashboard(仪表盘)、files(文件)、news(RSS 阅读)、notes(笔记)、photos(照片)、expenses(记账)、contacts(联系人)、calendar(日历)。加上日历/联系人背后的 CalDAV/CardDAV 服务端与文件访问的 WebDAV 端点,它覆盖了个人自托管云最常用的「文件 + 日历 + 通讯录 + 笔记 + 记账 + RSS」六件套。
从版本演进看,bewCloud 经历过一次彻底的重写:最初版本由 Go 语言实现,v1 时代配置全部走环境变量;随后作者用 Deno + TypeScript 重写了整个项目,v2 起配置拆分为「bewcloud.config.ts(正式配置)+ .env(仅密钥)」双层结构(来源:官方 FAQ.md,2026-10-30 实查)。CalDAV/CardDAV 能力自 v2.3.0 起由内嵌的 Radicale 实例承载,联系人客户端 v2.4.0、日历客户端 v2.5.0 逐步补齐(来源:官方 FAQ)。当前 v4.x 系列已稳定迭代至 v4.21.0;v4.0.0 曾有 breaking changes,跨大版本升级需要关注 Release Notes。
💡 技术拓展:「自托管云」这个词背后其实有两类产品形态,选型时先分清——
形态 代表 特点 适用场景 全功能群件 Nextcloud、ownCloud 应用生态庞大(Office 协作、Talk 音视频、插件市场),资源占用与运维面也大 团队协作、需要生态整合 轻量个人云 bewCloud、桌面同步类工具 功能收敛为文件/日历/联系人/笔记等高频刚需,部署面小、资源占用低 个人或小家庭的私有数据中枢 bewCloud 属于后者:它不提供插件市场与 Office 协作,换来的是单实例低资源(官方编排三个服务各限 256MB 内存)与极简的配置面。
三、核心架构
bewCloud 官方 Docker 编排由三个服务组成(来源:仓库 main 分支 docker-compose.yml,2026-10-30 实查):
| 服务 | 官方镜像 | 角色 | 端口 |
|---|---|---|---|
| website | ghcr.io/bewcloud/bewcloud:v4.21.0 | 主应用:Fresh 服务端渲染的 Web 界面、JSON API、WebDAV 文件端点,并为 Radicale 反代注入认证头 | 8000 |
| postgresql | postgres:18.6 | 唯一的元数据存储:用户、文件索引、笔记、RSS、记账、日历/联系人元数据 | 5432(仅内网) |
| radicale | tomsquest/docker-radicale:3.7.6.0 | CalDAV/CardDAV 数据后端:存储日历与通讯录的原始条目(vCard/iCalendar) | 5232(仅内网) |
架构上有三个值得注意的设计决策:
- 协议分层:文件走 bewCloud 自身的 WebDAV 端点(
/dav/),日历与联系人则把 CalDAV/CardDAV 协议外包给久经考验的 Radicale——bewCloud 应用进程在中间做认证代理(把已登录用户的身份以 HTTP 头注入 Radicale,Radicale 配置auth type = http_x_remote_user,不自管认证)。这让协议实现的复杂度收敛到成熟组件,应用代码保持精简。 - 配置双层:
.env只放密钥类环境变量(数据库口令、JWT_SECRET、PASSWORD_SALT、可选的 MFA/OIDC/SMTP 密钥),bewcloud.config.ts承载全部业务配置(auth/files/core/visuals/email/contacts/calendar 七个域),以 TypeScript 文件形式挂载进应用,改配置即改代码文件,类型安全且可版本管理。 - 首用户即管理员:部署后第一个注册的用户自动成为管理员——官方 README 明确说明,即使配置里
allowSignups=false,第一个注册也放行。单管理员、封闭注册是它的默认安全姿态。
数据持久化分三处:PostgreSQL 数据卷(元数据)、data-files/ 目录(用户上传的文件本体,按用户 ID 分目录)、data-radicale/ 目录(日历与通讯录条目)。文件目录默认属主为镜像内 deno 用户的 uid 1993,权限不对时应用无法写入,这是首次部署最常见的坑(详见本专栏部署篇)。
四、功能特性
按八个内置应用与协议端点归纳(来源:仓库 README、FAQ 与 routes.ts 路由清单,2026-10-30 实查):
- files(文件):网页上传/下载、目录管理、目录打包下载(
allowDirectoryDownloads)、私有目录共享(通过符号链接机制共享给其他用户)、公共分享链接(v2.2.0 起,allowPublicSharing开关控制);对外提供 WebDAV 端点(/dav/),桌面端可直接挂载为网络磁盘。 - calendar / contacts:日历与通讯录客户端 + CalDAV/CardDAV 服务端(Radicale 承载),手机日历/通讯录 App 可直连同步;日历支持事件增删改查、导入导出(ICS)、搜索;通讯录支持多地址簿与 vCard 导入导出。
- news:RSS/Atom 订阅阅读器,管理订阅源与条目。
- notes:轻量笔记,支持 Markdown。
- photos:照片浏览,复用 files 中上传的图片。
- expenses:个人记账:支出记录、预算(budget)管理、CSV 导入导出。
- dashboard:登录落地页,自定义快捷链接与速记。
- 账号体系:邮箱口令注册登录、MFA(TOTP 与 passkey,v4.21.0 改进了 passkey 登录质询的服务端单次有效性)、可选 OIDC 单点登录(
OIDC_CLIENT_ID/SECRET环境变量)、可关闭的开放注册。 - 协议端点全景:
/api/*(JSON API:auth/calendar/contacts/dashboard/expenses/files 等域)、/dav/(WebDAV 文件)、/caldav/与/carddav/(含/.well-known/caldav、/.well-known/carddav发现端点)。
需要特别说明的边界:bewCloud 没有管理后台与管理 CLI——管理员和普通用户看到的是同一个 Web 界面,「管理」动作主要是配置文件(注册开关、应用开关等);没有用户管理界面、没有存储配额、没有插件市场。桌面同步客户端(bewcloud-desktop,Rust+Tauri)与移动端(bewcloud-mobile,Flutter)此前已发布但当前处于归档停更状态(来源:README 中 "Previously" 措辞与仓库归档状态,2026-10-30 实查),文件同步的现实路径是 WebDAV 挂载与网页上传。
五、快速开始(最小可用示例)
官方推荐的最小部署路径是 Docker Compose 三件套(来源:仓库 README,2026-10-30 实测通过;完整的逐行部署说明见本专栏《bewCloud v4.21.0 Docker Compose 部署指南》篇):
mkdir data-files data-radicale radicale-config # 1. 准备三个数据目录
# 2. 下载官方 docker-compose.yml、.env(由 .env.sample 复制)、bewcloud.config.ts(由样例复制)、radicale-config/config
docker compose up -d # 3. 启动三服务
docker compose run --rm website bash -c "cd /app && make migrate-db" # 4. 首次执行数据库迁移
sudo chown -R 1993:1993 data-files # 5. 修正文件目录属主(deno 用户 uid 1993)
启动后访问 http://<服务器IP>:8000,进入注册页注册第一个用户——该用户自动成为管理员(即使 allowSignups=false)。实测环境(Linux x86_64、bewCloud v4.21.0、2026-10-30)按上述步骤部署后,注册、登录、文件上传与 CalDAV 探针均验证通过,实测回显与端口/网络规划详见部署篇。
⚠️ 注意:官方配置样例中
auth.baseUrl默认http://localhost:8000,且 bewCloud 对非 HTTPS 站点有 Cookie 安全限制——用服务器 IP 经 HTTP 访问时必须在bewcloud.config.ts中设置skipCookieDomainSecurity: true,否则登录态无法保持(实测踩坑,详见部署篇常见问题)。
六、适用场景与限制
适合:
- 个人或家庭的自托管数据中枢:文件、照片、日历、通讯录、笔记、RSS、记账一站式,且手机日历/通讯录可通过 CalDAV/CardDAV 直连;
- 低配设备(NAS、小 VPS、树莓派级硬件):官方编排三服务各限 256MB 内存,PostgreSQL + Deno + Radicale 的组合在轻量硬件上可安稳运行;
- 反感 Nextcloud 复杂度的用户:配置面收敛为一个 TypeScript 文件加一个密钥
.env,升级主要就是换镜像 tag 执行一次迁移; - 封闭小群体:默认关闭注册、首用户即管理员,天然适合单人或邀请制小圈子。
不适合 / 限制:
- 需要在线协作编辑(Office/文档协同)、音视频会议(Talk)、插件生态的团队场景——bewCloud 明确不提供这些,该场景应选 Nextcloud;
- 需要 Web 图形化管理用户、配额、分享审计的管理面——bewCloud 没有管理后台,用户治理靠配置文件与数据库层面操作;
- 需要官方持续维护的桌面/移动同步客户端——两个客户端均已归档停更,移动端日历/通讯录依赖系统级 CalDAV/CardDAV 账户,文件同步依赖 WebDAV 客户端;
- 追求块级增量同步、断点续传等重度同步语义——bewCloud 的文件面是 WebDAV + 网页上传,不是 Syncthing/Seafile 那类专用同步协议。
七、同类选型对比
四款可自托管的「个人云/网盘」产品横向对比(bewCloud 数据为 2026-10-30 官方源实查;竞品版本与星数来源为 shields.io GitHub tag/stars 徽章实时端点,查询日期 2026-10-30;Seafile 版本未实查,标注为「未实查」):
| 维度 | bewCloud | Nextcloud Server | ownCloud (core) | Seafile |
|---|---|---|---|---|
| 定位 | 轻量个人云(文件+日历+联系人+笔记+RSS+记账) | 全功能协作群件(应用市场 + Office + Talk) | 经典企业网盘(v10 经典版 / oCIS 新架构并行) | 文件同步与团队共享为核心 |
| 技术栈 | TypeScript + Deno(Fresh) | PHP | PHP(core;oCIS 为 Go) | Python/C(未实查,定性) |
| 最新版本 | v4.21.0(GitHub Releases 实查) | v35.0.2(shields tag 实查) | v10.16.6(shields tag 实查) | 未实查 |
| GitHub Stars | 1.2k | 37k | 8.8k | 15k(haiwen/seafile) |
| 开源许可 | AGPL-3.0 | AGPL-3.0 | AGPL-3.0 | 社区版开源 + 专业版闭源(未实查具体许可号) |
| 日历/联系人 | 内置 CalDAV/CardDAV(Radicale 承载) | 内置(CalDAV/CardDAV) | 内置(CalDAV/CardDAV) | 无(需另配) |
| 协作生态 | 无插件体系 | 应用市场数百款 | 应用市场 | 聚焦同步,协作靠集成 |
| 资源门槛 | 官方编排三服务各限 256MB | 官方建议内存 ≥512MB 起,全家桶更高(未实查,定性) | 与 Nextcloud 相近(未实查,定性) | 轻量(定性) |
| 部署形态 | 官方仅 Docker 镜像 | 包管理器 / Docker / 全家桶镜像 | 包管理器 / Docker / oCIS 容器 | 包管理器 / Docker |
对比解读(如何选):
- 要全能生态(在线 Office、Talk、插件市场)→ Nextcloud,代价是资源占用、升级与安全加固的运维面;
- 企业既有 ownCloud 体系延续 → ownCloud v10,新架构建议评估 oCIS;
- 只要文件同步做透、团队共享目录语义强 → Seafile,其同步协议与增量传输在同类中最成熟;
- 一个人/一个家庭,要文件+日历+通讯录+笔记+记账的安静中枢,且硬件有限 → bewCloud:功能面收敛、配置面最小、内存预算最低(三服务各 256MB),是把「自托管云」这件事做简单的那一类选择。
社区活跃度说明:bewCloud 的星数与竞品不在一个量级(1.2k vs 8.8k~37k),但项目由 NLnet 资助、v4.x 保持稳定迭代节奏(v4.21.0 于 2026-10 月内发布),属于「小而活」的维护状态;选它意味着接受较小的社区与-issue 池,换取更小的部署与理解成本。
八、参考链接
- 官方站点:https://www.bewcloud.com/
- GitHub 仓库:https://github.com/bewcloud/bewcloud(README、FAQ.md、docker-compose.yml、routes.ts,均 2026-10-30 实查)
- Releases:https://github.com/bewcloud/bewcloud/releases(v4.21.0 Release Notes,2026-10-30 实查)
- NLnet 项目页:https://nlnet.nl/project/bewCloud/
- License:https://github.com/bewcloud/bewcloud/blob/main/LICENSE(AGPL-3.0)
- 竞品版本/星数数据源:shields.io GitHub 端点(
img.shields.io/github/{tag,stars}/...,2026-10-30 实查;Seafile 版本未实查) - 本系列后续篇章:《bewCloud v4.21.0 Docker Compose 部署指南》(部署实测与排障)