当前位置: 首页 > news >正文

docker搭建firefiy iii

Firefly III是一个自托管的金融管理工具,旨在帮助个人和家庭跟踪他们的支出、收入、预算和资产。它提供了一个直观的web界面,通过这个界面,用户可以快速设置账户、记录交易、创建预算,并且还可以查看各种报表来分析个人财务状况。
搭建Firefly III使用Docker是一个非常方便的方式,因为它抽象了很多配置细节,让你可以更专注于使用Firefly III而不是配置它。

通过Docker CLI搭建Firefly III

首先,你需要通过命令行逐一创建所需的网络、卷和容器。

  1. 创建网络:
docker network create firefly_iii_network
  1. 创建卷:
docker volume create firefly_iii_upload
docker volume create firefly_iii_db
  1. 运行数据库容器:
docker run -d --name firefly_iii_db --hostname db --restart always \--env-file .db.env -v firefly_iii_db:/var/lib/mysql \--network firefly_iii_network mariadb
  1. 运行Firefly III核心容器:
docker run -d --name firefly_iii_core --hostname app --restart always \-v firefly_iii_upload:/var/www/html/storage/upload -p 24380:8080 \--env-file .env --network firefly_iii_network \--depends-on firefly_iii_db fireflyiii/core:latest
  1. 设置定时任务容器:
docker run -d --name firefly_iii_cron --restart always \--network firefly_iii_network alpine \/bin/sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/REPLACEME\" | crontab - && crond -f -L /dev/stdout"

使用Docker Compose搭建

version: '3.3'services:app:image: fireflyiii/core:latesthostname: appcontainer_name: firefly_iii_corerestart: alwaysvolumes:- firefly_iii_upload:/var/www/html/storage/uploadenv_file: .envnetworks:- firefly_iiiports:- 24380:8080depends_on:- dbdb:image: mariadbhostname: dbcontainer_name: firefly_iii_dbrestart: alwaysenv_file: .db.envnetworks:- firefly_iiivolumes:- firefly_iii_db:/var/lib/mysqlcron:## To make this work, set STATIC_CRON_TOKEN in your .env file or as an environment variable and replace REPLACEME below# The STATIC_CRON_TOKEN must be *exactly* 32 characters long#image: alpinerestart: alwayscontainer_name: firefly_iii_croncommand: sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/REPLACEME\" | crontab - && crond -f -L /dev/stdout"networks:- firefly_iiivolumes:firefly_iii_upload:firefly_iii_db:networks:firefly_iii:driver: bridge
  • version: 指定了使用的Docker Compose文件格式版本,'3.3'提供了现代Docker平台需要的所有功能。
  • services: 定义了要运行的服务,本例中包括app(Firefly III核心应用)、db(数据库)和cron(定时任务)。
    • image: 指定容器使用的镜像。
    • hostname: 设置容器内的主机名。
    • container_name: 定义容器的名称,这使得容器更容易识别。
    • restart: 设置容器的重启策略,always表示容器总是重启。
    • volumes: 将数据卷或文件挂载到容器内的指定路径。
    • env_file: 从文件中读取环境变量。
    • networks: 指定容器连接的网络。
    • ports: 将容器内的端口映射到主机的端口,格式为<主机端口>:<容器端口>
    • depends_on: 表明容器启动的依赖关系。
    • command: 定制容器启动后执行的命令。
  • volumes: 定义了使用的卷,用于持久化和共享数据。
  • networks: 定义了网络,driver: bridge表示使用桥接模式,使得容器之间能够单独通信。

相关文章:

  • 深入了解 大语言模型(LLM)微调方法
  • 如何“使用Docker快速安装Jenkins,在CentOS7”?
  • Qt教程 — 3.4 深入了解Qt 控件:Input Widgets部件(3)
  • NFT数字藏品推广途径有哪些?CloudNEO免费个性定制方案,推广您的NFT
  • 数据挖掘与大数据的结合
  • nginx实现多个域名和集群
  • 信息化项目可行性研究报告模板(第三章)
  • 【相关问题解答1】bert中文文本摘要代码:import时无法找到包时,几个潜在的原因和解决方法
  • ASP.NET-框架分类与详解
  • sqllab第二十六关通关笔记
  • C语言中,基本数据类型介绍
  • Flutter中GetX的用法(路由管理)
  • 设计模式 -- 2:策略模式
  • Node.js 自带的 http 模块来实现一个简单的本地服务器
  • 如何重置iPhone的网络设置?这里提供详细步骤
  • #Java异常处理
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Akka系列(七):Actor持久化之Akka persistence
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • create-react-app做的留言板
  • CSS相对定位
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • EventListener原理
  • HTTP 简介
  • JS 面试题总结
  • Linux中的硬链接与软链接
  • php中curl和soap方式请求服务超时问题
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • vuex 笔记整理
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 不上全站https的网站你们就等着被恶心死吧
  • 搭建gitbook 和 访问权限认证
  • 深度解析利用ES6进行Promise封装总结
  • 使用common-codec进行md5加密
  • 使用SAX解析XML
  • 思维导图—你不知道的JavaScript中卷
  • 我与Jetbrains的这些年
  • 物联网链路协议
  • mysql面试题分组并合并列
  • ​马来语翻译中文去哪比较好?
  • #14vue3生成表单并跳转到外部地址的方式
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (20050108)又读《平凡的世界》
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (搬运以学习)flask 上下文的实现
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (五)c52学习之旅-静态数码管
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)setTimeout 和 setInterval 的区别
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • . ./ bash dash source 这五种执行shell脚本方式 区别