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:
如果数据库不使用数据卷容器,可以省略 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=************* #修改
启动容器
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,默认注册第一个用户后自动禁止新用户注册。
要提高账户访问安全性,可以打开设置中的两步验证。