From e94179ea4fed5eb31ce8d1608529936a1b3f4094 Mon Sep 17 00:00:00 2001 From: wanghe Date: Tue, 6 Aug 2024 15:55:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20NocoDB=20(#1882)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/nocodb/0.251.3/data.yml | 52 +++++++++++++++++++++++++ apps/nocodb/0.251.3/docker-compose.yml | 18 +++++++++ apps/nocodb/0.251.3/scripts/init.sh | 22 +++++++++++ apps/nocodb/README.md | 15 +++++++ apps/nocodb/data.yml | 19 +++++++++ apps/nocodb/logo.png | Bin 0 -> 6451 bytes 6 files changed, 126 insertions(+) create mode 100644 apps/nocodb/0.251.3/data.yml create mode 100644 apps/nocodb/0.251.3/docker-compose.yml create mode 100644 apps/nocodb/0.251.3/scripts/init.sh create mode 100644 apps/nocodb/README.md create mode 100644 apps/nocodb/data.yml create mode 100644 apps/nocodb/logo.png diff --git a/apps/nocodb/0.251.3/data.yml b/apps/nocodb/0.251.3/data.yml new file mode 100644 index 00000000..4614b050 --- /dev/null +++ b/apps/nocodb/0.251.3/data.yml @@ -0,0 +1,52 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + default: mysql + edit: true + envKey: PANEL_DB_TYPE + labelZh: 数据库 服务 + labelEn: Database Service + required: true + type: apps + values: + - label: MySQL + value: mysql + - label: PostgreSQL + value: postgresql + - label: MariaDB + value: mariadb + - default: nocodb + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + random: true + required: true + rule: paramCommon + type: text + - default: nocodb + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: nocodb + 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: 端口 + required: true + rule: paramPort + type: number \ No newline at end of file diff --git a/apps/nocodb/0.251.3/docker-compose.yml b/apps/nocodb/0.251.3/docker-compose.yml new file mode 100644 index 00000000..842a53c2 --- /dev/null +++ b/apps/nocodb/0.251.3/docker-compose.yml @@ -0,0 +1,18 @@ +services: + nocodb: + image: nocodb/nocodb:0.251.3 + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + environment: + NC_DB: "${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}?u=${PANEL_DB_USER}&p=${PANEL_DB_USER_PASSWORD}&d=${PANEL_DB_NAME}" + volumes: + - ./data:/usr/app/data + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/nocodb/0.251.3/scripts/init.sh b/apps/nocodb/0.251.3/scripts/init.sh new file mode 100644 index 00000000..7c600aa8 --- /dev/null +++ b/apps/nocodb/0.251.3/scripts/init.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +ENV_FILE=".env" + +if [ -f "$ENV_FILE" ]; then + PANEL_DB_TYPE=$(grep '^PANEL_DB_TYPE=' "$ENV_FILE" | cut -d '=' -f 2 | tr -d '"') + + if [ "$PANEL_DB_TYPE" == "postgresql" ]; then + NEW_DB_TYPE="pg" + elif [ "$PANEL_DB_TYPE" == "mysql" ] || [ "$PANEL_DB_TYPE" == "mariadb" ]; then + NEW_DB_TYPE="mysql2" + else + echo "Unsupported PANEL_DB_TYPE value: $PANEL_DB_TYPE" + exit 1 + fi + + sed -i "s/^PANEL_DB_TYPE=.*/PANEL_DB_TYPE=\"$NEW_DB_TYPE\"/" "$ENV_FILE" + +else + echo ".env file not found!" + exit 1 +fi \ No newline at end of file diff --git a/apps/nocodb/README.md b/apps/nocodb/README.md new file mode 100644 index 00000000..b6ee3404 --- /dev/null +++ b/apps/nocodb/README.md @@ -0,0 +1,15 @@ +# NocoDB + +**NocoDB** 是一个开源的无代码(No-Code)数据库平台,它使得用户能够通过图形化界面创建、管理和操作数据库,而无需编写代码。NocoDB 旨在简化数据管理过程,提供一个可视化的用户界面来处理数据库中的数据,支持与各种数据库系统的集成。 + +## 主要功能: + +- **无代码数据库管理**:提供直观的图形化界面,用户可以通过拖放操作来管理数据库表和字段,无需编写 SQL 语句或进行复杂的设置。 +- **多种数据库支持**:支持多种主流数据库系统,包括 MySQL、PostgreSQL、SQL Server 和 SQLite,使用户能够轻松连接和管理各种数据源。 +- **表格视图和数据操作**:允许用户以表格视图查看和编辑数据,提供类似电子表格的操作体验,方便数据的查看、修改和过滤。 +- **自定义视图和过滤器**:用户可以创建自定义视图,应用过滤器和排序选项,以满足特定的数据查看和操作需求。 +- **表单和视图设计**:支持创建自定义表单和视图,用户可以根据需要设计数据输入表单和数据展示界面。 +- **API 接口生成**:自动生成 RESTful API 接口,使得用户能够通过 API 访问和操作数据库中的数据,方便与其他应用和系统集成。 +- **用户权限管理**:提供灵活的权限管理功能,允许管理员为不同的用户和用户组设置访问权限和操作权限,确保数据安全性。 +- **自动化和集成**:支持与第三方服务和应用的集成,提供自动化操作和工作流的功能,帮助用户实现数据的自动化处理和管理。 +- **审计和日志记录**:记录数据操作的日志,提供审计功能,帮助用户跟踪和审查数据的变更历史和操作记录。 \ No newline at end of file diff --git a/apps/nocodb/data.yml b/apps/nocodb/data.yml new file mode 100644 index 00000000..f915ee9d --- /dev/null +++ b/apps/nocodb/data.yml @@ -0,0 +1,19 @@ +name: NocoDB +tags: + - 数据库 +title: 无代码数据库平台 +description: 无代码数据库平台 +additionalProperties: + key: nocodb + name: NocoDB + tags: + - Database + shortDescZh: 无代码数据库平台 + shortDescEn: Code-free database platform + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://nocodb.com/ + github: https://github.com/nocodb/nocodb/ + document: https://docs.nocodb.com/ \ No newline at end of file diff --git a/apps/nocodb/logo.png b/apps/nocodb/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..63195ff2f344e1b7c08d948cdf0d7ca0587bf1d8 GIT binary patch literal 6451 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 N002ovPDHLkV1kJf6dV8m literal 0 KcmV+b0RR6000031