把登记表接成在线表单,数据不能只在第一次打开时可见。本篇用Baserow导入2条模拟借用记录,通过Form新增第3条,然后停止并重建容器,回到同一张表核对编号与字段值。重点是固定项目、命名卷和实际新增数据的连续性。以下为官方资料整理的参考配置,未运行Docker、导入CSV或提交表单实测。
一、先确定要保存的应用数据
Baserow适合搭建设备登记、活动报名和内部需求收集等小型演示。Grid管理视图与Form收集视图共用同一张表,普通Form每次提交新增记录,审批、设备冲突和重复申请规则仍需另行设计。
本例采用2.4.1的all-in-one容器,已经包含应用、PostgreSQL、Redis和Caddy,支持Linux amd64/arm64。/baserow/data保存内置数据库、文件和相关配置;只保留一份CSV,不能当作保留了整个实例。
部署主机需有Docker Engine、Compose插件、curl及拉取镜像的网络和足够资源。先检查:
docker version
docker compose version
docker compose ls --all
docker volume ls --filter name=baserow-demo_baserow_data
工具检查失败先处理服务、连接或权限。若已有baserow-demo项目,包括停止中的实例,先停下核归属,不覆盖旧配置。单容器含多个服务,不把能启动容器当作已具备生产容量。
同名项目移除后,数据卷可能仍在。若卷列表还有baserow-demo_baserow_data,先核清是否属于旧实例;不要为了凑新环境删除旧卷,也不要直接把它接到这次表单演示。
二、目录、项目名和卷保持一致
创建新目录;如果已存在则停止,不覆盖原文件:
mkdir "$HOME/baserow-demo" && cd "$HOME/baserow-demo"
在该目录保存完整compose.yaml:
name: baserow-demo
services:
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-stopped
volumes:
baserow_data: {
}
这里用显式项目名,不依靠目录名生成身份。另选演示目录时仍须确认项目名未被使用,不能只换目录就连接同名旧卷。后续重建始终使用这份配置。
BASEROW_PUBLIC_URL与浏览器入口一致,当前只监听主机回环。先完成下一节启动与健康检查,再打开管理页。
三、服务健康后再建立业务数据
先在部署目录校验:
docker compose config --quiet
无报错后才拉取;校验失败按字段与缩进修正:
docker compose pull
拉取失败先处理网络、镜像路径或架构等具体错误,不连续执行启动。成功后运行:
docker compose up -d
docker compose ps
docker compose logs --tail=100 baserow
初始化期间观察状态与日志。服务正常后可做即时后端检查:
docker compose exec -T baserow /baserow.sh backend-cmd backend-healthcheck
curl -I http://localhost:8080/
命令应正常结束,HTTP应有响应。持续重启、非零退出或资源报错先处理日志原因,不删除卷重新初始化。健康状态只说明服务层检查,后面仍要导入、提交并找到新行。
若部署在云主机,从电脑另开终端,替换实际用户名和地址:
ssh -N -L 8080:127.0.0.1:8080 用户名@主机地址
保持隧道打开,电脑浏览器访问http://localhost:8080。8080有冲突先处理占用,不任意换URL却留下旧PUBLIC_URL。此地址不直接成为同事可用的团队服务地址。
四、先导入两条可比对的种子数据
在浏览器注册本实例账号、设密码并进入演示工作区。点+ Add new → Database,命名“设备登记演示”,点Create。新库可能有默认表,接下来另建的“设备借用登记”才是验收对象。未配置SMTP,不声称邀请或邮件验证已完成。
在打开浏览器的电脑创建UTF-8 CSV;Linux/macOS终端执行,Windows也可用文本编辑器保存同样内容:
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并用YYYY-MM-DD显示,“用途”转Long text。乱码或列数不对先修编码与分隔符,不能通过反复导入修复,避免新增多份种子数据。
五、由同表Form新增一行
在视图下拉选Form → Collaborative,命名“借用登记”,点Create view。前4个字段设为Required,用途留作说明;表单与Grid的底层表相同,不新建第二张收集表。
用Share form复制链接,在无痕窗口打开,填写DEMO-003 / 演示丙 / 投影仪A / 2026-10-31 / 演示培训并提交一次。无痕或预览操作也会真正写数据,不把它们当作不会计数的试填。
回到同一表Grid,清空搜索和筛选,按登记编号核对3行。排序可能改变位置;看不到先核表身份,不反复点提交。超过3行先查重复记录,普通Form不防重复,也不自动阻止同设备同日期申请。

持链接者无须工作区账号即可提交,不能据此认定申请人身份。本机或隧道地址只用于这次演示;正式开放需稳定地址、HTTPS与相应访问控制。
六、保留卷重建,验收原来的3行
先记下工作区、数据库、表名和3个演示编号。在原部署目录执行:
cd "$HOME/baserow-demo"
docker compose down
不加-v以保留命名卷。停止失败先处理报错;确认成功后再启动:
docker compose up -d
docker compose ps
等服务健康后重新登录同表,清除筛选,核3行、原日期和用途,不再提交或导入。若空库,先核显式项目名、卷挂载与配置是否改变;重新注册或导入会掩盖数据是否被正确接回的问题。
暂停可用docker compose stop。卷保留不等于有备份,CSV不包含用户、权限、上传文件等全部实例状态;正式使用需一致性备份与恢复验证,生产外置数据库、HTTPS和访问控制另行规划。此次只验证同一实例的2条导入加1条表单记录,重建后仍是原来的3条。