Docker部署开源个人财务管理系统ezBookkeeping
核心价值:零基础搭建私有财务系统,实现多账户/多币种管理,告别Excel手工记账!
·
开源个人财务管理系统
核心价值:零基础搭建私有财务系统,实现多账户/多币种管理,告别Excel手工记账!
官方地址:https://github.com/mayswind/ezbookkeeping
一、ezBookkeeping核心定位
解决财务痛点
- 个人/家庭多账户(银行卡/支付宝/微信)分散管理困难
- 跨国消费多币种自动换算复杂
- 手动记账效率低,统计报表生成繁琐
- 敏感财务数据不愿存储公有云
产品优势
- 全功能开源:完整复刻"网易有钱"核心功能
- Docker极简部署:单容器5分钟快速启动
- 银行级安全:本地存储+SSL加密
- 多终端支持:Web/Android/iOS全平台覆盖
二、核心功能全景
| 模块 | 功能亮点 |
|---|---|
| 账户管理 | 支持银行卡/现金/虚拟账户(支付宝/微信)自动同步 |
| 多币种交易 | 自动汇率换算(对接Yahoo Finance API) |
| 智能记账 | 账单拍照OCR识别(对接Google ML Kit) |
| 预算控制 | 自定义分类预算(餐饮/交通/娱乐等),超支实时提醒 |
| 数据可视化 | 动态生成消费趋势图、分类占比饼图、净资产曲线 |
| 数据安全 | AES-256本地加密存储,支持CSV/Excel导出 |
三、Docker部署教程(5分钟极速版)
环境准备
# 最低配置要求
- Linux服务器 (1核1G+)
- Docker & Docker Compose
- 域名(可选,推荐配置SSL)
# 创建持久化目录
mkdir -p /opt/ezbookkeeping/{data,logs}
一键部署
# 创建docker-compose.yml
cat > /opt/ezbookkeeping/docker-compose.yml <<EOF
version: '3.8'
services:
ezbookkeeping:
image: mayswind/ezbookkeeping:latest
container_name: ezbookkeeping
environment:
- TZ=Asia/Shanghai # 时区设置
- DB_PATH=/data/ezbk.db # 数据库路径
- UPLOAD_DIR=/data/uploads # 账单图片存储
volumes:
- ~/ezbookkeeping/data:/data # 数据持久化
- ~/ezbookkeeping/logs:/var/log # 日志持久化
ports:
- "8080:8080" # 服务端口
restart: always
EOF
# 启动服务
docker-compose -f /opt/ezbookkeeping/docker-compose.yml up -d
访问控制台
http://服务器IP:8080 → 首次登录创建管理员账户

导入微信/支付宝等账单


导入报错,没有对应的分类和账户
新开个页面添加分类和账户
或者直接单个编辑

完全导入后结果如下:

四、配置优化实战
1. HTTPS安全加固(Nginx反向代理)
server {
listen 443 ssl;
server_name finance.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/finance.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/finance.yourdomain.com/privkey.pem;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
2. 启用账单OCR识别
# 编辑docker-compose.yml 添加环境变量
environment:
- ENABLE_OCR=true
- GOOGLE_ML_API_KEY=your_api_key # 申请地址:https://cloud.google.com/vision
3. 汇率自动更新
# 每日3点更新汇率
0 3 * * * docker exec ezbookkeeping curl -s https://api.exchangerate-api.com/update
五、典型使用场景
场景1:家庭财务看板

场景2:多币种自动换算
| 交易记录 | 原始币种 | 换算人民币 |
|---|---|---|
| Amazon购物 | USD | ¥ 319.50 |
| 日本民宿支付 | JPY | ¥ 628.40 |
| Steam游戏充值 | EUR | ¥ 156.80 |
场景3:预算预警系统
# 超支自动邮件提醒(需配置SMTP)
docker-compose.yml 添加:
environment:
- MAIL_ENABLED=true
- MAIL_HOST=smtp.qq.com
- MAIL_USER=alert@domain.com
六、数据备份方案
1. 自动数据库备份
# 创建备份脚本 /root/ezbackup.sh
#!/bin/bash
BACKUP_DIR="/backups/ezbookkeeping"
docker exec ezbookkeeping sqlite3 /data/ezbk.db ".backup '$BACKUP_DIR/ezbk-$(date +%Y%m%d).db'"
2. 设置定时任务
# 每天2点备份
0 2 * * * /root/ezbackup.sh
# 保留最近30天备份
0 3 * * * find /backups/ezbookkeeping -mtime +30 -delete
七、故障排查指南
| 故障现象 | 排查命令 | 解决方案 |
|---|---|---|
| OCR功能失效 | docker logs ezbookkeeping | 检查Google ML API密钥有效期 |
| 汇率未更新 | docker exec -it ezbookkeeping sqlite3 /data/ezbk.db “SELECT * FROM exchange_rates” | 手动执行更新脚本 |
| 无法上传账单图片 | ls -l ~/ezbookkeeping/data/uploads | 检查目录权限 (chmod 777) |
| 邮件提醒失败 | telnet smtp.qq.com 587 | 测试SMTP端口连通性 |
八、同类产品对比
| 特性 | ezBookkeeping | 网易有钱 | MoneyWiz |
|---|---|---|---|
| 数据存储位置 | 自建服务器 | 厂商云端 | 本地+云 |
| 多币种支持 | ✅ 自动更新 | ✅ | ✅ |
| 账单OCR识别 | ✅ | ✅ | ❌ |
| 部署成本 | ¥0(开源) | 年费¥198 | 年费$50 |
| 二次开发 | ✅ (Go语言) | ❌ | ❌ |
九、最佳实践建议
推荐组合方案
- 数据采集:支付宝/微信账单CSV导出 + 现金消费手动录入
- 安全加固:Nginx SSL + 双因素认证
- 多端同步:Android/iOS使用网页版(PWA支持桌面快捷方式)
- 报表分析:每月导出PDF报告进行家庭财务复盘
避坑指南
- ⚠️ 时区配置:务必设置
TZ=Asia/Shanghai避免时间错误 - 🔑 初始密码:首次登录后立即修改默认管理员密码
- 💾 备份策略:数据库每日备份+异地存储
- 📱 移动端优化:浏览器"添加到主屏幕"实现类APP体验
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)