用docker在NAS群晖上搭建一个开源的理财记账软件Firefly III欧鹿星球助手4个月前更新关注私信1197 Firefly III(中文名字“萤火虫”)是一款开源的记账软件,完全没有广告,可以自主搭建个人的财务管理服务,帮助用户记录和追踪收入与开销。同时,它还支持使用预算、类别和标签,支持可以导入数据,提供许多简洁的财务报告等,最主要的是,它还提供开放的接口,支持跨平台使用和同步。所以说不管是对于个人或者公司来说,都比较适用。 Firefly-iii 是一个开源的记账软件,可以自主搭建个人的财务管理服务,帮助用户记录和追踪收入与开销。 配置部署Docker版Fireflyiii 数据库 可以使用群晖自带的MariaDB新建一个数据库 192.168.1.15:3306 数据库名:firefly 用户名:firefly 密码:12345678 以 Docker 方式安装 ssh终端输入:docker pull fireflyiii/core:latest 或者手动在注册表中搜索 firefly ,选择第二个 fireflyiii/core,版本选择 latest。 第一个镜像 jc5x/firefly-iii 也是官网的,只是自 2021年7月1日 起,已经被弃用 安装数据库 通过 phpMyAdmin 在 MariaDB 10 中新建用户 firefly,创建同名的库 firefly 并授予所有权限。 在 docker 文件夹中,创建一个新文件夹,并将其命名为 firefly,然后在 firefly 中再建两个子目录 upload 和 export 文件夹装载路径说明docker/firefly/export/var/www/html/storage/export存放导出文件docker/firefly/upload/var/www/html/storage/upload存放上传文件 端口 端口不冲突就行,不确定的话可以用命令查一下 查看端口占用 netstat -tunlp | grep 端口号 本地端口容器端口88888080 环境 可变值APP_KEY必须是 32 位DB_HOST数据库地址DB_PORT数据库端口DB_CONNECTION数据库类型DB_DATABASE数据库库名DB_USERNAME数据库用户DB_PASSWORD数据库密码 运行 日志中看到👇下面的信息就可以开始使用了 以 docker-compose 方式安装启动镜像 docker-compose.yml 配置: Docker 部署实例非常方便,首先创建一个工程文件夹,然后新建 docker-compose.yml 文件: 自行修改volumes:挂载目录ports:映射端口 version: '3.3' services: app: image: fireflyiii/core:latest hostname: app container_name: fireflyiii restart: always volumes: - /volume1/docker/记账软件/upload:/var/www/html/storage/upload - /volume1/docker/记账软件/export:/var/www/html/storage/export env_file: .env networks: - firefly_iii ports: - 0.0.0.0:18082:8080 networks: firefly_iii: driver: bridge 下面的是含mariadb数据库一起部署: 如果用自己的数据库就不需要部署mariadb数据库,用上面的即可。 version: '3.3' services: app: image: fireflyiii/core:latest hostname: app container_name: firefly_iii_core restart: always volumes: - firefly_iii_upload:/var/www/html/storage/upload env_file: .env networks: - firefly_iii ports: - 127.0.0.1:8080:8080 depends_on: - db db: image: mariadb hostname: db container_name: firefly_iii_db restart: always env_file: .db.env networks: - firefly_iii volumes: - firefly_iii_db:/var/lib/mysql cron: image: alpine restart: always container_name: firefly_iii_cron command: sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/REPLACEME\" | crontab - && crond -f -L /dev/stdout" networks: - firefly_iii volumes: firefly_iii_upload: firefly_iii_db: networks: firefly_iii: driver: bridge 这里特别需要注意的是 app 和 db 的 env_file,我们需要在这些文件中详细配置应用和数据库的设置。 .env 配置 在上文创建的工程目录中新建 .env 文件,以配置 Firefly APP 环境变量: # 推荐默认 APP_ENV=local APP_DEBUG=false # 根据情况自定义 SITE_OWNER=mail@example.com # 一定要保证 32 个字符 APP_KEY=SomeRandomStringOf32CharsExactly # 语言 DEFAULT_LANGUAGE=zh_CH DEFAULT_LOCALE=equal # 时区 TZ=Asia/Shanghai # 反向代理一定要开!! TRUSTED_PROXIES=** # 日志相关,尽量减少日志 LOG_CHANNEL=stack APP_LOG_LEVEL=emergency AUDIT_LOG_LEVEL=emergency # 数据库配置,这里选择 MySQL 数据库 DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=firefly-db # 自定义 DB_USERNAME=firefly-user DB_PASSWORD=强密码 MYSQL_USE_SSL=false # Cookie 设置 COOKIE_PATH="/" COOKIE_SECURE=false COOKIE_SAMESITE=lax SEND_ERROR_MESSAGE=true SEND_REPORT_JOURNALS=true ENABLE_EXTERNAL_MAP=false ENABLE_EXTERNAL_RATES=false # Firefly III authentication settings AUTHENTICATION_GUARD=web AUTHENTICATION_GUARD_HEADER=REMOTE_USER DISABLE_FRAME_HEADER=false # 防止 XSS 攻击,保持默认 DISABLE_CSP_HEADER=false ALLOW_WEBHOOKS=false DKR_BUILD_LOCALE=false # 不用 sqllite DKR_CHECK_SQLITE=false # 安全相关,保持默认 DKR_RUN_MIGRATION=true DKR_RUN_UPGRADE=true DKR_RUN_VERIFY=true DKR_RUN_REPORT=true DKR_RUN_PASSPORT_INSTALL=true # APP 配置,不要乱改 APP_NAME=FireflyIII BROADCAST_DRIVER=log QUEUE_DRIVER=sync CACHE_PREFIX=firefly FIREFLY_III_LAYOUT=v1 以上 .env 仅展示了必要的配置,其他自定义配置可以参考官方文档:.env.example。 mariadb数据库容器一起部署的需要配置db.env文件 MYSQL_RANDOM_ROOT_PASSWORD=yes MYSQL_DATABASE=firefly-db MYSQL_USER=firefly-user MYSQL_PASSWORD=强密码 docker-compose 启动镜像 cd 到你的docker-compose.yml文件目录执行: docker-compose up -d 执行 docker ps 命令: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1b143b1fafa7 fireflyiii/core:latest "/usr/local/bin/entr…" About a minute ago Up About a minute (healthy) 127.0.0.1:8080->8080/tcp firefly_iii_core daf67ec26566 alpine "sh -c 'echo \"0 3 * …" About a minute ago Up About a minute firefly_iii_cron 4a660f98647f mariadb "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp firefly_iii_db 如果 fireflyiii/core 容器的状态为 (healthy),则表明部署成功。 部署成功进入网址设置 在浏览器中输入 http://群晖IP:你设置的端口 就能看到登录界面 第一次需要注册用户 注意:密码不能少于 16 位,建议用密码生成器,使用类似 LZ8xEJ6EPToTboxm 这样的密码 登录成功后的欢迎界面 设置中文 第一件事当然是设置语言啦,在欢迎界面中 Bank name:随便填了个 交通银行 Balance:应该是余额,默认是欧元,点前面的三角下箭头,找到 chinese yuan,后面填 0 Savings balance:储蓄卡余额,先默认没动 language 中下拉到底,选择 Chinese Simplified Submit 之后就是中文界面了 在移动端直接使用 Web 的效果也还可以 现在您可以开启记账之旅,创建预算,跟踪支出,通过报表了解收支情况了。 应用 接口 除了 Web 应用外,Firefly III 还具备 JSON API,提供了专门的 Swagger 文档:https://api-docs.firefly-iii.org 除非你想做基于 Firefly III 的二次开发,否则作为一般用户来说,这个没啥用处。 官方没有提供除了 Web 之外的应用,移动端都是第三方基于👆的 API 开发的,所有的移动客户端都在这里 👉 :https://docs.firefly-iii.org/firefly-iii/other-pages/3rdparty/ Android Android 平台有 2 个,分别是 Firefly Personal Finance 和 Photuris III,只下了 Photuris III 简单测试了一下 需要的朋友可以在后台回复 记账 即可获取下载地址 在 Web 端获取 个人访问令牌 主页 –> 选项 –> 个人档案 –> OAuth 授权 –> 个人访问令牌 –> 创建新令牌 名称只是为了标识,方便多令牌的管理 令牌只显示一次,所以要妥善保管 登录 android 客户端 打开 app,点 PERSONAL ACCESS TOKEN 输入 服务器地址 和 个人访问令牌后,点 SIGN IN 进入 Options –> Settings –> Language 可以改为 简体中文 界面 从界面看基本上就是高仿的 Web ,简单用了下,比较容易闪退😅 iOS iOS 只有基于 Workflow 的快捷方式,给个动图自己研究吧 动图地址:https://github.com/tmytro/firefly-ios-shortcuts 参考文档 firefly-iii/firefly-iii: Firefly III: a personal finances manager地址:https://github.com/firefly-iii/firefly-iii Firefly III – A free and open source personal finances manager地址:https://www.firefly-iii.org/ Docker – Firefly III documentation地址:https://docs.firefly-iii.org/firefly-iii/installation/docker/ © 版权声明1.本站部分内容收集于互联网公开页面!若内容侵犯到您的权益,请发送邮件至:ai@ouluai.com,我们将第一时间处理! 2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。 3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。 THE END网络技术# 理财记账软件# Firefly III 喜欢就支持一下吧点赞7赞赏 分享QQ空间微博QQ好友海报分享复制链接收藏