PassNAT LogoPassNAT

自建在线表格 NocoDB:飞牛 NAS Docker 部署,Airtable 的开源替代,配内网穿透在外面也能打开自己的表

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

NocoDB 是一个开源的在线表格,界面跟 Airtable、飞书多维表格是一类东西:一行就是一条记录,列可以设成文本、日期、下拉、勾选、附件。记账、追剧清单、买菜单子、设备台账,这种「用 Excel 有点重、用记事本又存不住结构」的东西,放进去正合适。

它跟在线服务最大的区别是:整个东西装在你自己的 NAS 上。不用注册谁的账号,表存在你自己的硬盘里,跟着 NAS 一起备份;也不存在哪天服务改规则、或者干脆停掉的问题。

部署上它很省事 —— 用 SQLite 的话一个容器就够,不用另外起数据库,编排文件统共九行,下面整段都给出来了。

项目地址:nocodb/nocodb

部署安装

装在自己的 NAS 上之后,它默认只有家里的网络能打开。可表格这东西恰恰是在外面才要查 —— 在超市想看一眼买菜单子,出差想改一下台账,只能在家开的表等于没建。家里没有公网 IP 的话,可以用 帕斯内网穿透 把它开放到公网,飞牛的应用中心里就能直接装到插件,不用另外找工具。具体的操作步骤可以参考 这份全平台上手指南。下面这套流程在飞牛 NAS 上从头到尾走一遍。

打开飞牛的 Docker 应用,切到上面的 Compose 标签,点新增项目,项目名填 nocodb。

路径这一栏点右边的文件夹图标,在自己的文件夹里新建一个空目录再选中它 —— 编排文件和后面所有的表数据都会放在这个目录里,重建项目也不丢。

来源选「创建 docker-compose 文件」,把下面这段整个贴进去:

1services:
2 nocodb:
3 image: nocodb/nocodb:latest
4 container_name: nocodb
5 restart: unless-stopped
6 ports:
7 - "3402:8080"
8 volumes:
9 - ./nocodb:/usr/app/data/
10

这段里要认三处:

第一行的 image 是镜像,用官方的 nocodb/nocodb 这个名字,不带版本号,跟着上游走就行,将来项目更新自动跟上。

ports 左边的 3402 是 NAS 上对外的端口,右边的 8080 是容器里的,**右边这个不要改**。3402 只要没被别的东西占着就行,被占了换一个,但后面建隧道填的端口要跟着一起改。

volumes 那一行是数据目录,把当前目录下的 nocodb 文件夹映射到容器里的 /usr/app/data/,NocoDB 的 SQLite 数据库文件就落在这儿。这一行不能省 —— 不映射的话容器一删表就全没了。

不用填任何环境变量。不写数据库配置它就默认用 SQLite,这也是单容器能跑起来的原因。

最后勾上「创建项目后立即启动」,点确认。镜像两百多兆,拉完会自己起来。起来之后在浏览器打开 http://你的NAS地址:3402 就能看到界面 (不用加 /dashboard 这段路径,它会自己跳回根地址)。

配上内网穿透,在外面也能打开

容器跑起来之后紧接着就把隧道建上,后面注册账号、建表这些事直接在公网地址上做,省得先在局域网配一遍、换到公网又要重来。

在飞牛的应用中心里搜 PassNAT 装上,打开插件,账号登一次。点创建隧道:名字随便起,协议选 TCP,本地地址那一栏留它默认的不要动,端口填 3402。

建好之后点开这条隧道的详情,把电源按一下,等状态转成运行中,面板上那一行就是分给你的公网地址,在外面用它打开就行。不想让它一直开着的话,随时把隧道的电源关掉,本地访问不受影响。

⚠ 隧道一通,第一件事是把管理员账号建上

NocoDB 刚装好的时候是没有账号的,打开就是注册页,而**第一个注册的人就是这个实例的管理员**。

这在局域网里无所谓,配上内网穿透之后就不一样了:隧道已经开着、管理员账号还没建的那段时间里,谁先打开这个地址谁就成了管理员。所以隧道一通就去把账号注册掉,别拖到明天。

这不是 NocoDB 特有的毛病 —— 「第一个访问的人是管理员」「默认开放注册」这类设定在自建应用里很常见,它们都默认你只在局域网里用。往公网放的时候,这类开关都要重新过一遍。

建一张表试试

注册完进来会让你先建一个 Base,可以理解成一个工作区,一个 Base 里放好几张表。

进去点加号建表,然后往右边加列:列名点一下就能改,列类型在下拉里选 —— 日期选 Date,状态这种固定几个值的选 Single Select,选完把选项一个一个填进去,还能给每个选项配颜色。

填数据就跟用表格一样,点进格子直接打字,**改完自己就存了,没有保存按钮**。

上面那一排可以按条件筛选、按某一列排序,同一张表还能建不同的视图 —— 比如网格看全部、画廊看图片、看板按状态分列,视图之间数据是同一份,只是看法不一样。

建完之后换台设备、用刚才那个公网地址打开,填过的东西都在。

本篇教程结束。