dongfg' blog

无数渺小的思考填满了人的一生

0%

我的记账经验分享

记账方式 - Beancount + Fava

关于 beancount 本身的使用网上有很多文章,建议通读下官方的 Beancount Language Syntax ,其本身语法不算复杂,官方一张 Syntax Cheat Sheet 图基本可以罗列常用语法

Fava 是 beancount 的 ui 界面工具,提供了很多报表,甚至编辑功能

记账流程及自动化

我的 beancount 文件放在 github 私用仓库里进行版本化管理及存储,fava 通过 docker 运行,通过带有认证功能的 proxy 访问。自动部署流程如下:

  • 本地编写 beancount 文件,提交后推送到 github
  • github 调用 webhook,服务器拉取最新内容。
    fava reload设置 2019-01-01 custom "fava-option" "auto-reload" "true"
    webhook 使用的是 adnanh/webhook
  • 如果 fava 容器需要更新(更新 beancount 及 fava 版本),push 一个 release tag
  • 阿里云容器镜像服务构建出最新镜像,调用 webhook
  • webhook 自动部署新镜像

编辑器使用 vscode,vscode 上已经有多个 beancount 的扩展,如果你仅使用 beancount 的格式化功能而不想安装python,可以使用我开发的 vscode-beancount-formatter扩展,扩展使用 ts 仿照官方 formatter 编写,不依赖本地 beancount。

记账

记账时间

尽量减少信用卡数量,减少支出出口,不通过支付宝或微信的余额支付,使用储蓄卡支付

  • 每周一记录储蓄卡收支
  • 账单日记录信用卡支出,调整信用卡还款日期到发薪日之后几天
  • 发薪日记录贷款、还信用卡

信用卡账单

记过帐的大都知道很多消费隔一周就想不起是什么了,所以信用卡消费我是这么记录的

  • 维护一个自动映射支出的表,比如上海拉扎斯就是饿了么,对应到饮食外卖这些
  • 邮件账单(我用招行)解析,将支出时间、订单描述、金额进行格式化存储,如果能映射到第一步的支出就一起存储
  • 每天早上看一眼没有自动映射的订单,手工维护下
  • 信用卡账单出来之后,账单大部分可以跟邮件解析的账单对应,通过解析信用卡账单文件,生成处 beancount 格式的文本