尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

部署Docker开源记账神器Firefly III

部署Docker开源记账神器Firefly III
📅 发布时间:2026/6/19 15:32:38
部署Docker开源记账神器Firefly III部署Docker开源记账神器Firefly III

参考文章:Site Unreachable
官网:GitHub - firefly-iii/firefly-iii: Firefly III: a personal finances manager

使用 Docker - Firefly III 文档 --- Using Docker - Firefly III documentation

Firefly III 搭建个人财务记账平台 - 墨天轮

Firefly III 可以使用 Docker 安装。几乎所有平台都有现成的 Docker 容器。如果您之前从未使用过 Docker,请先自行了解一下。

安装 Firefly III 最简单的方法是使用 Docker Compose,它是一个 Docker 工具,允许您定义和运行多容器 Docker 应用程序。使用 Docker Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,只需一条命令,即可根据配置创建并启动所有服务。

为了方便起见,YAML 文件和所有必要的配置都已在线提供。

如果您有任何疑问,请参阅 Docker 常见问题解答或按照支持页面上的说明与我联系。

准备文件夹

创建主机目录:

mkdir -p /opt/docker-stacks/Firefly-III/upload
mkdir -p /opt/docker-stacks/Firefly-III/db

Docker Compose配置

下载 Docker Compose 文件并将其放置在方便的位置。要将数据导入器包含在您的安装中,请阅读数据导入器的安装指南 。

请保存原始文件,不要从浏览器复制粘贴文本。文件中的空格非常重要。因此,请使用“另存为”功能。

下载配置文件

运行此 Docker Compose 文件需要两个配置文件。请下载所有文件并将它们保存在与 Docker Compose 文件相同的文件夹中。

  • 第一个文件包含 Firefly III 变量,可以从 Firefly III 存储库下载。将其另存为名为 .env 的新文件。
  • 第二个文件包含数据库变量,可以从 Docker 存储库下载。将其另存为名为 .db.env 的新文件。

请务必按照此处的说明重命名文件。您可以在 Docker Compose 文件中看到原因。该文件在 env_file: ` 中有引用。如果您没有将其命名为与 Docker Compose 文件中的名称一致,则必须编辑 Docker Compose 文件以匹配文件名。

将配置文件上传到文件夹

将.env和.db.env和docker-compose.yml上传到/opt/docker-stacks/Firefly-III/文件夹

修改配置文件

请先更改密码。如果在运行 Firefly III 之后更改密码,它会提示没有访问权限,因为密码已存储在数据库卷中。

指示:

  1. 将 .env 中的 DB_PASSWORD 改为其他值。选择一个容易记住的密码。DB_PASSWORD=1111111aa
  2. 将 .db.env 中的 MYSQL_PASSWORD 更改为相同的值MYSQL_PASSWORD=1111111aa

x86平台忽略本条[切换到 PostgreSQL]

使用 arm/v7 架构(例如部分 Raspberry Pi)的用户可能需要切换到 PostgreSQL,因为这些平台上没有可靠的 MariaDB 和 MySQL 容器。为此,请修改 .env 文件中的以下几行。

DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432

同时,将 .db.env 文件中的变量名从 MYSQL_* 更改为 POSTGRES_*。可以删除 MYSQL_RANDOM_ROOT_PASSWORD。

修改 docker-compose.yml 文件,使其指向 postgres 而不是 mariadb:lts 。

然后,将卷( firefly_iii_db )下的数据库挂载点更改为 /var/lib/postgresql/data 。

修改yml文件-数据永久化

在 docker-compose.yml 文件中:

  1. 删除 最后的 volumes: 部分(因为我们要用主机路径替代命名卷)。
  2. 修改 app 和 db 服务中的 volumes: 挂载点。
服务 原命名卷挂载 (docker-compose.yml 底部定义) 修改后的主机目录挂载
app - firefly_iii_upload:/var/www/html/storage/upload - /opt/docker-stacks/Firefly-III/upload:/var/www/html/storage/upload
db - firefly_iii_db:/var/lib/mysql - /opt/docker-stacks/Firefly-III/db:/var/lib/mysql

修改后的 docker-compose.yml 结构示例:

# ... (app, db, cron services, 和 networks 部分保持不变)app:# ...volumes:- /opt/docker-stacks/Firefly-III/upload:/var/www/html/storage/upload  # <-- 修改点# ...db:# ...volumes:- /opt/docker-stacks/Firefly-III/db:/var/lib/mysql # <-- 修改点# ...# ❗ 注意:删除原来的 volumes: 段落
# volumes:
#  firefly_iii_upload:
#  firefly_iii_db:

完整yaml

services:  app:    image: fireflyiii/core:latest    hostname: app    container_name: firefly_iii_core    restart: always    volumes:      - /opt/docker-stacks/Firefly-III/upload:/var/www/html/storage/upload    env_file: .env    networks:      - firefly_iii    ports:      - 9006:8080    depends_on:      - db  db:    image: mariadb:lts    hostname: db    container_name: firefly_iii_db    restart: always    env_file: .db.env    networks:      - firefly_iii    volumes:      - /opt/docker-stacks/Firefly-III/db:/var/lib/mysql  cron:    #    # To make this work, set STATIC_CRON_TOKEN in your .env file or as an environment variable    # The STATIC_CRON_TOKEN must be *exactly* 32 characters long    #    image: alpine    restart: always    container_name: firefly_iii_cron    env_file: .env    command: sh -c "      apk add tzdata && \      (ln -s /usr/share/zoneinfo/$$TZ /etc/localtime || true) && \      echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/$$STATIC_CRON_TOKEN;echo\"      | crontab - && \      crond -f -L /dev/stdout"    networks:      - firefly_iii    depends_on:      - app# volumes:#  firefly_iii_upload:#  firefly_iii_db:networks:  firefly_iii:    driver: bridge

启动容器

cd /opt/docker-stacks/Firefly-III/

在 docker-compose.yml 和所有配置文件所在的目录中运行以下命令。

docker compose -f docker-compose.yml up -d --pull=always

可以通过运行以下命令来跟踪安装进度:

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

现在可以通过 http://localhost 或 http://docker-ip:port 访问 Firefly III(如果它运行在自定义端口上)。要继续操作,请阅读有关如何创建帐户和交易的教程 。

例如http://192.168.6.197:4000

image

本文来自博客园,作者:舟清颺,转载请注明原文链接:https://www.cnblogs.com/zqingyang/p/19183509

相关新闻

  • 完整教程:RabbitMQ-如何保证消息不丢失
  • C# 中的LinkedListT详解
  • 人工智能与信息物理系统(CPS)的会师:达成物理世界泛化应用的核心路径

最新新闻

  • 2026苏州钻石回收实测|国标4C定级,全城无套路靠谱门店变现指南 - 薛定谔的梨花猫
  • C语言宽字符处理:wmemcmp、wmemcpy、wprintf核心函数详解与实战
  • 多模态大语言模型LISA
  • 2026长沙回收百达翡丽手表门店分级指南,一线标杆店铺评级,区分正规与小作坊 - 名奢变现站
  • 如何通过WeChatMsg实现微信聊天记录的本地化解析与数据主权保护?
  • 告别GUI开发噩梦:用Dear ImGui在30分钟内为C++项目添加专业界面

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号