Docker 部署可视化数据库工具 undb

🌟 什么是 undb?

undb 是一款开源的、私有化优先的无代码数据库平台(No-Code Platform),常被视为 Airtable 的开源自托管替代方案。它不仅是一个美观的表格工具,还具备 BaaS(后端即服务) 的能力。

为什么选择 undb?

  • 私有化部署:数据完全掌握在自己手中,非常适合对隐私敏感的项目。

  • 现代技术栈:基于 BunSvelteSQLite 构建,运行速度极快且资源占用极低。

  • 开发者友好:支持自动生成 类型安全(Type-safe)的 API,你可以把它当作一个带 UI 界面的快速后台管理系统。

  • 多维度视图:提供表格(Grid)、看板(Kanban)、日历(Calendar)等多种数据展现形式。

🛠️ 部署步骤

1. 准备宿主机目录与文件

首先,在宿主机上创建存放数据的目录,并生成一个空的数据库文件。

# 创建自定义数据目录(例如 /opt/undb/data)
sudo mkdir -p /opt/undb/data

# 手动创建一个空的 sqlite 文件
sudo touch /opt/undb/data/undb.sqlite

# 关键步骤:赋予权限,确保 Docker 容器内的 node 用户有权读写
# 1000 通常是 node 镜像默认用户的 UID
sudo chown 1000:1000 /opt/undb/data/undb.sqlite

2. 使用 Docker Compose 部署

创建 docker-compose.yml 文件。这种方式最优雅,不需要进入容器手动执行 ln 命令。

version: '3.8'

services:
  undb:
    image: ghcr.io/undb-io/undb:latest
    container_name: undb
    restart: always
    ports:
      - "3721:3721"
    volumes:
      # 直接挂载单个文件,将宿主机文件映射到容器默认寻找的路径
      - /opt/undb/data/undb.sqlite:/usr/src/app/undb.sqlite
    environment:
      # 显式指定 Provider 为 sqlite
      - UNDB_DB_PROVIDER=sqlite
      - NODE_ENV=production

3. 启动容器

docker-compose.yml 所在目录运行:

docker-compose up -d

💡 小贴士

对于个人开发者或小团队来说,使用 Docker 部署 undb 是最快捷的方式。但默认情况下,它的数据库文件存储在容器内部,如果不进行特殊配置,容器一旦删除,你的数据也将烟消云散。

在使用 Docker 部署 undb 时,默认的数据库文件 undb.sqlite 通常位于容器内的 /usr/src/app 目录下。为了保证数据安全且易于备份,我们需要将其持久化到宿主机的自定义位置。

  • 备份:你现在只需要定期备份 /opt/undb/data/undb.sqlite 这一个文件即可。

  • 附件存储:如果你还需要自定义图片等附件的存储位置,可以关注环境变量 UNDB_STORAGE_LOCAL_PATH 并在 volumes 中挂载对应的目录。

发表评论