Firefly III 是一款基于 web 的个人财务管理软件,采用 PHP 开发。它是开源的,可以自行部署到自己的服务器上。

官方的演示站点地址:https://demo.firefly-iii.org/login

本文简单记录 Firefly III 的 docker 容器部署过程,使用 docker compose 进行部署。官方的镜像可以从 docker hub 上获取,默认镜像 fireflyiii/core:latest

安装 docker 以及 compose

使用包管理工具安装 docker 和 compose。

apt install docker.io docker-compose

或参照 docker 文档安装 compose:https://docs.docker.com/compose/install/#install-compose

部署 Firefly III

从官方 Github 仓库下载 compose 文件,可以放置在任意位置,最好是单独建立一个文件夹。

按需对 compose 文件进行修改,如数据库配置信息等,注意和 .env 文件中的设置一致。

version: '3.3'

services:
  app:
    image: fireflyiii/core:latest
    restart: always
    volumes:
      - firefly_iii_upload:/var/www/html/storage/upload
    env_file: .env
    ports:
      - 80:8080
    depends_on:
      - db
  db:
    image: mariadb    
    hostname: fireflyiiidb
    restart: always
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=yes
      - MYSQL_USER=firefly
      - MYSQL_PASSWORD=secret_firefly_password
      - MYSQL_DATABASE=firefly
    volumes:
      - firefly_iii_db:/var/lib/mysql
volumes:
   firefly_iii_upload:
   firefly_iii_db:
Firefly III 的 compose 文件

如果数据库不使用数据卷容器,可以省略 volumes 配置部分,然后使用文件系统的绝对路径进行挂载,例:

volumes:
  // 使用绝对路径挂载数据卷
  - /opt/data:/var/lib/mysql

然后从官方 Github 仓库下载环境变量配置文件,重命名为 .env,放在 compose 文件相同的文件夹中。按需对文件进行修改。

APP_ENV=production

APP_KEY=SomeRandomStringOf32CharsExactly

TZ=Asia/Shanghai

# TRUSTED_PROXIES is a useful variable when using Docker and/or a reverse proxy.
# Set it to ** and reverse proxies work just fine.
TRUSTED_PROXIES=**

DB_PASSWORD=************* #修改
Firefly III 的环境变量文件

启动容器

docker-compose -f docker-compose.yml up -d

通过上述命令启动容器。如果需要追踪安装过程,使用以下命令:

docker-compose -f docker-compose.yml logs -f

安装结束后,默认运行在 localhost 上。如果在日志中看到报错:Could not reliably determine the server's fully qualified domain name,可以忽略该错误。

如果需要设置反向代理的话,在上述环境变量中设置 TRUSTED_PROXIES

安装后

安装后通过地址访问 Firefly III,默认注册第一个用户后自动禁止新用户注册。

要提高账户访问安全性,可以打开设置中的两步验证。