NocoDB 自部署:5 分钟拥有自己的无代码数据库
【免费下载链接】nocodb🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb
NocoDB 是一款开源的无代码数据库,自托管版的 Airtable 替代方案。一条 Docker 命令自部署,在浏览器里就能把 MySQL、PostgreSQL、SQLite 中已有的表变成带网格、看板、日历、表单视图的在线表格,协作和分享开箱即用。数据全程留在你自己的服务器上,适合不想把数据交给 SaaS 云的个人和小团队。
🚀 NocoDB 自部署最小路径:一条命令启动
这节解决拿到可用实例的问题。
用内置 SQLite 直接跑一个容器,事先不用准备任何数据库:
docker run -d --name noco \ -v "$(pwd)"/nocodb:/usr/app/data/ \ -p 8080:8080 \ nocodb/nocodb:latest注意两处:-v把本地nocodb/目录挂进容器/usr/app/data/,元数据和附件都存在这里,不挂载的话容器一重建数据全丢;8080是容器端口,被占用时只改冒号前的宿主机端口。
启动后打开http://localhost:8080/dashboard,第一个注册的账号就是管理员。在 dashboard 里新建项目,项目下添加一张 Base(Base 就是数据表)。建好表后默认进入 Grid 视图,批量录入和维护数据都在这里:
⚙️ NocoDB 生产配置:四个环境变量拍板
这节解决正式上线前该设哪些变量。
| 场景 | 配置项 | 为什么要配 |
|---|---|---|
| 元数据从 SQLite 换到 PostgreSQL | NC_DB | SQLite 是单文件存储,多人并发写入吃力,PG 扛得住 |
| 多人共用一个实例 | NC_AUTH_JWT_SECRET | 登录态签名密钥,必须固定,换了等于全员掉线 |
| 要发邮件通知、发分享链接 | NC_SITE_URL | 系统靠这个地址拼出对外 URL,不设就发不出去 |
| 多容器部署、要实时同步 | NC_REDIS_URL | 实时更新与缓存中转,redis://host:6379形式 |
NC_DB是pg://或mysql://开头的连接串,把元数据从 SQLite 搬进 PostgreSQL。仓库里带了含 PostgreSQL 和 Redis 的现成 compose,拷出来直接启动:
docker compose up -dcompose 文件在 docker-compose/examples/quickstart-demo/,正式使用前把文件里的示例密码换成自己的。其余NC_变量(附件存储、遥测开关等)统一在 utils/envs.ts 读取,按需查即可。
🗂️ NocoDB 接入已有数据:外部数据库进 Base
这节解决自有库怎么可视化。
新建 Base 时可以直接连已有数据源,把连接信息交给 NocoDB,它读取表结构,把每张表映射成可视化的 Base,数据不用搬家。
新表建好后先加字段,以团队任务表为例:
- “任务名”,SingleLineText
- “状态”,SingleSelect,选项设为 待办 / 进行中 / 完成
- “负责人”,User,从工作区成员里直接选
- “截止日期”,Date
字段类型还有 Number、Attachment、Rollup、Formula 等几十种,完整清单看视图组件目录 components/smartsheet/。
📊 NocoDB 视图怎么选:网格、看板、日历各管一摊
这节解决哪种视图适合哪种活。
Grid。默认视图,批量录入、筛选、排序的主战场。日常管理数据大多停留在这里。
Kanban。把某个 SingleSelect 字段设成分组维度,行就变成列里的卡片。卡片跨列一拖等于改状态,任务进度管理最合适。
Calendar。行按日期字段排进日历格子。排期、截止日期这类带时间维度的数据用它最直观。
🔐 NocoDB 分享与权限:三种分享口径
这节解决谁能看到什么。
Share Base / View。页面右上角分享,可选完全公开,也可加密码做私有分享。前者谁拿到链接谁进,后者只给圈内人。
Form 视图。建一个 Form 视图把链接发出去,没有账号的同事也能填表,却看不到整张表的其他内容。信息收集场景走这条。
🧯 NocoDB 故障排查:四个高发问题
这节解决部署后最容易撞上的坑。
- 容器重建后数据没了。原因:没挂数据卷。处置:补上
-v "$(pwd)"/nocodb:/usr/app/data/再重建。 - 8080 被占,页面打不开。原因:宿主机端口被其他服务用了。处置:映射改成
-p 9090:8080,用新端口访问。 - 每次重启都要重新登录。原因:
NC_AUTH_JWT_SECRET没固定,每次启动签名密钥都变。处置:设一个固定随机字符串。 - 外部打不开分享链接、收不到邮件。原因:
NC_SITE_URL未配置,系统拼不出对外 URL。处置:设为实例的公网地址。
🧭 NocoDB 选型速查:后端库和部署形态拍板
这节解决用哪套组合。
| 你的情况 | 推荐后端 | 部署形态 |
|---|---|---|
| 个人测试、人数很少 | SQLite(默认,零配置) | 单容器 |
| 小团队正式使用 | PostgreSQL | compose:NocoDB + PostgreSQL + Redis |
| 已有 MySQL / PG 数据源 | 直接连接,不自带库 | 单容器 |
| 高并发、要跑导入导出 worker | PostgreSQL + Redis | app 与 worker 分离,参考 deployment-worker.yaml |
原则一句话:SQLite 方便但不支持并发写入,多人协作就换 PostgreSQL。
✅ NocoDB 动手清单:部署完做三件事
- 导入:把手头一张 CSV 或 Excel 导入 Base,替换掉原来传来传去的共享表格
- 调用:生成一个 API token,调一次 REST 端点,SDK 在 packages/nocodb-sdk/
- 拖拽:把 Grid 切成 Kanban,拖三条任务看看板协作的效果
【免费下载链接】nocodb🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考