Self-hosted cloud for BeeCount — one Docker image runs the sync server + web app · multi-device realtime sync · shared ledgers | 蜜蜂记账自建云:一个 Docker 镜像跑齐同步服务与 Web 端 · 多端实时同步 · 共享账本
See the codeBeeCount(蜜蜂记账) App 的自部署同步云端。 让 iOS / Android / Web 三端共用一份完全属于你的账本 — 无广告、无订阅、无第三方依赖。

🤖 新:用 LLM 直接管理账本 — BeeCount Cloud 内置 MCP server,在 Claude Desktop / Cursor / Cline 里跟 LLM 自然语言对话就能查询交易、记账、改预算。👉 查看 MCP 文档
| 项 | BeeCount Cloud | Firefly III | Actual Budget | Maybe Finance |
|---|---|---|---|---|
| 移动端原生 App | ✅ iOS + Android | ❌ Web only | ⚠️ 仅 Web PWA | ❌ Web only |
| 实时多端同步 | ✅ WebSocket 秒级 | ❌ 无 | ⚠️ 文件同步 | ❌ 无 |
| AI 智能记账 | ✅ AI / OCR / 语音 | ❌ | ❌ | ⚠️ 部分 |
| 部署成本 | 单容器 + 1 个 volume | 容器 + Postgres | 容器 + 文件存储 | 多服务 |
| 加密备份 | ✅ AES-256 + 多远端 | ⚠️ 手动 | ❌ | ⚠️ 手动 |
| 中文 / i18n | ✅ 简繁中英 | ⚠️ 部分 | ❌ | ❌ |
?xxx 或选「问 AI」,基于官方文档 RAG 检索 + 用 App 配的 LLM 生成答案,自动贴 source 链接/metrics,/ready 健康探针单容器自带的多远端 + AES-256 加密备份系统。本地数据库 / 附件 / JWT 密钥可定时自动推送到任意 S3 / R2 / B2 / WebDAV / Google Drive / OneDrive。
TZkeep_at_least=1 防误配<DATA_DIR>/restore/<run_id>/ 写,用户手动 cp/rsync 替换只要你有 .zip 文件 + 口令,任何系统、任何标准解压工具都能解开备份,不依赖 BeeCount 服务存在。
| 中文 UI | English UI |
|---|---|
![]() | ![]() |
预构建镜像 sunxiao0721/beecount-cloud 一体化打包 FastAPI 后端 + Web 控制台 — 单容器 + 一个数据卷,搞定。
docker-compose.ymlservices:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
volumes:
- ./data:/data
environment:
# —— 可选:启用 ⌘K「AI 文档问答」(对官方文档做 RAG 检索)——
# 不填这把 key 也行,功能就走 fallback「跳官网搜文档」,其它功能完全不受影响。
# 默认走 SiliconFlow 免费 quota(月 10 万次问答足够小规模自托管),
# 注册 https://siliconflow.cn 拿 key 填进来即可。
EMBEDDING_BASE_URL: https://api.siliconflow.cn/v1
EMBEDDING_MODEL: BAAI/bge-m3
EMBEDDING_API_KEY: "" # ← 填你的 SiliconFlow key 启用 AI Q&A
兼容的 embedding provider 完整列表(SiliconFlow / OpenAI / 智谱 / 阿里 / 火山 / Voyage / Mistral / Jina / Together / 自托管 Ollama...)+ 切换说明 见
.env.example。关键约束:EMBEDDING_MODEL必须跟 docker image 里自带的 sqlite 索引 build 时一致(默认BAAI/bge-m3),换 model 必须双侧同步重 build 索引。
文档索引会保留镜像内置版本作为离线兜底,并默认每 6 小时从 BeeCount-Website 检查一次更新;更新会校验完整中英文索引后热切换,不需要重启或重建镜像。可在「设置 → 健康」查看构建时间并由管理员手动更新;用
RAG_INDEX_REFRESH_INTERVAL_SECONDS=0关闭自动检查。
docker compose up -d
# 查看首次启动生成的随机管理员账号密码:
docker compose logs beecount-cloud | grep -A 10 "初次启动"
看到类似:
BeeCount Cloud — 初次启动,已自动创建管理员账号:
邮箱: owner@example.com
密码: FIDodUnwprkw1zUi
拿这个账号:
http://<你的服务器 IP>:8869 即可用 Web 管理端docker compose pull
docker compose up -d
Alembic 迁移会在容器启动时自动执行(详见数据库迁移)。
./data/ 目录包含所有持久化数据:SQLite 数据库、附件、备份归档、JWT 密钥。直接打包目录即可:
tar czf beecount-$(date +%F).tar.gz ./data
或更推荐的:配置内置的多远端加密备份(见备份系统),自动 cron 推到 S3 / R2 / WebDAV。
services:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
environment:
# 自指定管理员账号(替代默认随机生成):
BOOTSTRAP_ADMIN_EMAIL: me@example.com
BOOTSTRAP_ADMIN_PASSWORD: <你的强密码>
# 调度器时区(默认 Asia/Shanghai,跟容器 TZ 同步):
# TZ: Asia/Shanghai
volumes:
- ./data:/data
建议在前面套一层 nginx / caddy 做 HTTPS + 域名。App 和 Web 都支持 https:// 地址。
schema 版本由 Alembic 管理。
每次容器启动入口脚本会执行:
alembic upgrade head && uvicorn server:app --host 0.0.0.0 --port 8080
所以升级镜像后,任何新迁移会在服务接收请求前自动按顺序执行。数据持久化在 ./data/ 目录,升级无需手动介入。
如果迁移失败(罕见),容器会退出、数据库保留在升级前的版本上 — 修复问题后 docker compose pull && up -d 重试即可。
安装 BeeCount App(iOS / Android),然后在 App 中:
https://your-domain.com)和登录凭证3.11+20+、pnpm 9+make setup-backend
pnpm -C frontend install
# 终端 1 — API(端口 8080)
make migrate
make dev-api
# 终端 2 — Web 开发服务(端口 5173)
make dev-web
make seed-demo
# Email: owner@example.com Password: 123456
make test # pytest
make lint # ruff
make typecheck # mypy
pnpm -C frontend/apps/web test:unit
pnpm -C frontend/apps/web exec tsc --noEmit --skipLibCheck
make dev-up
frontend/apps/web — shell、路由、页面编排frontend/packages/api-client — HTTP + 类型化响应frontend/packages/web-features — 业务面板、权限、格式化frontend/packages/ui — shadcn 风格基座(Radix)docker build -t sunxiao0721/beecount-cloud:dev .
docker run -p 8080:8080 -v beecount_data:/data \
-e JWT_SECRET=dev-secret-at-least-32-bytes-long \
sunxiao0721/beecount-cloud:dev
http://your-domain.com/docs本项目采用 商业源代码许可证(Business Source License,BSL)。
| 用途 | 许可 |
|---|---|
| ✅ 个人自部署 | 完全免费 |
| ✅ 学习研究 | 完全免费 |
| ✅ 开源贡献 | 欢迎参与 |
| ❌ 商业使用 | 需要付费授权 |
什么算商业使用:
如需商业授权,请通过 GitHub Issues 联系。详见 LICENSE。
TypeScript
51.0%
Python
48.0%
Self-hosted cloud for BeeCount — one Docker image runs the sync server + web app · multi-device realtime sync · shared ledgers | 蜜蜂记账自建云:一个 Docker 镜像跑齐同步服务与 Web 端 · 多端实时同步 · 共享账本
See the codeBeeCount(蜜蜂记账) App 的自部署同步云端。 让 iOS / Android / Web 三端共用一份完全属于你的账本 — 无广告、无订阅、无第三方依赖。

🤖 新:用 LLM 直接管理账本 — BeeCount Cloud 内置 MCP server,在 Claude Desktop / Cursor / Cline 里跟 LLM 自然语言对话就能查询交易、记账、改预算。👉 查看 MCP 文档
| 项 | BeeCount Cloud | Firefly III | Actual Budget | Maybe Finance |
|---|---|---|---|---|
| 移动端原生 App | ✅ iOS + Android | ❌ Web only | ⚠️ 仅 Web PWA | ❌ Web only |
| 实时多端同步 | ✅ WebSocket 秒级 | ❌ 无 | ⚠️ 文件同步 | ❌ 无 |
| AI 智能记账 | ✅ AI / OCR / 语音 | ❌ | ❌ | ⚠️ 部分 |
| 部署成本 | 单容器 + 1 个 volume | 容器 + Postgres | 容器 + 文件存储 | 多服务 |
| 加密备份 | ✅ AES-256 + 多远端 | ⚠️ 手动 | ❌ | ⚠️ 手动 |
| 中文 / i18n | ✅ 简繁中英 | ⚠️ 部分 | ❌ | ❌ |
?xxx 或选「问 AI」,基于官方文档 RAG 检索 + 用 App 配的 LLM 生成答案,自动贴 source 链接/metrics,/ready 健康探针单容器自带的多远端 + AES-256 加密备份系统。本地数据库 / 附件 / JWT 密钥可定时自动推送到任意 S3 / R2 / B2 / WebDAV / Google Drive / OneDrive。
TZkeep_at_least=1 防误配<DATA_DIR>/restore/<run_id>/ 写,用户手动 cp/rsync 替换只要你有 .zip 文件 + 口令,任何系统、任何标准解压工具都能解开备份,不依赖 BeeCount 服务存在。
| 中文 UI | English UI |
|---|---|
![]() | ![]() |
预构建镜像 sunxiao0721/beecount-cloud 一体化打包 FastAPI 后端 + Web 控制台 — 单容器 + 一个数据卷,搞定。
docker-compose.ymlservices:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
volumes:
- ./data:/data
environment:
# —— 可选:启用 ⌘K「AI 文档问答」(对官方文档做 RAG 检索)——
# 不填这把 key 也行,功能就走 fallback「跳官网搜文档」,其它功能完全不受影响。
# 默认走 SiliconFlow 免费 quota(月 10 万次问答足够小规模自托管),
# 注册 https://siliconflow.cn 拿 key 填进来即可。
EMBEDDING_BASE_URL: https://api.siliconflow.cn/v1
EMBEDDING_MODEL: BAAI/bge-m3
EMBEDDING_API_KEY: "" # ← 填你的 SiliconFlow key 启用 AI Q&A
兼容的 embedding provider 完整列表(SiliconFlow / OpenAI / 智谱 / 阿里 / 火山 / Voyage / Mistral / Jina / Together / 自托管 Ollama...)+ 切换说明 见
.env.example。关键约束:EMBEDDING_MODEL必须跟 docker image 里自带的 sqlite 索引 build 时一致(默认BAAI/bge-m3),换 model 必须双侧同步重 build 索引。
文档索引会保留镜像内置版本作为离线兜底,并默认每 6 小时从 BeeCount-Website 检查一次更新;更新会校验完整中英文索引后热切换,不需要重启或重建镜像。可在「设置 → 健康」查看构建时间并由管理员手动更新;用
RAG_INDEX_REFRESH_INTERVAL_SECONDS=0关闭自动检查。
docker compose up -d
# 查看首次启动生成的随机管理员账号密码:
docker compose logs beecount-cloud | grep -A 10 "初次启动"
看到类似:
BeeCount Cloud — 初次启动,已自动创建管理员账号:
邮箱: owner@example.com
密码: FIDodUnwprkw1zUi
拿这个账号:
http://<你的服务器 IP>:8869 即可用 Web 管理端docker compose pull
docker compose up -d
Alembic 迁移会在容器启动时自动执行(详见数据库迁移)。
./data/ 目录包含所有持久化数据:SQLite 数据库、附件、备份归档、JWT 密钥。直接打包目录即可:
tar czf beecount-$(date +%F).tar.gz ./data
或更推荐的:配置内置的多远端加密备份(见备份系统),自动 cron 推到 S3 / R2 / WebDAV。
services:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
environment:
# 自指定管理员账号(替代默认随机生成):
BOOTSTRAP_ADMIN_EMAIL: me@example.com
BOOTSTRAP_ADMIN_PASSWORD: <你的强密码>
# 调度器时区(默认 Asia/Shanghai,跟容器 TZ 同步):
# TZ: Asia/Shanghai
volumes:
- ./data:/data
建议在前面套一层 nginx / caddy 做 HTTPS + 域名。App 和 Web 都支持 https:// 地址。
schema 版本由 Alembic 管理。
每次容器启动入口脚本会执行:
alembic upgrade head && uvicorn server:app --host 0.0.0.0 --port 8080
所以升级镜像后,任何新迁移会在服务接收请求前自动按顺序执行。数据持久化在 ./data/ 目录,升级无需手动介入。
如果迁移失败(罕见),容器会退出、数据库保留在升级前的版本上 — 修复问题后 docker compose pull && up -d 重试即可。
安装 BeeCount App(iOS / Android),然后在 App 中:
https://your-domain.com)和登录凭证3.11+20+、pnpm 9+make setup-backend
pnpm -C frontend install
# 终端 1 — API(端口 8080)
make migrate
make dev-api
# 终端 2 — Web 开发服务(端口 5173)
make dev-web
make seed-demo
# Email: owner@example.com Password: 123456
make test # pytest
make lint # ruff
make typecheck # mypy
pnpm -C frontend/apps/web test:unit
pnpm -C frontend/apps/web exec tsc --noEmit --skipLibCheck
make dev-up
frontend/apps/web — shell、路由、页面编排frontend/packages/api-client — HTTP + 类型化响应frontend/packages/web-features — 业务面板、权限、格式化frontend/packages/ui — shadcn 风格基座(Radix)docker build -t sunxiao0721/beecount-cloud:dev .
docker run -p 8080:8080 -v beecount_data:/data \
-e JWT_SECRET=dev-secret-at-least-32-bytes-long \
sunxiao0721/beecount-cloud:dev
http://your-domain.com/docs本项目采用 商业源代码许可证(Business Source License,BSL)。
| 用途 | 许可 |
|---|---|
| ✅ 个人自部署 | 完全免费 |
| ✅ 学习研究 | 完全免费 |
| ✅ 开源贡献 | 欢迎参与 |
| ❌ 商业使用 | 需要付费授权 |
什么算商业使用:
如需商业授权,请通过 GitHub Issues 联系。详见 LICENSE。
TypeScript
51.0%
Python
48.0%