这篇文章主要记录如何在宝塔面板上部署 Firefly III,以及我在这个过程中踩过的坑。
例子用的是域名money.template.com,大家按需替换就好。
最近我在宝塔面板里折腾了一下 Firefly III —— 一个自托管的开源记账网站,从“什么是账本”到“服务器崩了谁来背锅”,经历堪比恋爱分手复盘。今天就把这段辛酸泪(+踩坑经验)写出来,供同样花钱比谈恋爱还快的你参考。
什么是 Firefly III?先搞清楚别乱装!
简单来说,Firefly III 是一个开源、免费、自托管的个人财务管理平台。
它的定位就是记录你的每一笔收入/支出、管理预算、分析财务状况,不再让你每个月像“存款被黑洞吞掉”一样迷惑。
官方 tagline 是 “a personal finance manager”,也就是我们常说的个人记账管家。
这个东西不是 App,而是一个Web 应用。你可以把它装在服务器、VPS、NAS、宝塔这种带 Docker 的面板上,自定义访问域名,随时打开浏览器查账。
准备工作:上宝塔之前要先做什么
在宝塔上部署 Firefly III,其实大致步骤跟一般 Web 项目差不多:
确保宝塔已装好 Docker + Docker Compose。
有一个可用的域名指向服务器 IP。
有 MySQL/MariaDB 数据库(部署时用 Docker 直接创建通常更省心)。
你得有一点点网络和命令行基础(不需要很深,但复制粘贴命令要能跟上)。
接下来我们会一步一步整起来。
🔧 真•开始部署:宝塔里的 Docker Compose
在宝塔里打开容器编排,像玩乐高一样拼装下面这个配置(这是简化版,可以根据自己需要扩展):
services:
firefly:
image: fireflyiii/core:version-6.4.15
container_name: firefly
restart: always
ports:
- "8088:8080"
env_file: .env
depends_on:
- mysql
mysql:
image: mysql:8.0
container_name: firefly-mysql
restart: always
environment:
MYSQL_DATABASE: firefly
MYSQL_USER: firefly
MYSQL_PASSWORD: firefly123
MYSQL_ROOT_PASSWORD: root123
volumes:
- /app/db/mysql:/var/lib/mysql然后同级目录放一个 .env 文件,主要填的是环境变量,让 Firefly III 知道怎么连接数据库、自己的域名叫什么:
APP_KEY=base64:你自己生成的17+字符随机字符串
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=firefly
DB_USERNAME=firefly
DB_PASSWORD=firefly123
APP_URL=https://money.template.com
ASSET_URL=https://money.template.com
TRUSTED_PROXIES=*
TZ=Asia/Shanghai
小提醒:
APP_KEY必须要自己生成,否则程序启动会报错;TRUSTED_PROXIES=*让宝塔反向代理走起来不闹情绪。
别高兴得太早:配置宝塔站点 + 反向代理
这一步是很多人容易出错的地方:
在宝塔“网站”里新建一个站点,域名填你要访问的,比如
money.template.com。站点里默认会有一堆 Nginx/Apache 访问规则,要删掉不必要的前端访问限制,否则 Firefly III 的 CSS/JS 访问会 404(界面就会傻眼)。
添加一个反向代理规则,把所有请求转发给 Docker 运行的 Firefly III 服务(默认
http://127.0.0.1:8088)。
这个步骤像是在给程序装上“外套”:没有外套,别人访问的时候程序会冷得发抖。
宝塔 + SSL = 爱得更长久(别忘)
在完成上面步骤之后,你还需要给你的域名申请一个 SSL 证书(宝塔一键就能搞定 Let’s Encrypt),让浏览器访问的时候不是“危险连接”。
没有 HTTPS 的站点现在访问都会被浏览器鄙视,这个就跟吃饭不刷牙一个道理。
我踩的坑(给你节省 4 小时)
说出来你可能不信,我刚开始部署的时候问题主要出在:
忘了删站点默认的访问规则 → 页面样式全没了;
.env配置没有写好APP_URL/ASSET_URL→ 前端资源加载莫名其妙 404;反向代理设置不全 → 访问正常但跳转登录不对劲。
总结一下就是:宝塔默认的站点配置 + Docker 环境变量不对 = 前端黑屏 + 后端正常运行。
你以为一切都成功了,其实只是小怪兽在后台偷偷崩掉了。
部署完了,我的钱包真的管得住吗?
好吧,这个问题的答案是:如果你认真输入每一笔账,是可以的;如果你只是装着好看,那跟没装没区别。
Firefly III 本身支持:
多账户管理;
支出/收入详细分类;
预算管理;
报表图表查看;
支持导入历史数据(CSV、其他平台导出格式);
而且因为是自托管,你的数据 不上传给陌生云服务,这是很多人选择它的重要原因。
话说回来,刚装好的时候我打开它,都有点“看到账单就想哭”的感觉。比起前任追我的时候甜蜜,现在看账单比读前任聊天记录还痛。
结语
如果你喜欢折腾、喜欢自托管、并且对自己的财务状况有点强迫症的话,Firefly III 是个值得推荐的工具。
用宝塔部署其实没有想象中那么难,只要按步骤来,不慌不忙,就能把你的钱包管成一个有脾气的家伙,比前任还听话。
欢迎在评论区分享你部署过程中的趣事与坑,我肯定不是一个人“掉坑里打滚”过。
评论区