beancount 是一个优秀的开源复式记账工具,因为其基于文本记录的特性,难以拓展到移动端;本项目旨在将常见的记账行为封装为 RESTful API。
本仓库使用 Golang
进行文本的读写和接口服务支持,利用 bean-query
获取内容并解析,以 Json 格式返回。并基于已实现的接口内置实现了前端页面(适配移动端)。
- 私有部署
- 多账本
- 账户,资产管理
- 统计图表
- 多币种
- 标签
- 投资管理(FIFO)
- 第三方账单导入(支付宝,微信,工商银行,农业银行)
- 分期记账
- 事件
本地打包
- 克隆本项目到本地
- 根目录执行
go build
- 执行
./beancount-gs
(-p
指定端口号,-secret
指定配置密钥)
release
- 下载并解压项目的
release
包 - 执行根目录下的
./beancount-gs.exe
docker
docker run --name beancount-gs -dp 10000:80 \
-w /app \
-v "/data/beancount:/data/beancount" \
-v "/data/beancount/icons:/app/public/icons" \
-v "/data/beancount/config:/app/config" \
-v "/data/beancount/bak:/app/bak" \
xdbin/beancount-gs:latest
docker-compose
在指定目录创建文件 docker-compose.yml
,然后复制下面内容到这个文件,执行 docker-compose up -d
version: "3.9"
services:
app:
container_name: beancount-gs
image: xdbin/beancount-gs:${tag:-latest}
ports:
- "10000:80"
# volumes 挂载目录会导 /app/public/icons 中的图标被覆盖,这里将默认图标在挂载后重新拷贝图标
command: >
sh -c "cp -rn /app/public/default_icons/* /app/public/icons && ./beancount-gs -p 80"
volumes:
- "${dataPath:-/data/beancount}:/data/beancount"
- "${dataPath:-/data/beancount}/icons:/app/public/icons"
- "${dataPath:-/data/beancount}/config:/app/config"
- "${dataPath:-/data/beancount}/bak:/app/bak"
- "${dataPath:-/data/beancount}/logs:/app/logs"
默认的文件存储路径为 /data/beancount
,如果你想更换其他路径,可以在当前目录下新建 var.env
,然后将下面内容复制到这个文件
tag=latest
dataPath=自定义的目录
执行 docker-compose --env-file ./var.env up -d
即可
MIT @BaoXuebin
![JetBrains](./jb_beam.png)