From d3dc03bb652773df4349fb4f2dbb2509ee0da94c Mon Sep 17 00:00:00 2001 From: Henry Wu <99880210+HenryWu01@users.noreply.github.com> Date: Thu, 9 May 2024 13:13:43 +0800 Subject: [PATCH] :sparkles: Add Firefly III support (#1328) --- firefly-iii/6.1.15/data.yml | 55 ++++++++++++++++++++++++++ firefly-iii/6.1.15/docker-compose.yml | 24 +++++++++++ firefly-iii/README.md | 21 ++++++++++ firefly-iii/data.yml | 19 +++++++++ firefly-iii/logo.png | Bin 0 -> 27841 bytes 5 files changed, 119 insertions(+) create mode 100644 firefly-iii/6.1.15/data.yml create mode 100644 firefly-iii/6.1.15/docker-compose.yml create mode 100644 firefly-iii/README.md create mode 100644 firefly-iii/data.yml create mode 100644 firefly-iii/logo.png diff --git a/firefly-iii/6.1.15/data.yml b/firefly-iii/6.1.15/data.yml new file mode 100644 index 000000000..88c5fb460 --- /dev/null +++ b/firefly-iii/6.1.15/data.yml @@ -0,0 +1,55 @@ +additionalProperties: + formFields: + - default: "" + envKey: APP_KEY + labelEn: Application Key (Must be exactly 32 characters) + labelZh: 应用密钥 (必须为 32 位字符) + required: true + type: text + - default: mysql + envKey: PANEL_DB_TYPE + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: apps + child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + values: + - label: MySQL + value: mysql + - label: PostgreSQL + value: pgsql + - default: firefly + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名称 + random: true + required: true + rule: paramCommon + type: text + - default: firefly + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: firefly + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + random: true + required: true + rule: paramComplexity + type: password + - default: 8080 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: HTTP 端口 + required: true + rule: paramPort + type: number diff --git a/firefly-iii/6.1.15/docker-compose.yml b/firefly-iii/6.1.15/docker-compose.yml new file mode 100644 index 000000000..2cc914105 --- /dev/null +++ b/firefly-iii/6.1.15/docker-compose.yml @@ -0,0 +1,24 @@ +services: + firefly-iii: + image: fireflyiii/core:version-6.1.15 + container_name: ${CONTAINER_NAME} + environment: + - APP_KEY=${APP_KEY} + - DB_CONNECTION=${PANEL_DB_TYPE} + - DB_HOST=${PANEL_DB_HOST} + - DB_PORT=${PANEL_DB_PORT} + - DB_DATABASE=${PANEL_DB_NAME} + - DB_USERNAME=${PANEL_DB_USER} + - DB_PASSWORD=${PANEL_DB_USER_PASSWORD} + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + volumes: + - ./firefly-iii/upload:/var/www/html/storage/upload + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true diff --git a/firefly-iii/README.md b/firefly-iii/README.md new file mode 100644 index 000000000..335a5044e --- /dev/null +++ b/firefly-iii/README.md @@ -0,0 +1,21 @@ +# Firefly III + +**Firefly III** 是一款开源的个人财务管理工具。它可以帮助您跟踪支出和收入,从而减少开支并增加储蓄。 + +## 主要功能: + +- **创建周期性交易**:管理财务时可以设定重复发生的交易,以便更好地控制预算和流动性。 +- **基于规则的交易处理**:用户可以根据自定义的规则来自动处理交易,提高财务管理的效率。 +- **双重记账系统**:采用标准的双重记账法,确保财务记录的准确性。 +- **全面的账户管理功能**: + - 资产账户 + - 共享资产账户(家庭账户) + - 储蓄账户 + - 信用卡账户 + - 负债账户(贷款、抵押贷款) +- **预算管理**:可以创建、修改并管理预算,以更好地控制财务状况。 +- **使用分类组织交易**:通过分类来组织交易,使收支更加清晰。 +- **使用存钱罐朝目标储蓄**:设定具体的财务目标,并通过存钱罐系统积极储蓄。 +- **预测和预期账单**:通过系统预测即将到来的账单,提前做好财务规划。 +- **收入和支出报告查看**:提供详细的收入和支出报告,帮助用户了解财务状况。 +- **使用标签组织支出**:通过标签来进一步细化支出类别,便于跟踪和管理。 diff --git a/firefly-iii/data.yml b/firefly-iii/data.yml new file mode 100644 index 000000000..54233cb6d --- /dev/null +++ b/firefly-iii/data.yml @@ -0,0 +1,19 @@ +name: Firefly III +tags: + - 实用工具 +title: 开源的个人财务管理工具 +description: 开源的个人财务管理工具 +additionalProperties: + key: firefly-iii + name: Firefly III + tags: + - Tool + shortDescZh: 开源的个人财务管理工具 + shortDescEn: A free and open source personal finance manager + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://www.firefly-iii.org/ + github: https://github.com/firefly-iii/firefly-iii + document: https://docs.firefly-iii.org/ diff --git a/firefly-iii/logo.png b/firefly-iii/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..04426fbf085d8262834b8628a1ff3a6d7f010977 GIT binary patch literal 27841 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