计算机没有什么用处,它们唯一能做的就是告诉你答案。
Pablo Picasso
家里装修完半年了,终于搬回来了,还是自己家的房子好,孩子们都有自己独立的房间,终于不用你影响我,我影响你了😎
上一篇咱们聊了 Docker 中青龙面板的一项签到脚本,那时爱奇艺的自动签到还有效,现在好像失效了😭,这段时间笔者都手动签到来着😒
今天我们来聊聊记账。咦,这不是聊 Docker 呢,怎么聊记账了……那啥,Docker 就不能管记账了?聊到记账,如果各位不介意,可以先说说自己用过的方式:
- Excel 表,这个应该是比较普遍的方式,当时没有在线记账的软件,电脑上有建个 Excel 表,这样很方便,但功能非常单一,也没有系统地做统计功能。
- 也是 Excel,下载了网上别人做好的记账模板,然后根据自己的需要改,这用了一段时间。
- 还是 Excel,自己设计了记账模板,用了两年,后来爱人嫌麻烦不愿意搞又放弃了。中途试了某款 APP(名字忘了😓),反正试了一下就放弃了。
- 今天的主角来了——Firefly III。
用 Excel 表的优势是方便,缺点是不方便。又有人要问了,怎么优势是方便,缺点是不方便?
两个方便指的不是同一个方面,优势的方便,是指在电脑上填、改数据非常方便,指哪儿打哪儿,这点非常方便,表格设计也很方便,随时可以优化,再加上 Windows 10、Office 365 的 OneDrive 同步加持,在家和单位可以随时记录;缺点的不方便是指只有在电脑上操作会比较方便,手机想记录一下就没有电脑那么方便(当然不是说手机不能操作,手机也有 Office,还能远程桌面到电脑),毕竟现在很多人使用手机的时间和场景会电脑多很多,甚至很多人家里人手一个手机,但没有电脑。
下面来聊聊笔者是怎么发现且为什么要用 Firefly III 的。其实发现 Firefly III 时,笔者已经放弃记账一年+了,在某个 QQ 群,有朋友需要在线记账软件,需要数据在自己服务器上,即私有化部署的记账软件。于是笔者本着帮助别人就是帮助自己的观念,去问了一下度娘,还真的有这样的项目。先安利给问的人,然后自己也记下了软件的名字,于是才会有这篇文章。
记账其实对一个人或一个家庭的财务状况的记录,同时也能以此为基础,为未来一段时间的理财或消费做一个更合理的规划。
现在很多人成为月光族甚至负翁,很大一部分原因是对自己的财务状况完全不清楚,更不懂得如何量入为出,理性消费,再加上现在的消费主义盛行,各种广告、软文加短视频洗脑,使人们习惯了买买买成为月光族,甚至信用卡、花呗等透支严重成为负翁。
而想要跳出消费陷阱,就要学会理财,而理财的第一步,就是清楚自己财务状况,而要清楚自己的财务状况,就要记账。
工欲善其事,必先利其器。记账,就要用合适的工具,刚才笔者已经介绍了自己的记账工具,从 Excel 表到 Firefly III,虽然经历得不多,但贵在精。
为什么说是精,刚才也提到了,QQ 群里有朋友需要在线记账的软件——要求方便,这点有很多现成的记账 APP 可以做到;需要数据在自己的服务器——要求数据+隐私安全,这点很多现成的记账 APP 完全做不到,国产 APP 的隐私问题已经不想吐槽了,数据安全也好不到哪里去。一切还是掌握在自己手上才是真理!
啰里巴嗦一堆,已经聊了那么多了,还是进入正题吧!
Firefly III
第一步,建立数据库
既然提到数据可以私有化由自己掌控,那么必须得有数据库,根据官方文档,Firefly III 支持 MySQL 数据库和 PostgreSQL 数据库。笔者由于现成有 MySQL 数据库,就直接拿来用了。关于 Windows 下如何安装 MySQL 数据库,可以看本次推送的另一篇文章《安装 MySQL for Windows》。
安装好数据库后,首先运行 MySQL Workbench,登录后按图操作即可:
第二步,拉取镜像&部署容器
进入部署容器的方法在《软路由之Docker(一)——京东挂机》一文中已经介绍过,这里就不重复了,直接上命令:
docker run -d \
--name fireflyiii \
--hostname fireflyiii \
--restart always \
-v firefly_iii_upload:/var/www/html/storage/upload \
-v /root/.acme.sh/[你的域名]_ecc:/var/certs \
-p 8080:8080 \ # 冒号前的端口可以改为你想要使用的外部端口
-p 8443:8443 \ # 这里可以改为你想要使用的端口
-e APP_FORCE_SSL=true \
-e APP_HTTPS_PORT=8443 \ # 这儿与 -p 8443:8443 冒号后的端口一致
-e APP_KEY=<一串CHANGEME_32_CHARS字符串> \
-e DB_HOST=<数据库服务器的地址> \
-e DB_PORT=3306 \ # 数据库服务器的端口
-e DB_CONNECTION=mysql \ # 数据库服务器类型
-e DB_DATABASE=firefly-iii \ # 数据库名称
-e DB_USERNAME=<数据库用户名> \
-e DB_PASSWORD=<数据库密码> \
-e APP_URL=https://[你的域名] \
-e TRUSTED_PROXIES=** \
fireflyiii/core:latest
关于 APP_KEY,官方给出了计算命令:
head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo
计算后抄下来或复制在专门的文本文件里保存一份,这样以后万一要重装容器,可以再用这个字符串来使用之前的数据。
待 Docker 拉取好镜像,部署好容器,就可以运行容器啦!
第三步,初始化 Firefly III
在网页浏览器的地址栏输入你软路由的 IP 地址:端口
http://IP地址:8080
第一次登录会让你注册,用自己的邮箱注册即可,密码不能少于 16 位,所以务必记在密码本里,还是那句话:“好记性不如烂笔头!”
然后进入初始的欢迎页面:
之后就出现中文界面了,至于 Firefly III 的操作细节,这里就不再细聊了。
Firefly III 可以在电脑、手机、iPad等设备通过网页登录,笔者之前的文章——《安装和使用软路由【进阶篇】——软路由可以干什么?(二)》聊了关于动态域名的内容。通过这个动态域名,从全球各地都可以访问到你私有的 Firefly III 财务记账系统。
当然,用动态域名访问,虽然个人的动态域名没什么人会知识,更不太可能来劫持,但记账的内容毕竟还是涉及到一些个人隐私,所以笔者给 Firefly III 启用了 SSL 证书,实现了 https 访问,这样安全性就提升了。另外 Firefly III 还支持自动化的记账,可以对每个周期定时定量的交易实行自动生成,这样,笔者就不用每个周期手工去添加保险等固定支出的项目了。
本文就聊到这儿,如果本文对你有帮助,欢迎点赞、转发🌹🌹🌹。如果使用中有疑问,欢迎回复来交流!