docker部署Firefly III并配置Apache反代

st 发布于 2021-08-19 1,626 次阅读


什么是Firefly III

Firefly III是一个个人收支管理工具,这里是Github项目主页

我现在渐渐开始觉得每个月在服务器上的支出难以统计,如果能有一个工具能帮我完成统计工作顺便记账,那就再好不过了,随手搜了一下,Firefly III不是最有名的,也不是star最多的,但它的logo是个挺可爱的着火小猪,让我无法拒绝。

利用Docker-compose部署Firefly

Docker和Docker-compose部署的方法可以参照官方docs,直接用docs中提供的docker-compose.yml,修改一下端口映射(因为还要配置反代),然后修改一下数据库密码。

然后创建.env文件,里面的项目有很多需要按需求修改。比如为了反代正常,需要TRUSTED_PROXIES=**。数据库的密码也要按照docker-compose.yml修改,邮件设置中因为我是用mailgun,需要改成MAIL_MAILER=mailgun,并且需要填入MAILGUN_DOMAIN和MAILGUN_SECRET。
总的来说.env文件中的说明已经非常清楚,配置起来应该不会有什么问题。

修改完这两个文件后用docker-compose up -d启动container即可。

配置反代

反代非常简单,只要RequestHeader set X-Forwarded-Proto "https"ProxyPass / http://localhost:8080/以及ProxyPassReverse / http://localhost:8080/就可以了。

配置cron任务

安装完成后访问地址应该就可以正常运行了,但是定期开销依赖的cron任务还需要手动配置。
docker的cron任务不能直接运行,需要通过docker运行。crontab -e加入0 3 * * * docker exec -u www-data firefly_app_1 /usr/local/bin/php /var/www/html/artisan firefly:cron即可。

cache权限报错解决方案

第一次运行cron时忘了设置www-data为用户,运行完之后就无法进入网站了。报错为:
file_put_contents(/var/www/html/storage/framework/cache/data/somelongstringshere): Failed to open stream: Permission denied
运行docker exec -u www-data firefly_app_1 /usr/local/bin/php /var/www/html/artisan cache:clear清除缓存就解决了问题。