From f6d709c0e2acff0d9c3cd51ddeeb68bbf8bdb33a Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Wed, 29 Jul 2026 03:14:43 +0800 Subject: [PATCH] Add drawDB application --- apps/drawdb/1.8.1/.env.sample | 2 ++ apps/drawdb/1.8.1/data.yml | 19 +++++++++++++ apps/drawdb/1.8.1/docker-compose.yml | 21 ++++++++++++++ apps/drawdb/1.8.1/scripts/init.sh | 3 ++ apps/drawdb/1.8.1/scripts/uninstall.sh | 2 ++ apps/drawdb/1.8.1/scripts/upgrade.sh | 3 ++ apps/drawdb/README.md | 35 ++++++++++++++++++++++++ apps/drawdb/data.yml | 32 ++++++++++++++++++++++ apps/drawdb/latest/.env.sample | 2 ++ apps/drawdb/latest/data.yml | 19 +++++++++++++ apps/drawdb/latest/docker-compose.yml | 21 ++++++++++++++ apps/drawdb/latest/scripts/init.sh | 3 ++ apps/drawdb/latest/scripts/uninstall.sh | 2 ++ apps/drawdb/latest/scripts/upgrade.sh | 3 ++ apps/drawdb/logo-LICENSE.txt | 4 +++ apps/drawdb/logo.png | Bin 0 -> 3665 bytes 16 files changed, 171 insertions(+) create mode 100644 apps/drawdb/1.8.1/.env.sample create mode 100644 apps/drawdb/1.8.1/data.yml create mode 100644 apps/drawdb/1.8.1/docker-compose.yml create mode 100755 apps/drawdb/1.8.1/scripts/init.sh create mode 100755 apps/drawdb/1.8.1/scripts/uninstall.sh create mode 100755 apps/drawdb/1.8.1/scripts/upgrade.sh create mode 100644 apps/drawdb/README.md create mode 100644 apps/drawdb/data.yml create mode 100644 apps/drawdb/latest/.env.sample create mode 100644 apps/drawdb/latest/data.yml create mode 100644 apps/drawdb/latest/docker-compose.yml create mode 100755 apps/drawdb/latest/scripts/init.sh create mode 100755 apps/drawdb/latest/scripts/uninstall.sh create mode 100755 apps/drawdb/latest/scripts/upgrade.sh create mode 100644 apps/drawdb/logo-LICENSE.txt create mode 100644 apps/drawdb/logo.png diff --git a/apps/drawdb/1.8.1/.env.sample b/apps/drawdb/1.8.1/.env.sample new file mode 100644 index 000000000..6015d0796 --- /dev/null +++ b/apps/drawdb/1.8.1/.env.sample @@ -0,0 +1,2 @@ +PANEL_APP_PORT_HTTP=40930 +CONTAINER_NAME=drawdb-compose-check diff --git a/apps/drawdb/1.8.1/data.yml b/apps/drawdb/1.8.1/data.yml new file mode 100644 index 000000000..485f7b202 --- /dev/null +++ b/apps/drawdb/1.8.1/data.yml @@ -0,0 +1,19 @@ +additionalProperties: + formFields: + - default: 40930 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + label: + en: Port + zh: 端口 + zh-Hant: 埠 + ja: ポート + ko: 포트 + ru: Порт + ms: Port + pt-br: Porta + required: true + rule: paramPort + type: number diff --git a/apps/drawdb/1.8.1/docker-compose.yml b/apps/drawdb/1.8.1/docker-compose.yml new file mode 100644 index 000000000..3bf0cdd6e --- /dev/null +++ b/apps/drawdb/1.8.1/docker-compose.yml @@ -0,0 +1,21 @@ +services: + drawdb: + image: "ghcr.io/drawdb-io/drawdb:v1.8.1" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + healthcheck: + test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1/ || exit 1"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 10s + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/drawdb/1.8.1/scripts/init.sh b/apps/drawdb/1.8.1/scripts/init.sh new file mode 100755 index 000000000..9879df4c3 --- /dev/null +++ b/apps/drawdb/1.8.1/scripts/init.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -euo pipefail +exit 0 diff --git a/apps/drawdb/1.8.1/scripts/uninstall.sh b/apps/drawdb/1.8.1/scripts/uninstall.sh new file mode 100755 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/drawdb/1.8.1/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/drawdb/1.8.1/scripts/upgrade.sh b/apps/drawdb/1.8.1/scripts/upgrade.sh new file mode 100755 index 000000000..9879df4c3 --- /dev/null +++ b/apps/drawdb/1.8.1/scripts/upgrade.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -euo pipefail +exit 0 diff --git a/apps/drawdb/README.md b/apps/drawdb/README.md new file mode 100644 index 000000000..3398cb796 --- /dev/null +++ b/apps/drawdb/README.md @@ -0,0 +1,35 @@ +# drawDB + +## 产品介绍 + +drawDB 是一个在浏览器中使用的数据库实体关系图(ERD)编辑器。它无需注册账号,适合设计数据库结构和整理表之间的关系。 + +## 主要功能 + +- 创建数据库关系图并编辑表、字段和关系。 +- 导入和导出 SQL,生成数据库迁移内容。 +- 使用官方静态 Web 镜像,无需数据库、缓存或高风险主机权限。 +- 提供 `amd64` 和 `arm64` 镜像。 + +## 访问说明 + +安装完成后,通过 1Panel 显示的 HTTP 端口访问 Web 界面。数字固定版本目录对应官方同名 `v` 前缀镜像标签,`latest` 跟随上游最新镜像。 + +服务端容器只提供静态 Web 应用,不挂载持久化目录,也不保存账号或数据库。请使用 drawDB 的导入、导出和下载功能保存重要设计;清理浏览器数据前应先导出项目。 + +## Introduction + +drawDB is a browser-based entity relationship diagram editor for designing database schemas without creating an account. + +## Features + +- Create tables, fields, and relationships in a browser-based editor. +- Import and export SQL and generate migration content. +- Run the official static web image without a database, cache, or host-level permissions. +- Support both `amd64` and `arm64` images. + +## 参考资料 + +- 官网: +- 源码: +- Docker 构建说明: diff --git a/apps/drawdb/data.yml b/apps/drawdb/data.yml new file mode 100644 index 000000000..c18d4b27d --- /dev/null +++ b/apps/drawdb/data.yml @@ -0,0 +1,32 @@ +name: drawDB +tags: + - Tool +title: 浏览器内的数据库关系图设计工具 +description: 浏览器内的数据库关系图设计工具 +additionalProperties: + key: drawdb + name: drawDB + tags: + - Tool + type: tool + website: https://drawdb.app/ + document: https://github.com/drawdb-io/drawdb/blob/main/README.md + github: https://github.com/drawdb-io/drawdb + shortDescZh: 浏览器内的数据库关系图设计工具 + shortDescEn: A browser-based database diagram editor + crossVersionUpdate: true + limit: 0 + recommend: 0 + memoryRequired: 64 + architectures: + - amd64 + - arm64 + description: + en: A browser-based database diagram editor with SQL import and export tools + zh: 浏览器内的数据库关系图设计工具,支持 SQL 导入与导出 + zh-Hant: 瀏覽器內的資料庫關係圖設計工具,支援 SQL 匯入與匯出 + ja: SQL のインポートとエクスポートに対応したブラウザ型データベース図エディター + ko: SQL 가져오기와 내보내기를 지원하는 브라우저 기반 데이터베이스 다이어그램 편집기 + ru: Браузерный редактор схем баз данных с импортом и экспортом SQL + ms: Penyunting rajah pangkalan data berasaskan pelayar dengan import dan eksport SQL + pt-br: Editor de diagramas de banco de dados no navegador com importação e exportação de SQL diff --git a/apps/drawdb/latest/.env.sample b/apps/drawdb/latest/.env.sample new file mode 100644 index 000000000..6015d0796 --- /dev/null +++ b/apps/drawdb/latest/.env.sample @@ -0,0 +1,2 @@ +PANEL_APP_PORT_HTTP=40930 +CONTAINER_NAME=drawdb-compose-check diff --git a/apps/drawdb/latest/data.yml b/apps/drawdb/latest/data.yml new file mode 100644 index 000000000..485f7b202 --- /dev/null +++ b/apps/drawdb/latest/data.yml @@ -0,0 +1,19 @@ +additionalProperties: + formFields: + - default: 40930 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + label: + en: Port + zh: 端口 + zh-Hant: 埠 + ja: ポート + ko: 포트 + ru: Порт + ms: Port + pt-br: Porta + required: true + rule: paramPort + type: number diff --git a/apps/drawdb/latest/docker-compose.yml b/apps/drawdb/latest/docker-compose.yml new file mode 100644 index 000000000..62fb0a8af --- /dev/null +++ b/apps/drawdb/latest/docker-compose.yml @@ -0,0 +1,21 @@ +services: + drawdb: + image: "ghcr.io/drawdb-io/drawdb:latest" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + healthcheck: + test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1/ || exit 1"] + interval: 10s + timeout: 5s + retries: 10 + start_period: 10s + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/drawdb/latest/scripts/init.sh b/apps/drawdb/latest/scripts/init.sh new file mode 100755 index 000000000..9879df4c3 --- /dev/null +++ b/apps/drawdb/latest/scripts/init.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -euo pipefail +exit 0 diff --git a/apps/drawdb/latest/scripts/uninstall.sh b/apps/drawdb/latest/scripts/uninstall.sh new file mode 100755 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/drawdb/latest/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/drawdb/latest/scripts/upgrade.sh b/apps/drawdb/latest/scripts/upgrade.sh new file mode 100755 index 000000000..9879df4c3 --- /dev/null +++ b/apps/drawdb/latest/scripts/upgrade.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -euo pipefail +exit 0 diff --git a/apps/drawdb/logo-LICENSE.txt b/apps/drawdb/logo-LICENSE.txt new file mode 100644 index 000000000..b0a24f6d0 --- /dev/null +++ b/apps/drawdb/logo-LICENSE.txt @@ -0,0 +1,4 @@ +Source: https://github.com/drawdb-io/drawdb/blob/8f4fe7895224123f2465422fcaa2ee2337fd1e4c/src/assets/icon-dark.png +License: AGPL-3.0-only +License text: https://github.com/drawdb-io/drawdb/blob/8f4fe7895224123f2465422fcaa2ee2337fd1e4c/LICENSE +The submitted PNG is a resized and optimized rendering of the upstream icon. diff --git a/apps/drawdb/logo.png b/apps/drawdb/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f797d79188822616022f70242b6dbe11f1894b50 GIT binary patch literal 3665 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 literal 0 HcmV?d00001