FireFly III:一款个人财务管理平台
简介
Firefly III 是一款自托管和开源的个人财务的管理应用。免费,没有广告,没有跟踪。
它可以帮助你跟踪支出、收入、预算和两者之间的一切。它支持信用卡、共享家庭账户和储蓄账户。它还有许多整洁的财务报告可用。通过记录你的支出和收入,你可以做出相应的预算并节省资金。
安装前准备
PHP模块
PHP BCMath Arbitrary Precision Mathematics
PHP Internationalization extension
PHP Curl
PHP Zip
PHP Sodium
PHP GD
PHP XML
PHP MBString
PHP whatever database you’re gonna use.
可以通过 php -m
查看是否安装。
Composer
1 | php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" |
安装
登录 Firefly III release tracker 查看最新版本
1 | cd /var/www |
赋予权限:
1 | sudo chown -R www-data:www-data firefly-iii |
配置
打开程序目录的 .env
文件,编辑其中的内容:
1.Owner
1 | SITE_OWNER=mail@example.com |
2.APP_KEY
1 | APP_KEY=base64:xxxxxxxxxxxxxxxxxxx/xxxxxxxxxxx= |
可以运行
php artisan key:generate
来自动生成。装完了我才知道,这个在上面安装的时候就已经自动生成,这边不需要再次生成。
3.DEFAULT_LANGUAGE
1 | DEFAULT_LANGUAGE=zh_CN |
改为中文。
查看支持的语言
4.时区
改为上海。
1 | TZ=Asia/Shanghai |
5.数据库
1 | DB_CONNECTION=mysql |
根据自己创建的数据库更改,支持以下3种数据库:
Use “pgsql” for PostgreSQL
Use “mysql” for MySQL and MariaDB.
Use “sqlite” for SQLite.
6.APP_URL
1 | APP_URL=http://localhost |
输入你的网址。
7.其他
其他一些选配的,在程序内都有说明,根据其中自行配置即可。
安装
通过以下命令载入配置并安装:
1 | php artisan migrate:refresh --seed |
配置Nginx
这边推荐一个最简单的配置,官方的配置信息没有看到,有看到的可以留言告诉我。
1 | server { |
访问
打开地址,正常访问。
不过这个密码把我难住了,要16个字符,真的多。。。
登录后台可以直接填入目前的账户以及余额进行记录。
然后就是仪表盘界面了,界面简洁美观,右上角 +
直接可以添加相应收支。
问题
在生产环境下,由于我的系统环境为 en_US
,改为中文界面的时候会有如下提示:
Firefly III 无法格式化货币金额,因为您的服务器缺少必要的软件包。查看 说明 以解决该问题。
解决方法:
1 | sudo apt-get install -y language-pack-nl-base |
重启后看看是否解决问题。如果还是不行的话,在服务器上单独安装中文语言包试试看:
1 | apt install language-pack-zh-hans-base |
设置Cron作业
方法一:
1 | sudo crontab -u www-data -e |
内容为:
1 | 0 3 * * * /usr/bin/php /var/www/firefly-iii/artisan firefly-iii:cron |
方法二:
创建 firefly-iii-cron.service
:
1 | vim /etc/systemd/system/firefly-iii-cron.service |
内容为:
1 | [Unit] |
创建 firefly-iii-cron.timer
:
1 | vim /etc/systemd/system/firefly-iii-cron.timer |
内容为:
1 | [Unit] |
然后输入命令:
1 | systemctl enable firefly-iii-cron.timer |
第三方应用
ios端的有 Abacus for Firefly III 应用。
使用步骤:
进入
Firefly 后台
-选项
-个人档案
-OAuth授权
-创建新客户端
。输入内容,
名称
任意 ,跳转网址
为abacusiosapp://redirect
点击
创建
,然后复制密钥
回到手机端,输入对应的信息,点击登录
在弹出界面登录Firefly
成功授权
成功连接
更多可以访问 Third-party tools 查看。
升级
程序本身不支持后台自动升级,需要自行手动安装。
在你的安装目录运行以下命令:
1 | composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii-updated <next_version> |
<next_version>
为需要升级到的版本(最新版本)
这时候目录中就有 firefly-iii-updated
文件夹。
然后分别执行以下命令:
1 | cp firefly-iii/.env firefly-iii-updated/.env #复制现有的 .env 环境配置到更新的版本中 |
如果使用的是SQLite数据库,需要把数据库文件一起移动到对应的文件夹内
执行下面的命令进行完成升级:
1 | cd firefly-iii-updated |
完成升级,现在只需将 firefly-iii-updated
更名为 firefly-iii
即可。
1 | mv firefly-iii firefly-iii-old |
如果提示 500 Error,那么还是要设置一下权限:
1
2 >sudo chown -R www-data:www-data firefly-iii
>sudo chmod -R 775 firefly-iii/storage
最后
不得不说,Firefly的功能是我这几天看下来最全,界面也是最好看的一款开源程序了。
虽然在网站配置上面稍微走了点弯路,多花了点时间,但是在使用下来,尤其是web端的使用感受是非常好的,其实都可以不需要手机app连接,直接在web界面就已经足够使用了。
之前一直在使用的 随手记
,感觉它可以功成身退了。。。
其实,最简单的是下载一个记账软件,但是数据相当于共享给开发者,再高端些就是自己部署这类财务管理应用,至少数据不用担心,这两个都是很简单的事情,难就难在持之以恒的坚持记账。