NocoDB:5分钟自建 Airtable 替代,在线表格数据库私有化部署
【免费下载链接】nocodb🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb
团队的数据还散落在网盘 Excel 里,谁改了哪一版永远说不清?NocoDB 是一个可以自建的在线表格数据库,把 Airtable 那套体验搬进你自己的服务器。一条 docker 命令之后,你会得到一个带网址的团队共享表格:能建表、能多人编辑、能直接生成 API,数据始终留在自己的机器上。
它解决什么问题
这一节帮你判断:NocoDB 是否对得上你手头那几张"该电子化"的表。
场景一:替代网盘里的共享 Excel。客户线索、报名登记、排班表,这类每周都要更新几十次的表,放网盘就容易出现版本覆盖。NocoDB 里每人有独立账号,编辑记录可追溯,支持按表设置谁只能看、谁能改。
场景二:团队内部 CMDB。把服务器清单、域名到期时间、证书位置记成一张表,字段类型可以选单行文本、日期、链接、附件,到期前用视图过滤一眼就能看到。
场景三:项目进度跟踪。同一张表可以切看板视图拖状态,也可以切日历视图看排期,不用为不同看法维护多份文件。
场景四:对外收集数据。把某张表发布成表单视图,把链接发给客户或用户填,数据直接落进你的表里,适合报名、反馈、申请这类场景。
跑起来
这一节走完,你的浏览器里就有个能登录的 NocoDB 了。
1. 准备:机器上装好 Docker 即可,不强制额外装数据库——不指定元数据库时,NocoDB 默认用 SQLite,文件就存在你挂载的数据目录里。
2. 启动:把下面这条命令里的 secret 换成任意一段 32 位以上的随机字符串(openssl rand -hex 16可生成):
docker run -d --name noco \ -v $(pwd)/nocodb:/usr/app/data \ -p 8080:8080 \ -e NC_AUTH_JWT_SECRET="换成你的随机字符串" \ nocodb/nocodb:latest注意第二行的挂载不能省,元数据库文件、上传的附件都存在这个目录里。
3. 成功标志:等十秒左右,访问http://localhost:8080,看到登录/初始化页面即成功;也可以在命令行确认健康接口:
curl http://localhost:8080/api/v1/health返回正常状态字段,说明服务已就绪。
第一次使用
这一节带你在 3 分钟内建出第一张能用的表。
- 打开
http://localhost:8080,首次进入会让你设置管理员账号,填邮箱和密码即可。 - 登录后新建一个 Workspace(工作区),再在里面点新建 Table(表)。
- 给每一列选类型:人名用 SingleLine Text,数量用 Number,备注用 Long Text,文件用 Attachment。
- 列定义好之后直接点单元格录入,第一行数据落地就算完成。
录入过程中可以试两件事:点工具栏的筛选按钮按条件过滤行;在表头切到 Kanban / Gallery / Calendar 视图,同一份数据立刻换一种看法。这些操作都不需要重启或改配置。
配置速查
这一节是环境变量速查表,部署前对照一遍即可,其余保持默认。
| 配置项 | 作用 | 默认值 | 建议值 |
|---|---|---|---|
NC_DB | 元数据库连接串(pg://、mysql://、sqlite://) | 未设置时用 SQLite,文件在数据目录 | 生产环境用 PostgreSQL,如pg://host.docker.internal:5432?u=root&p=密码&d=d1 |
NC_AUTH_JWT_SECRET | 登录会话签名密钥 | 未设置时自动生成并持久化 | 首次启动就显式指定,避免密钥随数据卷走丢 |
NC_PORT | 服务监听端口 | 8080 | 一般不动,冲突时改容器-p映射即可 |
NC_SITE_URL | 对外通知、邮件里的访问地址 | 未设置 | 部署到公网域名后务必设置,否则邮件链接点不开 |
NC_DASHBOARD_URL | 仪表盘路径 | / | 用子路径访问时改成对应路径 |
踩坑记录
这一节整理 4 个高频问题,按"现象 → 原因 → 解法"对照排查。
| 现象 | 原因 | 解法 |
|---|---|---|
| 容器删了重建,所有表没了 | 没挂载数据卷,SQLite 文件随容器丢失 | 保留-v $(pwd)/nocodb:/usr/app/data,并定期备份该目录 |
| 提示 8080 端口被占用 | 本机已有其他服务监听 8080 | 启动参数改成-p 9090:8080,浏览器访问 9090 |
| SQLite 演示没问题,多用户并发变慢 | 单文件数据库写锁竞争,撑不住并发 | 迁移到 PostgreSQL,启动时加:-e NC_DB="pg://host.docker.internal:5432?u=root&p=密码&d=d1" |
| 邀请邮件、通知里的链接打不开 | 没设NC_SITE_URL,系统用容器内网地址拼接链接 | 设置NC_SITE_URL为外网可访问的完整地址 |
仓库里还有一份带健康检查的现成模板,PostgreSQL + Redis + 独立 worker,适合直接改参数上线,见 docker-compose/examples/quickstart-demo/。
进阶方向
部署稳定之后,可以沿这三个方向扩展。
- REST API 与 SDK:每张表自动生成 CRUD 接口,配合 packages/nocodb-sdk/ 可以在自己的系统里读写数据,适合做业务后端。
- 扩展与 Webhook:通过 Webhook 把数据变更推给外部系统,仓库 packages/nc-gui/extensions/ 下还有数据导出类扩展源码可参考。
- 前端二次开发:整个界面是独立的 Nuxt 项目,位于 packages/nc-gui/,想做主题定制或加自定义视图,从这里入手。
最后
一句话收束:NocoDB 的价值在于"表、视图、权限、API"四件套全部跑在你自己的机器上。现在就做两件事:用上面的命令起一个容器,把你手里最乱的那张共享 Excel 迁成第一张表。
【免费下载链接】nocodb🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考