跳到主要内容

BeeCount Cloud 自建云

3.0 新增 · 官方推荐的多设备实时同步方案

BeeCount Cloud 是官方推出的自建云同步服务端,用 Docker 一行命令就能跑起来,支持:

  • 🔄 多设备实时协同:手机 A 改一笔,几秒内推到手机 B 和 Web
  • 🌐 内置 Web 管理端:一个 Docker 镜像包含 server + web + PWA,浏览器直接用
  • 👥 多用户独立:一个服务器可以多人注册账号,各自数据完全隔离
  • 🐳 一键部署:Docker Compose 配置文件不到 10 行

适合谁

用户类型推荐理由
🏠 家庭多人记账每人注册一个账号 + 共享账本邀请家人共记一本,Owner / Editor 角色权限分明
📱 单人多设备手机 / iPad / Web 三端秒级同步,不用手动"上传下载"
🖥️ 有 NAS / VPS 的用户Docker 一键跑起来,数据在自己机器上
👨‍💻 技术用户开源、可审计,想二次开发也可以
版本升级提示(1.5.1)
  • App 3.5.1 的「账单标记」需要 Cloud ≥ 1.5.1:云模式下,服务端的收支/预算汇总按「不计入收支」「不计入预算」标记过滤;老服务端不识别标记,云端统计会把已标记的交易也算进去(本地模式与单机统计不受影响,始终正确)。升级顺序务必先服务端、后 App
版本升级提示(1.5.0)
  • App 3.5.0 的多币种净值趋势依赖 Cloud ≥ 1.5.0:服务端提供主币种同步、手动汇率、汇率代理以及 net-worth-history 读端点。升级顺序务必先服务端、后 App
  • 本版无数据库 schema 迁移:net-worth-history 是纯读端点,多币种以用户级维度(user-global projection)同步,docker compose pull && docker compose up -d 即可,数据不动
  • 老服务端不识别主币种,表现为"折算设置不跨设备"、远端净值趋势不可用;升级到 1.5.0 即对齐
版本升级提示(1.4.0)
  • App 3.4.0 的「每月起始日」需要 Cloud ≥ 1.4.0:老服务端会忽略该设置,表现为"设置不跨设备"。升级顺序建议先服务端、后 App
  • 升级到 1.4.0 时数据库迁移自动执行,并会自动回填修复历史交易"账户统计漏算"的问题(老版本 Web 写入的部分交易缺账户关联,导致 Web 账户统计偏小),无需手工操作
  • 1.3.12 起 Web 端 CSV 导入按客户端时区换算时间(修复导入时间晚 8 小时)

一键部署

将下面的内容存为 docker-compose.yml:

services:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
volumes:
- ./data:/data

启动:

mkdir -p beecount && cd beecount
# 把上面 yaml 存为 docker-compose.yml
docker compose up -d

首次启动时,Docker 会:

  1. ./data/beecount.db 自动建库 + 跑 migration
  2. 生成 ./data/.jwt_secret(32 字节强密钥,600 权限)
  3. 自动创建一个管理员账号,随机 16 位密码

拿到管理员账号

方式 1:从日志里看(推荐)

docker compose logs beecount-cloud | grep -A 10 "初次启动"

会看到:

========================================================================
BeeCount Cloud — 初次启动,已自动创建管理员账号:

邮箱: owner@example.com
密码: FIDodUnwprkw1zUi

凭证已落盘到 /data/.initial_admin_password(volume 内,600 权限)
========================================================================

方式 2:从文件读

cat ./data/.initial_admin_password

登录使用

Web 管理端

浏览器访问 http://<你的服务器>:8869,用管理员账号登录。

第一次登录后建议立即修改密码(右上角头像 → 账户设置)。

手机 App 连接

  1. 打开蜜蜂记账 → 我的云同步
  2. 选择 BeeCount Cloud 服务
  3. 填服务器地址(例如 http://192.168.1.100:8869)+ 管理员邮箱密码
  4. 登录后首次会全量上传本地所有账本到服务器

添加家人 / 队友

BeeCount Cloud 不支持自助注册(避免公网暴露被滥用),账号只能由管理员添加。

  1. 管理员登录 Web 后台 → 左侧菜单 用户
  2. 点击 新增用户,输入对方邮箱 + 临时密码
  3. 把账号发给对方,让 ta 在手机 App 或 Web 登录

每个用户默认数据独立、互相隔离。多人协作场景走"共享账本":Owner 在 App / Web 上一键生成邀请码,Editor 输入后即可加入。

共享账本(多人协作)

  • Owner / Editor 双角色 — Owner 改账本元数据 / 邀请 / 踢人;Editor 共记交易,看不到 Owner 的其它账本
  • 实时同步 — WebSocket 推送,任一成员改动其他成员秒级看到
  • 谁记的 / 谁编辑的 — 每条交易自动标记创建人 + 最后编辑人(头像 + 角色)
  • 成员收支统计 — Web 端独立弹窗(图表版,含柱图 + 饼图)/ App 端简版列表
  • 三端等价 — iOS / Android / Web 都能创建邀请、加入、退出、踢人

详细使用说明见 共享账本 文档。

进阶配置

自定义管理员账号

默认首次启动生成随机密码。如果想自己指定:

services:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
environment:
BOOTSTRAP_ADMIN_EMAIL: me@example.com
BOOTSTRAP_ADMIN_PASSWORD: <你的强密码>
volumes:
- ./data:/data

两个环境变量只在"库里一个 user 都没有"时生效,之后改它们不会动老账号。

自定义 JWT 密钥

默认会自动生成 /data/.jwt_secret。如果你有密钥管理系统想自己托管:

environment:
JWT_SECRET: <32+ 字节的强随机串>

设置这个变量后,系统不会再生成或读取文件。

公网部署

建议在前面套一层 nginx / Caddy 做 HTTPS + 域名绑定:

用户 ─HTTPS─► Caddy/Nginx ─http://localhost:8869─► BeeCount Cloud

App 和 Web 都支持 https:// 地址。

数据备份

所有持久化数据都在 ./data/ 目录:

  • beecount.db —— SQLite 数据库(账本、交易、用户)
  • attachments/ —— 附件文件(头像、交易图片、分类自定义图标)
  • backups/ —— 备份归档
  • .jwt_secret —— JWT 签名密钥(丢了所有用户 token 失效,需要重新登录)

备份整个 data/ 目录就是完整备份,迁到新服务器直接 rsync 过去启动即可。

Web 端支持 PWA

Web 管理端是渐进式 Web 应用(PWA):

  • 浏览器地址栏右侧会出现"安装"图标,点一下装到桌面 / Dock / 开始菜单
  • 装成独立 app 后,打开无浏览器地址栏,近似原生体验
  • 离线时可以读缓存数据,回网后自动同步

升级

cd beecount
docker compose pull
docker compose up -d

数据库自动 migrate。data/ 目录不动。

常见问题

Q: 手机连不上服务器

检查:

  • 防火墙是否放行 8869(或你自己映射的端口)
  • 手机和服务器在同一网络(或通过公网 IP / 域名)
  • 服务器地址前缀是 http:// 还是 https://,别写错

Q: 启动后 docker compose logs 没看到管理员 banner

可能已经不是首次启动了。密码文件在 ./data/.initial_admin_password。 如果文件也丢了,可以用 BOOTSTRAP_ADMIN_EMAIL + BOOTSTRAP_ADMIN_PASSWORD env 配一个新账号(仅当库里没任何 user 时生效)。如果库里已有账号需要重置密码,管理员登录 Web → 用户 → 编辑修改即可。

Q: 服务器迁到新机器

  • 旧机器:docker compose down
  • data/ 目录 rsync 到新机器
  • 新机器:同样的 docker-compose.yml,docker compose up -d
  • App 里服务器地址改成新的,重新登录

Q: Web 端能改主题色吗

可以。右上角头像 → 账户设置 → 主题色。每个用户的偏好独立,不影响别人。

相关仓库