把现成数据库变成在线表格:NocoDB 自托管实操笔记
【免费下载链接】nocodb🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb
NocoDB 是一款免费、可自托管的开源 Airtable 替代品:把 SQLite、MySQL、PostgreSQL 等数据库接进来,它就变成一张整个团队都能用的在线表格。适合不想写 SQL、但要多人协作管数据的个人和小团队。
快速上手:一条 Docker 命令跑起来
前提是装好 Docker。执行下面这条命令即可:
docker run -d --name nocodb -v "$(pwd)"/nocodb:/usr/app/data/ -p 8080:8080 nocodb/nocodb:latest-v挂载了数据目录,容器删了重建数据还在,别漏掉这一段- 端口映射到 8080,浏览器打开
http://localhost:8080,注册第一个账号就能进后台
如果不想用内置 SQLite,而是想直接管已有的 PostgreSQL,再加一个环境变量:
-e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1"生产部署可以省事不少:仓库的 docker-compose/examples 里备好了几套配置,quickstart-demo 自带 Postgres 和 Redis,拷出来改个密码就能docker compose up -d;官方还有个 auto-upstall 脚本,一条命令装好 NocoDB、PostgreSQL、Redis 和 Traefik,自动配 SSL。
它能做什么
把表数据当电子表格操作
默认就是网格视图:增删表、改字段、排序、筛选、分组、隐藏列都在界面上点完。单元格类型很全,常用的有单行文本、多行文本、单选/多选、公式、查找(Lookup)、汇总(Rollup)、附件、货币、用户等。两张表之间可以建外键关联,Lookup 和 Rollup 字段会自动从关联表取数,相当于免写了 JOIN。
同一份数据换着姿势看
一张表可以同时挂多个视图,各自独立设置筛选和字段:
| 视图 | 适合干什么 |
|---|---|
| 表格 | 录入、批量编辑 |
| 看板 | 按状态分列拖卡片 |
| 日历 | 排期、里程碑 |
| 画廊 | 带图片的内容展示 |
| 表单 | 对外收集数据 |
| 时间线 | 按时间段看任务分布 |
表或视图还能直接分享出去,选公开,或加个密码保护成私有链接。
控制谁能动哪块数据
权限按角色发,粒度可以细到表、字段、行。给访客只开"看",给编辑开"改",敏感列直接对某些角色隐藏。视图分两种:协作视图大家都能调,锁定视图别人动不了你的筛选配置。
数据对外露出来
页面能读写的数据,程序也能读写:REST API 加 token(JWT 或社交登录)认证就行。仓库里自带 packages/nocodb-sdk/ 和 packages/nocodb-sdk-v2/ 两个客户端封装,写脚本同步数据不用手写请求。
三个真实用例
团队共享客户跟进表。以前销售各存各的 Excel,合不到一张表,月底对账全靠吼。用 NocoDB 建一张"客户"表,销售各自填行,负责人再开一个看板视图按阶段分组:卡片从"已联系"拖到"已成交"就是推进状态,负责人按地区一筛选,全组进度当场可见,不用再收周报。
项目排期一张日历看全。任务表里放开始、结束两个日期字段,打开日历视图,所有任务就铺在月份格子里。改了行的日期,日历马上跟着变;想把进度给客户看,生成一个带密码的只读链接发过去,对方不用注册账号。
给老 MySQL 库套个门面。公司运营库跑了几年,业务方每次看数都要提单等 DBA 跑 SQL。把 NocoDB 的NC_DB指向这个 MySQL,每张表自动变成一张网格。财务自己建筛选和分组拼"月度成本",IT 建一个视图锁定后发链接,双方都不用再互相提单。
进阶用法:三件最值的事
App Store 工作流。应用商店分三类集成:聊天(Slack、Discord、Mattermost)、邮件(AWS SES、SMTP、MailerSend)、存储(S3、GCS、Minio)。再配上 Webhook——表里记录一变更就能往群里推通知,"新订单提醒"这类需求不用自己写胶水代码。
API 进业务流程。表单视图收上来的数据,可以用 REST API 定时拉走存进数仓;反过来,上游系统改库,表格里的数字也跟着动。token 在账号设置里生成,权限跟你的角色走。
分享策略做细一点。对外用带密码的视图链接,对内用角色权限分表分列;只读视图发给协作方之前,先把自己要藏的计算列隐藏掉,这一步很多人会忘。
常见问题:你可能想问的
NocoDB 完全免费吗?什么协议?自托管免费可用,但注意它不是 MIT:仓库采用 Sustainable Use License,内部商用、个人和非商用都免费,对外再分发或商用授权有限制,签约前先看一遍协议原文。
支持哪些数据库?内置 SQLite、PostgreSQL、MySQL、SQL Server、Oracle、TiDB、YugabyteDB、CockroachDB、Greenplum、CitusDB、Vitess,也支持 Snowflake 和 Databricks。
没有 Docker 能跑吗?可以。macOS、Linux、Windows 都有官方二进制,curl一行下载后直接执行,适合本地快速验证(官方标注仅用于快速测试)。
手机上能用吗?Web 端响应式设计,手机和平板浏览器能正常用,没有独立 App。
界面有中文吗?有。界面语言覆盖中文(简体/繁体)、日语、韩语等四十余种,见 packages/nc-gui/lang/,后台设置里切换。
有中文文档吗?仓库自带中文 README,完整的自托管配置细节看官方文档站。
换数据库怎么办?数据本身存在你连的那个库里,NocoDB 的元数据(表结构定义、视图、用户)在挂载的/usr/app/data/目录里,备份这个目录再迁环境即可。
现在就动手
第一步:找台装了 Docker 的机器,跑上面那条docker run命令,打开 8080 注册账号,建一张表加几个字段,把流程走通一遍。然后拿一张你们团队正在用的表接进来试试,能跑通再考虑换 Postgres 上生产。
【免费下载链接】nocodb🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考