bewCloud v4.21.0 介绍与选型指南

bewCloud v4.21.0 的认知与选型篇:官方事实溯源、三服务架构解析、八大内置应用与协议端点全景,以及与 Nextcloud、ownCloud、Seafile 的横向选型对比,全部数据标注来源与查询日期。

bewCloudbewCloudNextcloud自托管2026/10/30

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 实查):

服务官方镜像角色端口
websiteghcr.io/bewcloud/bewcloud:v4.21.0主应用:Fresh 服务端渲染的 Web 界面、JSON API、WebDAV 文件端点,并为 Radicale 反代注入认证头8000
postgresqlpostgres:18.6唯一的元数据存储:用户、文件索引、笔记、RSS、记账、日历/联系人元数据5432(仅内网)
radicaletomsquest/docker-radicale:3.7.6.0CalDAV/CardDAV 数据后端:存储日历与通讯录的原始条目(vCard/iCalendar)5232(仅内网)

架构上有三个值得注意的设计决策:

  1. 协议分层:文件走 bewCloud 自身的 WebDAV 端点(/dav/),日历与联系人则把 CalDAV/CardDAV 协议外包给久经考验的 Radicale——bewCloud 应用进程在中间做认证代理(把已登录用户的身份以 HTTP 头注入 Radicale,Radicale 配置 auth type = http_x_remote_user,不自管认证)。这让协议实现的复杂度收敛到成熟组件,应用代码保持精简。
  2. 配置双层:.env 只放密钥类环境变量(数据库口令、JWT_SECRET、PASSWORD_SALT、可选的 MFA/OIDC/SMTP 密钥),bewcloud.config.ts 承载全部业务配置(auth/files/core/visuals/email/contacts/calendar 七个域),以 TypeScript 文件形式挂载进应用,改配置即改代码文件,类型安全且可版本管理。
  3. 首用户即管理员:部署后第一个注册的用户自动成为管理员——官方 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 版本未实查,标注为「未实查」):

维度bewCloudNextcloud ServerownCloud (core)Seafile
定位轻量个人云(文件+日历+联系人+笔记+RSS+记账)全功能协作群件(应用市场 + Office + Talk)经典企业网盘(v10 经典版 / oCIS 新架构并行)文件同步与团队共享为核心
技术栈TypeScript + Deno(Fresh)PHPPHP(core;oCIS 为 Go)Python/C(未实查,定性)
最新版本v4.21.0(GitHub Releases 实查)v35.0.2(shields tag 实查)v10.16.6(shields tag 实查)未实查
GitHub Stars1.2k37k8.8k15k(haiwen/seafile)
开源许可AGPL-3.0AGPL-3.0AGPL-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 池,换取更小的部署与理解成本。

八、参考链接