资讯动态

用 1Panel 应用商店一键部署 DBX:15MB 轻量级数据库客户端自托管指南

发布时间:2026/9/20 12:42:35 来源:尧图企业网站定制
用 1Panel 应用商店一键部署 DBX15MB 轻量级数据库客户端自托管指南【免费下载链接】dbx15MB轻量级跨平台数据库客户端、数据库管理工具。支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB、ClickHouse、SQL Server 等。15MB, lightweight, cross-platform database client. Supports MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, ClickHouse, SQL Server and more.项目地址: https://gitcode.com/t8y2/dbxDBX 是一款 15MB 体积的轻量级跨平台数据库客户端与数据库管理工具除桌面版外还提供了开箱即用的 Docker 自托管形态dbx-web。本文以仓库中面向 1Panel 应用商店的部署清单deploy/1panel/README.md、deploy/1panel/data.yml、deploy/1panel/latest/docker-compose.yml为核心完整讲解如何在 1Panel 上通过应用商店一键部署 DBX、端口与访问密码两个配置项的语义、数据持久化机制以及镜像内部各环境变量背后的实现逻辑让你既能快速上手部署也能看懂容器内部实际发生了什么。一、DBX 是什么一份快速背景DBX 的定位是一款同时面向桌面与 Docker 自托管的数据库客户端。官方文档的自我描述是25 databases in 15 MB. Desktop Docker self-hosting, with built-in AI assistant.它支持的主流数据库包括MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB、ClickHouse、SQL Server、Oracle、Elasticsearch、MariaDB、TiDB、OceanBase、openGauss、GaussDB、KingbaseES 等 25 种以上。核心功能覆盖SQL 编辑器语法高亮、自动补全autocomplete与格式化AI SQL 助手可对接 Claude、OpenAI 或任何 OpenAI 兼容的 API 端点虚拟滚动数据网格virtual-scrolled data grid支持单元格内联编辑ER 图、Schema 对比schema diff、执行计划explain plan、字段血缘field lineage数据导入/导出CSV、Excel、JSON、ParquetRedis 键浏览器与 MongoDB 文档 CRUDSSH 隧道、暗色模式、i18n简体中文与英文。在仓库中桌面版运行于apps/desktopVue TypeScript而 Docker 自托管形态由 Rust 编写的 Web 服务dbx-webcrates/dbx-web承载它把前端静态资源与后端能力打包进同一个容器进程这正是 1Panel 应用商店部署方案的载体。二、1Panel 应用商店元数据DBX 是如何上架的1Panel 是一款流行的 Linux 服务器运维管理面板其应用商店通过data.yml描述每个应用。DBX 在仓库中提供了两份商店元数据根目录版本deploy/1panel/data.ymllatest版本带表单字段的安装向导deploy/1panel/latest/data.yml。2.1 应用基本信息根目录 data.ymlname: DBX tags: - 工具 title: 轻量级数据库管理工具 description: 轻量级数据库管理工具支持 25 种数据库 additionalProperties: key: dbx name: DBX tags: - Tool shortDescZh: 轻量级数据库管理工具支持 25 种数据库 shortDescEn: Lightweight database manager supporting 25 databases description: en: Lightweight database manager supporting 25 databases zh: 轻量级数据库管理工具支持 25 种数据库 type: tool crossVersionUpdate: true limit: 0 recommend: 0 website: https://github.com/t8y2/dbx github: https://github.com/t8y2/dbx document: https://github.com/t8y2/dbx#readme architectures: - amd64各字段含义如下字段说明name/title/description应用商店中显示的名称与简介中文additionalProperties.key应用唯一标识为dbx用于商店内索引与安装实例命名shortDescZh/shortDescEn中英文短描述出现在卡片列表additionalProperties.type应用类型值为tool工具类crossVersionUpdate是否支持跨大版本升级这里为truelimit/recommend均为 0表示不限制、不特别推荐architectures支持的 CPU 架构当前为amd64注意website、github、document字段指向的外部地址仅作为商店内展示链接architectures目前仅声明了amd64意味着该商店条目默认面向 x86_64 服务器安装。2.2 安装表单字段latest/data.ymllatest目录下的版本在安装向导中暴露了两个可配置项安装时 1Panel 会把它们转换为环境变量注入容器additionalProperties: formFields: - default: 4224 edit: true envKey: PANEL_APP_PORT_HTTP labelZh: 端口 labelEn: Port label: zh: 端口 en: Port required: true rule: paramPort type: number - default: dbx_password edit: true envKey: PANEL_DB_PASSWORD labelZh: 访问密码 labelEn: Access Password label: zh: 访问密码 en: Access Password required: true rule: paramComplexity type: password random: true两个字段的语义表单字段环境变量默认值校验规则说明端口PortPANEL_APP_PORT_HTTP4224paramPort宿主机映射端口对应容器内 DBX Web 默认监听端口 4224访问密码Access PasswordPANEL_DB_PASSWORDdbx_passwordparamComplexity复杂度校验random: true表示安装时可随机生成首次访问 DBX Web 的登录密码通过DBX_PASSWORD注入容器其中type: password会让 1Panel 在安装表单里以密码输入框呈现random: true支持一键生成强密码避免沿用默认弱口令。三、docker-compose 部署清单逐行拆解deploy/1panel/latest/docker-compose.yml 是 1Panel 实际执行的编排文件services: dbx: image: t8y2/dbx:latest container_name: ${CONTAINER_NAME} ports: - ${PANEL_APP_PORT_HTTP}:4224 environment: - DBX_PASSWORD${PANEL_DB_PASSWORD} volumes: - ./data:/app/data restart: unless-stopped networks: - 1panel-network labels: createdBy: Apps networks: 1panel-network: external: true逐项说明image: t8y2/dbx:latest使用官方镜像的最新标签。该镜像由仓库根目录的 deploy/Dockerfile 多阶段构建产出详见下一节。container_name: ${CONTAINER_NAME}容器名由 1Panel 安装时填充。ports: ${PANEL_APP_PORT_HTTP}:4224将宿主机上你在表单中填写的端口映射到容器内的 4224。4224 正是dbx-web的默认监听端口源码中unwrap_or(4224)见 crates/dbx-web/src/main.rs。environment: DBX_PASSWORD${PANEL_DB_PASSWORD}把表单里设置的访问密码以环境变量DBX_PASSWORD传入容器。dbx-web启动时会用 Argon2 对明文密码加盐哈希后作为会话校验凭据见 crates/dbx-web/src/auth.rs。volumes: ./data:/app/data将宿主机相对路径./data1Panel 应用安装目录下挂载为容器内/app/data用于持久化dbx-web的配置与数据见第五节。restart: unless-stopped除手动停止外自动重启保证服务器重启后 DBX 自动恢复。networks: 1panel-network (external: true)接入 1Panel 预置的外部网络使 DBX 可与同网络内的其他应用如 MySQL、Redis 容器互相访问便于在 UI 中直接连接同机数据库容器。四、镜像内部t8y2/dbx 是怎么构建出来的仓库根目录的 deploy/Dockerfile 展示了t8y2/dbx镜像的完整构建链采用三个阶段前端构建阶段node:22-slim pnpm安装依赖后执行pnpm build产物输出到/app/dist。构建过程还会运行scripts/sync-connection-types.mjs读取plugins/connection-types与plugins/dialects在构建期重新生成数据库清单与 TypeScript 类型。Rust 后端交叉编译阶段rust:1-bookworm cargo-zigbuild为amd64/arm64交叉编译dbx-web二进制先预编译依赖、再拷贝真实源码增量编译产物复制到/out/linux/$TARGETARCH/。dbx-sql与dbx-types的 build.rs 会内嵌plugins/dialects与plugins/connection-types缺目录会导致编译脚本 panic——这也是构建期必须拷贝这两份插件的原因。最终运行镜像debian:bookworm-slim安装ca-certificates、fontconfig、fonts-dejavu-core、libfreetype6、libssl3以及openjdk-17-jre-headless拷贝dbx-web到/usr/local/bin/前端产物到/app/static声明运行期环境变量与端口ENV DBX_STATIC_DIR/app/static ENV DBX_DATA_DIR/app/data ENV DBX_JAVA_BIN/usr/bin/java EXPOSE 4224 CMD [dbx-web]可以看到容器内默认配置了三个关键环境变量静态资源目录DBX_STATIC_DIR、数据目录DBX_DATA_DIR、以及 JDBC 外部驱动所需的 Java 可执行文件路径DBX_JAVA_BIN。安装openjdk-17-jre-headless的目的正是为了让容器内的dbx-web能够通过DBX_JAVA_BIN找到 Java 运行时从而驱动基于 JDBC 的数据库插件在crates/dbx-core/src/connection/jdbc.rs中JDBC 解析器会检查DBX_JAVA_BIN是否存在缺失时返回错误。五、数据持久化与密码安全两个配置项背后的实现5.1 数据都存到哪里dbx-web的数据目录解析逻辑位于 crates/dbx-web/src/main.rs优先读取DBX_DATA_DIR环境变量未设置时才回退到$HOME/.dbx-web。1Panel 部署清单里通过./data:/app/data挂载恰好与镜像内ENV DBX_DATA_DIR/app/data对应——因此你的连接配置、历史记录、密码哈希等全部持久化在宿主机应用目录的data/文件夹中即使容器重建也不会丢失。数据落盘形式主存储为 SQLite 数据库文件data/dbx.db启动时由Storage::open打开启动时还会执行migrate_from_json将旧版 JSON 数据迁移进 SQLite插件如外部 dialect目录为data/plugins/dialectsdbx-web会扫描加载并启动热重载监听见 crates/dbx-web/src/main.rs。5.2 密码是怎么被保护的启动时的密码优先级逻辑crates/dbx-web/src/main.rs若设置DBX_DISABLE_PASSWORD取值为1/true/yes/on之一则完全关闭密码保护——注意 1Panel 部署清单并没有设置该变量因此默认启用了密码否则若设置了DBX_PASSWORD则用 Argon2随机盐对明文密码做哈希得到密码哈希都没有时回退读取数据库中已保存的密码哈希。登录流程上crates/dbx-web/src/auth.rs登录接口对输入密码做 Argon2 校验并内置了暴力破解防护——连续失败 5 次MAX_ATTEMPTS 5会锁定 60 秒LOCKOUT_SECS 60。也就是说1Panel 安装向导里填写的访问密码并不是明文存储在容器里的而是被哈希后用于会话认证且带失败锁定机制这比裸奔的弱口令方案安全得多。安全提示安装时建议使用 1Panel 的“随机生成”功能生成强密码random: true不要保留默认值dbx_password。5.3 端口与反向代理的衔接默认容器监听0.0.0.0:4224crates/dbx-web/src/main.rs也支持DBX_PORT环境变量覆盖。如果你在 1Panel 中为 DBX 配置反向代理如绑定域名、加 HTTPS只需将代理目标指向宿主机映射端口即表单中的端口同时注意DBX_PUBLIC_BASE_PATH可用于部署在子路径context path下静态资源挂载逻辑会随之调整见mount_public_base_path相关代码。六、快速开始3 步完成部署在 1Panel 上部署 DBX 的最小路径打开应用商店搜索“DBX”选择安装确认架构为 amd64 的服务器环境。填写安装表单端口默认4224建议改为不冲突的高位端口访问密码建议点击随机生成并妥善保存。点击确认。1Panel 会自动拉取t8y2/dbx:latest镜像、创建容器并接入1panel-network。安装完成后通过http://服务器IP:端口访问输入设置的密码即可登录。登录后即可在 Web UI 中新建连接直接使用172.x.x.x之类的容器网关地址连接同网络内的 MySQL/PostgreSQL/Redis 等容器或填写公网数据库地址SQL 编辑器、AI 助手、数据导入导出等桌面版能力在 Web 版中同样可用。七、常见问题与排查忘记访问密码由于密码哈希持久化在data/dbx.db可进入容器执行带DBX_PASSWORD的环境变量重启覆盖数据库中的旧哈希或直接删除data目录重新初始化会同时丢失连接配置谨慎操作。端口冲突修改表单端口后重新部署即可容器内端口固定为 4224无需改动。需要连接本机数据库容器确保目标数据库容器也加入了1panel-network1Panel 安装的数据库应用默认如此然后在 DBX 中用容器名或网关 IP 连接。更换到其他架构当前商店条目architectures仅声明amd64如需 arm64可参考 Dockerfile 中已实现的 arm64 交叉编译支持自行构建镜像。八、参考资料1Panel 部署清单与元数据deploy/1panel/README.md、deploy/1panel/data.yml、deploy/1panel/latest/data.yml、deploy/1panel/latest/docker-compose.yml镜像构建定义deploy/DockerfileWeb 服务入口与配置解析crates/dbx-web/src/main.rs登录认证与防爆破实现crates/dbx-web/src/auth.rsJDBC 外部驱动与 Java 运行时解析crates/dbx-core/src/connection/jdbc.rs【免费下载链接】dbx15MB轻量级跨平台数据库客户端、数据库管理工具。支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB、ClickHouse、SQL Server 等。15MB, lightweight, cross-platform database client. Supports MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, ClickHouse, SQL Server and more.项目地址: https://gitcode.com/t8y2/dbx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价