介绍
beancount 是一个优秀的开源复式记账工具,在使用方面,fava 提供了很好的可视化体验,但是难以拓展到移动端;本项目旨在将常见的记账行为提取出接口以供网络调用。
本仓库使用 node
进行文本的读写和网络服务支持。
关于 beancount 的一些基本介绍,可以参考 尝试使用 beancount 进行复式记账
配置
config/config.json
title: 账本名称
dataPath: 账本存储位置,初始化账本时使用
operatingCurrency: 账本币种
startDate: 账本创建时间,初始化账本时使用
使用
- 安装
python3
环境,下载beancount
,pip3 install beancount
- 克隆本项目到本地
- 切换到项目根目录,执行
node server.js
启动服务(server.js
中执行init.js
,该脚本会在账本不存在时,初始化基本的 beancount 账单结构和账户,你可以在config/init_data.json
中查看和修改初始内容) - 浏览器访问 http://localhost:3001 访问
本项目中将 账户 默认设置为三级结构:Assets|Incom|Libilities|Expenses|Equity:Type:Name(可使用中文)
Type 在 config/account_cata_list.json 中定义,如需添加,可以修改该文件
可用接口(V1.0 计划开发接口)
GET:/account/valid?key=早餐
查询可用账户GET:/account/all
查询所有账户(包括账户金额)POST:/account?account&date
新增账户POST:/account/close?account&date
关闭账户GET:/month/stats?year&month
月度统计信息GET:/entry?type&year&month
查询账单POST:/entry
记录账单GET:/stats
账单统计(待实现)POST:/account/recover?account
账户恢复(待实现)PUT:/entry
账目修改(待实现)DELETE:/entry?id=
账目删除(待实现)
Docker 部署
git clone
项目到本地cd beancount-node-server
切换到项目根目录docker build -t beancount-node-server .
打包镜像docker-compose up -d
容器运行
docker-compose.yml 中可修改本地数据挂载目录(默认:/data/beancount)和端口号(默认:10000)