Docker部署Baserow:把Excel登记表接成在线表单
- 2026-11-07 07:20:20
设备借用登记还在来回传Excel,可以把同一份数据接成两个入口:管理员看表格,经办人填表单。本篇用Baserow导入两条模拟记录,再提交一条新登记,回主表核对3条数据,并检查容器重建后是否保留。
下面是依据2.4.1官方资料整理的参考配置,适合一台64位Docker主机做小规模演示;没有运行实测。先完成本机使用,再决定是否给团队开放访问。
一、一张表,分开录入和管理
Baserow把数据放在表里,Grid是管理视图,Form是收集新记录的入口,两者使用同一张底层表。设备登记、活动报名、内部需求收集都能采用这种结构,不必先开发一个完整后台。
管理员可以在Grid修改演示记录,填表人通过Form新增申请,不需要直接编辑已有数据。把收集入口和管理入口分开,才是此示例要解决的交接问题;是否接受申请,仍由负责人员另行处理。
本例只用基础表格、CSV导入和Form,不需要AI服务、独立模型或高级角色权限。它交付的是借用登记,不会自动审批、锁定库存或阻止同一设备被重复申请。新建表单也不等于建立了员工身份认证。

二、创建独立目录和完整Compose
在部署主机执行。需要可用的Docker、Compose插件,以及拉取镜像的网络和足够磁盘空间。镜像支持Linux amd64和arm64;本例采用包含应用、PostgreSQL、Redis及Caddy的单容器方案,不把“一个容器”理解为只有一个轻量进程。
先在部署主机核对同名项目和历史卷:
docker compose ls --alldocker volume ls --filter name=baserow-demo_baserow_data包括停止中的项目;如果已有baserow-demo项目或精确同名卷,先停下核归属,另选未用项目名时同步改下方配置,不删除旧卷。新建目录;若已存在则停止,不覆盖旧文件,避免接回旧数据。
mkdir "$HOME/baserow-demo" && cd "$HOME/baserow-demo"在该目录新建compose.yaml,完整填入:
name: baserow-demoservices: baserow: image: docker.1ms.run/baserow/baserow:2.4.1 environment: BASEROW_PUBLIC_URL: http://localhost:8080 ports: - "127.0.0.1:8080:80" volumes: - baserow_data:/baserow/data restart: unless-stoppedvolumes: baserow_data:/baserow/data保存内置数据库、文件及相关配置。浏览器地址必须与BASEROW_PUBLIC_URL一致,不能一边写localhost,另一边用服务器IP访问。当前只绑定主机回环地址,不直接开放公网管理入口。
三、启动后,先核服务再登录
继续在部署目录执行:
docker compose config --quietdocker compose pull配置报错先改缩进或字段;拉取失败先看实际错误并检查网络、镜像路径和架构,不进入下一步。只有两项成功后再启动:
docker compose up -ddocker compose psdocker compose logs --tail=100 baserow首次启动需要初始化数据库。等服务进入健康状态、日志没有持续初始化错误,再做后端检查:
docker compose exec -T baserow /baserow.sh backend-cmd backend-healthcheck命令应正常结束;若非零退出、持续重启或提示资源不足,先处理日志中的原因。不要为重试初始化删除数据卷,也不要用反复导入CSV掩盖服务异常。
部署在自己的电脑时,浏览器打开http://localhost:8080。如果部署在云主机,在电脑另开终端执行下面命令,先把USER@SERVER_IP替换为实际SSH账号及主机地址:
ssh -N -L 8080:127.0.0.1:8080 USER@SERVER_IP保持隧道开启,在电脑浏览器访问同一localhost地址。若本地8080已占用,先解决占用;不要随意换浏览器端口而保留旧公开地址。
四、导入两条演示记录
在浏览器中注册本实例账号并设置密码,进入演示工作区,点+ Add new,选Database,命名“设备登记演示”并点Create。新库可能已有默认表,后续另建“设备借用登记”表,不把默认表算进验收。账号属于这台实例,不是访问Baserow云服务;本文未配置SMTP,不声称邮件邀请或验证已完成。
在打开浏览器的电脑上创建borrow-demo.csv。Linux/macOS终端可执行;Windows也可用文本编辑器按UTF-8保存同样内容:
cat > "$HOME/borrow-demo.csv" <<'CSV'登记编号,申请人,设备名称,使用日期,用途DEMO-001,演示甲,投影仪A,2026-10-29,演示会议DEMO-002,演示乙,测试手机B,2026-10-30,演示联调CSV所有人名、设备和用途都是虚构演示。打开数据库,点+ New table,表名填“设备借用登记”,选Import CSV file并选择刚才的文件;确认首行为表头,预览应是5列、2条记录,再点Add table。
导入字段初始为文本:前3列保持单行文本,把“使用日期”转换为Date并按年-月-日显示,把“用途”改为长文本,再核对值是否保留。乱码先修正CSV编码,列数不对先检查分隔符,不把错误导入当成已有合格数据。
五、提交一次表单,回主表看3条
在表格左上视图下拉菜单选择Form,使用Collaborative类型,命名“借用登记”,点Create view。将登记编号、申请人、设备名称和使用日期设为Required,用途保留为说明项。
点Share form复制系统生成的链接,在本机浏览器无痕窗口打开,填写:DEMO-003 / 演示丙 / 投影仪A / 2026-10-31 / 演示培训,提交一次。无痕窗口用于按填表人视角检查,不会把一次提交变成不写数据的预览。
回到同表Grid视图,应找到3条记录,核对新增行的编号、设备、日期和用途。看不到时先清除搜索及筛选,再检查是否进入同一个数据库和表;排序可能改变位置,不能只找最后一行。超过3条则核是否重复点击,普通Form不会自动去重。
持有表单链接的人可提交,不需要工作区账号;本例地址只对本机或已建隧道的电脑可达,不能直接发给同事当成团队入口。正式共享要另配稳定访问地址、HTTPS和相应访问控制,再检查实际权限。
六、重建后,核对同一份数据
先记下工作区、表名和3个演示编号。在部署目录停止并移除当前容器:
docker compose down这里不加-v,保留命名卷。只有停止成功后再启动:
docker compose up -ddocker compose ps服务健康后重新登录,打开同表、清除筛选,核对仍有3条及对应字段值;不再提交第二次表单。若出现空库,先查项目名、卷挂载和实际配置,不先删卷或重建账号。
暂停演示可执行docker compose stop。卷保留不等于备份,CSV导出也不包含全部实例配置和上传文件;正式使用前要做一致性备份并演练恢复。单容器示例不代表生产高可用部署,当前验收目标始终是:导入2条、表单新增1条、重建后核对同一份3条数据。