From 9df2c1892f628098a76167c878aa1afa0771e928 Mon Sep 17 00:00:00 2001 From: okxlin Date: Thu, 7 Sep 2023 23:13:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0seatable=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/seatable/4.1.0/.env.sample | 12 ++++ apps/seatable/4.1.0/data.yml | 87 ++++++++++++++++++++++++ apps/seatable/4.1.0/docker-compose.yml | 25 +++++++ apps/seatable/README.md | 84 +++++++++++++++++++++++ apps/seatable/data.yml | 20 ++++++ apps/seatable/latest/.env.sample | 12 ++++ apps/seatable/latest/data.yml | 87 ++++++++++++++++++++++++ apps/seatable/latest/docker-compose.yml | 25 +++++++ apps/seatable/logo.png | Bin 0 -> 4230 bytes 9 files changed, 352 insertions(+) create mode 100644 apps/seatable/4.1.0/.env.sample create mode 100644 apps/seatable/4.1.0/data.yml create mode 100644 apps/seatable/4.1.0/docker-compose.yml create mode 100644 apps/seatable/README.md create mode 100644 apps/seatable/data.yml create mode 100644 apps/seatable/latest/.env.sample create mode 100644 apps/seatable/latest/data.yml create mode 100644 apps/seatable/latest/docker-compose.yml create mode 100644 apps/seatable/logo.png diff --git a/apps/seatable/4.1.0/.env.sample b/apps/seatable/4.1.0/.env.sample new file mode 100644 index 00000000..d682f0d1 --- /dev/null +++ b/apps/seatable/4.1.0/.env.sample @@ -0,0 +1,12 @@ +CONTAINER_NAME="seatable" +DATA_PATH="./data" +MEMCACHED_HOST="memcached" +PANEL_APP_PORT_HTTP="40154" +PANEL_DB_HOST="mysql" +PANEL_DB_ROOT_PASSWORD="mysql_root_password" +SEAFILE_DB_PORT="3306" +REDIS_HOST="redis" +PANEL_REDIS_ROOT_PASSWORD="redis_password" +REDIS_PORT="6379" +TIME_ZONE="Asia/Shanghai" +SERVER_HOSTNAME="example.seatable.com" diff --git a/apps/seatable/4.1.0/data.yml b/apps/seatable/4.1.0/data.yml new file mode 100644 index 00000000..3211c5fb --- /dev/null +++ b/apps/seatable/4.1.0/data.yml @@ -0,0 +1,87 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: service + default: mysql + labelEn: Database Service + labelZh: 数据库服务 + params: + - envKey: SEAFILE_DB_PORT + key: mysql + type: param + value: "3306" + required: true + type: apps + values: + - label: MySQL + value: mysql + - default: mysql_root_password + envKey: PANEL_DB_ROOT_PASSWORD + labelEn: Database root password + labelZh: 数据库 root 密码 + required: true + type: password + - default: "" + edit: true + envKey: REDIS_HOST + key: redis + labelEn: Redis Service + labelZh: Redis服务 + required: true + type: service + - default: "6379" + edit: true + envKey: REDIS_PORT + labelEn: Redis Service Port + labelZh: Redis服务端口 + required: true + rule: paramPort + type: number + - default: "" + envKey: PANEL_REDIS_ROOT_PASSWORD + labelEn: Redis Password + labelZh: Redis 密码 + required: true + type: password + - default: 40154 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TIME_ZONE + labelEn: Time zone + labelZh: 时区 + required: true + type: text + - default: "" + edit: true + envKey: MEMCACHED_HOST + key: memcached + labelEn: Memcached Service + labelZh: Memcached 服务 + required: true + type: service + - default: example.seatable.com + edit: true + envKey: SERVER_HOSTNAME + labelEn: Server hostname + labelZh: 服务端主机名 + required: true + type: text diff --git a/apps/seatable/4.1.0/docker-compose.yml b/apps/seatable/4.1.0/docker-compose.yml new file mode 100644 index 00000000..225f9a63 --- /dev/null +++ b/apps/seatable/4.1.0/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3' +services: + seatable: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + #- "${PANEL_APP_PORT_HTTPS}:443" + volumes: + - "${DATA_PATH}:/shared" + environment: + - DB_HOST=${PANEL_DB_HOST} + - DB_ROOT_PASSWD=${PANEL_DB_ROOT_PASSWORD} + - TIME_ZONE=${TIME_ZONE} + - SEATABLE_SERVER_HOSTNAME=${SERVER_HOSTNAME} + - SEATABLE_SERVER_LETSENCRYPT=false + image: seatable/seatable-developer:4.1.0 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/seatable/README.md b/apps/seatable/README.md new file mode 100644 index 00000000..c992bb1a --- /dev/null +++ b/apps/seatable/README.md @@ -0,0 +1,84 @@ +# 使用说明 + +**创建时需要手动连接容器终端执行命令启动服务,并创建管理员账户密码。** + +容器管理功能页面,连接容器终端,执行以下命令 + +- 启动 SeaTable 服务 + +``` +/shared/seatable/scripts/seatable.sh start +``` + +- # 创建一个管理员帐户 +``` +/shared/seatable/scripts/seatable.sh superuser +``` + +# 原始相关 +*** +## Introduction + +SeaTable is a spreadsheet/database like Airtable. The initial idea is for people to manage different kinds of data in a single platform. With built-in automation rules, scripts and APIs, you can automate data processing with no code or little code. + +The core features include: + +* A spreadsheet like interface supporting collaboratively editing +* Mobile ready UI to be used on browsers in mobile system +* Unlimited rows in a single base +* Interconnect data between bases +* Automate data processing without coding +* Powerful APIs as well as SQL interface +* self-hosted, no restriction on API calls + +## History + +SeaTable is originally built by the Seafile team (https://github.com/haiwen/seafile). The idea was to add online collaboration table feature to Seafile. Later it involved into a separate project. The business is now moved to SeaTable GmbH. + +## How to install SeaTable + +Please check our manual: https://manual.seatable.io + +## Repositories + +General + +* [Scripts examples](https://github.com/seatable/seatable-scripts-examples): Example background scripts that you can add to extend SeaTable. +* [Plugin template](https://github.com/seatable/seatable-plugin-template): The template for writing your own UI plugin. + +Plugins + +* [Timeline plugin](https://github.com/seatable/seatable-plugin-timeline): Show records in timeline. +* [Map](https://github.com/seatable/seatable-plugin-map): Show records in Google Map. +* [Deduplicate](https://github.com/seatable/seatable-plugin-deduplicate): Detect duplicated records. + + +## Software components + +SeaTable consists of following components + +* dtable-web: The web site for manage tables. +* dtable-server: Store the tables and provide collaborating feature. +* [dtable-events](https://github.com/seatable/dtable-events): Background maintenance tasks +* [seaf-server](https://github.com/haiwen/seafile): Store attachments (files and images) +* [ccnet-server](https://github.com/haiwen/ccnet-server): Will be removed later. +* [thumbnail-server](https://github.com/seatable/seatable-thumbnail-server): serve image thumbnail and other static contents + +## LICENSE + +The different components of SeaTable community edition are released under different licenses: + +* dtable-web: Apache License v2 +* dtable-events: Apache License v2 +* dtable-server: Proprietary License +* seaf-server: AGPLv3 +* thumbnail-server: Apache License v2 + +Note: + +* The source code will be uploaded to GitHub later. They are currently included in the Docker image if you are interested. + +## Reporting issues + +Please report issues in the forum: https://forum.seatable.io/ + diff --git a/apps/seatable/data.yml b/apps/seatable/data.yml new file mode 100644 index 00000000..40ca98fc --- /dev/null +++ b/apps/seatable/data.yml @@ -0,0 +1,20 @@ +name: SeaTable +tags: + - 工具 +title: 一款以智能表格为基础的新型数字化平台 +type: 工具 +description: 一款以智能表格为基础的新型数字化平台 +additionalProperties: + key: seatable + name: SeaTable + tags: + - Tool + shortDescZh: 一款以智能表格为基础的新型数字化平台 + shortDescEn: A spreadsheet/database like Airtable + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://seatable.cn + github: https://github.com/seatable/seatable + document: https://docs.seatable.cn diff --git a/apps/seatable/latest/.env.sample b/apps/seatable/latest/.env.sample new file mode 100644 index 00000000..d682f0d1 --- /dev/null +++ b/apps/seatable/latest/.env.sample @@ -0,0 +1,12 @@ +CONTAINER_NAME="seatable" +DATA_PATH="./data" +MEMCACHED_HOST="memcached" +PANEL_APP_PORT_HTTP="40154" +PANEL_DB_HOST="mysql" +PANEL_DB_ROOT_PASSWORD="mysql_root_password" +SEAFILE_DB_PORT="3306" +REDIS_HOST="redis" +PANEL_REDIS_ROOT_PASSWORD="redis_password" +REDIS_PORT="6379" +TIME_ZONE="Asia/Shanghai" +SERVER_HOSTNAME="example.seatable.com" diff --git a/apps/seatable/latest/data.yml b/apps/seatable/latest/data.yml new file mode 100644 index 00000000..3211c5fb --- /dev/null +++ b/apps/seatable/latest/data.yml @@ -0,0 +1,87 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: service + default: mysql + labelEn: Database Service + labelZh: 数据库服务 + params: + - envKey: SEAFILE_DB_PORT + key: mysql + type: param + value: "3306" + required: true + type: apps + values: + - label: MySQL + value: mysql + - default: mysql_root_password + envKey: PANEL_DB_ROOT_PASSWORD + labelEn: Database root password + labelZh: 数据库 root 密码 + required: true + type: password + - default: "" + edit: true + envKey: REDIS_HOST + key: redis + labelEn: Redis Service + labelZh: Redis服务 + required: true + type: service + - default: "6379" + edit: true + envKey: REDIS_PORT + labelEn: Redis Service Port + labelZh: Redis服务端口 + required: true + rule: paramPort + type: number + - default: "" + envKey: PANEL_REDIS_ROOT_PASSWORD + labelEn: Redis Password + labelZh: Redis 密码 + required: true + type: password + - default: 40154 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP端口 + required: true + rule: paramPort + type: number + - default: ./data + edit: true + envKey: DATA_PATH + labelEn: Data folder path + labelZh: 数据文件夹路径 + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TIME_ZONE + labelEn: Time zone + labelZh: 时区 + required: true + type: text + - default: "" + edit: true + envKey: MEMCACHED_HOST + key: memcached + labelEn: Memcached Service + labelZh: Memcached 服务 + required: true + type: service + - default: example.seatable.com + edit: true + envKey: SERVER_HOSTNAME + labelEn: Server hostname + labelZh: 服务端主机名 + required: true + type: text diff --git a/apps/seatable/latest/docker-compose.yml b/apps/seatable/latest/docker-compose.yml new file mode 100644 index 00000000..ff0a951f --- /dev/null +++ b/apps/seatable/latest/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3' +services: + seatable: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + #- "${PANEL_APP_PORT_HTTPS}:443" + volumes: + - "${DATA_PATH}:/shared" + environment: + - DB_HOST=${PANEL_DB_HOST} + - DB_ROOT_PASSWD=${PANEL_DB_ROOT_PASSWORD} + - TIME_ZONE=${TIME_ZONE} + - SEATABLE_SERVER_HOSTNAME=${SERVER_HOSTNAME} + - SEATABLE_SERVER_LETSENCRYPT=false + image: seatable/seatable-developer:latest + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/seatable/logo.png b/apps/seatable/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed97da2202ff0c30eae282e296db0079e64ab03 GIT binary patch literal 4230 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 O0_f=&Yu9PIJpCV@7$$xI literal 0 HcmV?d00001