From 720844a5eac5b0c68260f8cf46f3d8e91d91f9f9 Mon Sep 17 00:00:00 2001 From: wanghe Date: Mon, 25 Sep 2023 17:03:57 +0800 Subject: [PATCH] feat: add Metabase (#449) --- apps/metabase/0.47.2/data.yml | 40 ++++++++++++++++++++++++ apps/metabase/0.47.2/docker-compose.yml | 30 ++++++++++++++++++ apps/metabase/README.md | 16 ++++++++++ apps/metabase/data.yml | 20 ++++++++++++ apps/metabase/logo.png | Bin 0 -> 3252 bytes 5 files changed, 106 insertions(+) create mode 100755 apps/metabase/0.47.2/data.yml create mode 100644 apps/metabase/0.47.2/docker-compose.yml create mode 100644 apps/metabase/README.md create mode 100755 apps/metabase/data.yml create mode 100644 apps/metabase/logo.png diff --git a/apps/metabase/0.47.2/data.yml b/apps/metabase/0.47.2/data.yml new file mode 100755 index 00000000..758ada96 --- /dev/null +++ b/apps/metabase/0.47.2/data.yml @@ -0,0 +1,40 @@ +additionalProperties: + formFields: + - default: "" + envKey: PANEL_DB_HOST + key: mysql + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: service + - default: metabase + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + random: true + required: true + rule: paramCommon + type: text + - default: metabase + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: metabase + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + random: true + required: true + rule: paramComplexity + type: password + - default: 3000 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 应用端口 + required: true + rule: paramPort + type: number diff --git a/apps/metabase/0.47.2/docker-compose.yml b/apps/metabase/0.47.2/docker-compose.yml new file mode 100644 index 00000000..fcce308b --- /dev/null +++ b/apps/metabase/0.47.2/docker-compose.yml @@ -0,0 +1,30 @@ +version: '3' +services: + metabase: + image: metabase/metabase:v0.47.2 + container_name: ${CONTAINER_NAME} + ports: + - ${PANEL_APP_PORT_HTTP}:3000 + restart: always + networks: + - 1panel-network + volumes: + - ./data/metabase:/metabase + - ./data/metabase-data:/metabase-data + environment: + MB_DB_TYPE: mysql + MB_DB_DBNAME: ${PANEL_DB_NAME} + MB_DB_PORT: 3306 + MB_DB_USER: ${PANEL_DB_USER} + MB_DB_PASS: ${PANEL_DB_USER_PASSWORD} + MB_DB_HOST: ${PANEL_DB_HOST} + labels: + createdBy: "Apps" + healthcheck: + test: curl --fail -I http://localhost:3000/api/health || exit 1 + interval: 15s + timeout: 5s + retries: 5 +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/metabase/README.md b/apps/metabase/README.md new file mode 100644 index 00000000..57004f6a --- /dev/null +++ b/apps/metabase/README.md @@ -0,0 +1,16 @@ +# Metabase + +Metabase 是一款开源的数据分析和可视化工具,它提供了丰富的功能来帮助用户探索、分析和可视化数据。以下是 Metabase 的一些主要功能简介,使用 Markdown 语法进行描述: + +## 主要功能: + +- **数据连接**:Metabase 可以连接多种数据源,包括关系型数据库(如MySQL、PostgreSQL、Oracle)、NoSQL数据库(如MongoDB)、云服务(如Amazon Redshift、Google BigQuery)以及各种数据文件格式。 +- **数据查询**:用户可以通过直观的图形界面或SQL查询语言来执行数据查询,从而轻松地提取所需的数据。 +- **可视化**:Metabase 提供了多种图表类型,包括条形图、折线图、饼图等,用户可以使用这些图表来呈现数据,并自定义图表样式和颜色。 +- **数据仪表板**:用户可以创建交互式的数据仪表板,将多个图表和查询结果组合在一起,以便更好地理解数据趋势和关系。 +- **自动化报表**:Metabase 允许用户创建定期自动生成的报表,以便在特定时间发送给团队成员或其他相关方。 +- **数据权限和安全性**:Metabase 提供了细粒度的数据访问权限控制,以确保只有授权用户能够访问敏感数据。 +- **问题和答案**:用户可以使用 Metabase 的“问题”功能来直接向系统提问,系统会自动执行相应的查询并返回答案,无需编写SQL查询。 +- **自动建议**:Metabase 提供了智能的查询建议功能,帮助用户更快地构建有效的查询。 +- **数据导出**:用户可以将查询结果以多种格式导出,包括CSV、Excel、图像等,以便进一步分析或共享数据。 +- **插件和扩展性**:Metabase 支持各种插件和扩展,可以根据需要添加新的功能和数据源连接。 \ No newline at end of file diff --git a/apps/metabase/data.yml b/apps/metabase/data.yml new file mode 100755 index 00000000..cf4893e4 --- /dev/null +++ b/apps/metabase/data.yml @@ -0,0 +1,20 @@ +name: Metabase +tags: + - BI +title: 一款开源的数据分析和可视化工具 +type: BI +description: 一款开源的数据分析和可视化工具 +additionalProperties: + key: metabase + name: Metabase + tags: + - BI + shortDescZh: 一款开源的数据分析和可视化工具 + shortDescEn: An open source data analysis and visualization tool + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://www.metabase.com + github: https://github.com/metabase/metabase + document: https://www.metabase.com/docs \ No newline at end of file diff --git a/apps/metabase/logo.png b/apps/metabase/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..75ecdbd3ecdbf5c0749c2e102fcae149e4f7193f GIT binary patch literal 3252 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 mNwXI8ENznAeAW573Gg3