侧边栏壁纸
  • 累计撰写 18 篇文章
  • 累计创建 0 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

宝塔部署 Firefly III:当我的钱包比前任还难管

大锤灬
2026-01-17 / 0 评论 / 0 点赞 / 8 阅读 / 0 字

这篇文章主要记录如何在宝塔面板上部署 Firefly III,以及我在这个过程中踩过的坑。
例子用的是域名 money.template.com,大家按需替换就好。

最近我在宝塔面板里折腾了一下 Firefly III —— 一个自托管的开源记账网站,从“什么是账本”到“服务器崩了谁来背锅”,经历堪比恋爱分手复盘。今天就把这段辛酸泪(+踩坑经验)写出来,供同样花钱比谈恋爱还快的你参考。

什么是 Firefly III?先搞清楚别乱装!

简单来说,Firefly III 是一个开源、免费、自托管的个人财务管理平台
它的定位就是记录你的每一笔收入/支出、管理预算、分析财务状况,不再让你每个月像“存款被黑洞吞掉”一样迷惑。
官方 tagline 是 “a personal finance manager”,也就是我们常说的个人记账管家。

这个东西不是 App,而是一个Web 应用。你可以把它装在服务器、VPS、NAS、宝塔这种带 Docker 的面板上,自定义访问域名,随时打开浏览器查账。

准备工作:上宝塔之前要先做什么

在宝塔上部署 Firefly III,其实大致步骤跟一般 Web 项目差不多:

  1. 确保宝塔已装好 Docker + Docker Compose。

  2. 有一个可用的域名指向服务器 IP。

  3. 有 MySQL/MariaDB 数据库(部署时用 Docker 直接创建通常更省心)。

  4. 你得有一点点网络和命令行基础(不需要很深,但复制粘贴命令要能跟上)。

接下来我们会一步一步整起来。

🔧 真•开始部署:宝塔里的 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=* 让宝塔反向代理走起来不闹情绪。

别高兴得太早:配置宝塔站点 + 反向代理

这一步是很多人容易出错的地方:

  1. 在宝塔“网站”里新建一个站点,域名填你要访问的,比如 money.template.com

  2. 站点里默认会有一堆 Nginx/Apache 访问规则,要删掉不必要的前端访问限制,否则 Firefly III 的 CSS/JS 访问会 404(界面就会傻眼)。

  3. 添加一个反向代理规则,把所有请求转发给 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 是个值得推荐的工具
用宝塔部署其实没有想象中那么难,只要按步骤来,不慌不忙,就能把你的钱包管成一个有脾气的家伙,比前任还听话。

欢迎在评论区分享你部署过程中的趣事与坑,我肯定不是一个人“掉坑里打滚”过。

0

评论区