个人财务管理系统beancount-gs
今天是老苏居家隔离的第 53 天。
最近抗原还是每天做,差别是每天做 1 次还是 2 次,周六只做一次抗原,但不明白为什么总是要求在 8 点以前
平时也就罢了,好不容易周末想睡个懒觉,结果还是要早起,大家的反应是👇这样的
周日上午一次抗原 + 一次核酸
周日晚上先接到通知,周一只要做抗原
谁知道后面晚上 11 点多又来了新的通知,周一上午继续一次抗原 + 一次核酸
因为主任特别强调 “本次核酸相当重要”
,禁不住让大家浮想联翩,难道我们终于迎来可以出小区了?
老苏之前写过『 Firefly III 搭建个人财务记账平台 』 ,但坦率的说,Firefly III
在很多习惯上并不符合日常的记账习惯,所以老苏找到了 beancount-gs
。
什么是复式记账 ?
在会计学中,复式簿记(又称为复式记账法)是商业及其他组织上记录金融交易的标准系统。 该系统之所以称为复式簿记,是因为每笔交易都至少记录在两个不同的账户当中。 每笔交易的结果至少被记录在一个借方和一个贷方的账户,且该笔交易的借贷双方总额相等,即“有借必有贷,借贷必相等”。
什么是 beancount?
beancount
是一个优秀的开源复式记账工具,因为其基于文本记录的特性,难以拓展到移动端。
什么是 beancount-gs ?
beancount-gs
使用Golang
进行文本的读写和接口服务支持,利用bean-query
获取内容并解析,以Json
格式返回。并基于已实现的接口内置实现了前端页面(适配移动端)。
官方提供了 Demo
网站:https://beancount.xdbin.com
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 beancount-gs
,选择第一个 xdbin/beancount-gs
,双击直接下载
卷
在 docker
文件夹中,创建一个新文件夹 beancount
,并在其中建四个子文件夹,分别是 bak
、config
、data
和 icons
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/beancount/bak |
/app/bak |
存放备份 |
docker/beancount/config |
/app/config |
存放设置 |
docker/beancount/data |
/data/beancount |
存放数据 |
docker/beancount/icons |
/app/public/icons |
存放图标 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
本地端口 | 容器端口 |
---|---|
10000 |
80 |
环境
命令行中输入下面这行内容
1 | sh -c "cp -rn /app/public/default_icons/* /app/public/icons && ./beancount-gs -p 80" |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷,老苏更喜欢命令行,搭建环境比较快捷
1 | # 新建文件夹 beancount 和 子目录 |
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: "3.9" |
然后执行下面的命令,在 portainer
中执行也是可以的
portainer
中不要用相对路径
1 | # 进入目录 |
运行
在浏览器中输入 http://群晖IP:10000
就能看到主界面
第一次需要初始化
账本存储位置
:账本数据和配置的磁盘存储路径;例如:laosu
,用年份会不会更好呢?账本开始日期
:账户的默认开始时间。(默认设置为 1970-01-01 即可);币种
:账本的默认币种,账户初始化时commodity
的默认值。注:beancount
本身没有币种的概念,其每个账户在创建的时候都可以指定一个commodity
,亦可以不指定。commodity
不一定是常规意义上的货币,可以是任意的自定义内容,例如房产,车子等;(默认设置为CNY
)平衡账户名称
:用户初始化账户金额,或者维持其他账户平衡的账户;是否备份数据
:开启后,当源文件被修改时,之前的版本会备份到/bak
文件夹;密钥
:只有服务的密钥匹配才允许完成配置项的设置。密钥可以在服务的启动日志中查看,每次服务启动,密钥都会被刷新。
接下来设置 账本名称
和 账本密码
需要注意的是:密码如果忘记,不支持找回。
进入账本后,默认是没有任何数据。
点 记账
可以开始记录第一笔交易了
“有借必有贷,借贷必相等”,所以必须要记录两个账户
账目记录完成后,支出明细一栏就出现了上一步记录的消费信息
在手机上的效果还是不错的,但没有 app
还是比较可惜
beancount-gs
在使用上更偏向于日常流水账的记录方式,在保留灵活性的同时,使得新用户更容易上手使用。如果遇到问题,建议看看官方提供的中文的使用说明书:https://www.yuque.com/chuyi-ble7p/beancount-gs 。
参考文档
BaoXuebin/beancount-gs: 基于 beancount 提供个人财务管理的 RESTful API 服务(包含前端页面)
地址:https://github.com/BaoXuebin/beancount-gsbeancount-gs 使用文档 · 语雀
地址:https://www.yuque.com/chuyi-ble7p/beancount-gsbeancount/beancount: Beancount: Double-Entry Accounting from Text Files.
地址:https://github.com/beancount/beancount