首页
/ NocoDB 自托管部署完全指南:Docker(SQLite/PostgreSQL)、Auto-Upstall 一键安装与二进制快速验证

NocoDB 自托管部署完全指南:Docker(SQLite/PostgreSQL)、Auto-Upstall 一键安装与二进制快速验证

2026-09-04 23:16:53作者:裘旻烁

本文基于 NocoDB 仓库中的官方印地语版 README(hindi.md)展开,系统讲解 NocoDB 的三种自托管部署路径——Docker + SQLite、Docker + PostgreSQL、Auto-Upstall 自动化安装脚本,并逐条解析 NC_DBNC_AUTH_JWT_SECRET 等关键环境变量背后的源码实现。读完本文,你可以独立完成本地快速体验到生产级(含自动 SSL)的 NocoDB 部署,并理解每个配置项在 NcConfig 配置解析层中的真实作用。

一、文档定位:这是一份什么文档

hindi.md 是 NocoDB 项目 README 的印地语本地化版本(与 languages/README.md 索引页联动,提供 中文日语 等多语种入口)。它继承了主 README 的全部核心内容,可概括为五个板块:

板块 核心内容
安装 Docker + SQLite、Docker + PostgreSQL、Auto-Upstall 一键脚本、多平台二进制
访问入口 本地部署后访问 http://localhost:8080/dashboard
功能特性 电子表格界面、视图/共享/权限、App Store 集成、REST API 与 SDK
项目愿景 开源 Airtable 替代品的定位与使命
许可协议 AGPLv3(见 LICENSE.md

下文中文译文均基于该文档原文,所有命令均可直接复制执行。

二、安装方式一:Docker + SQLite(最简本地体验)

文档给出的最小部署命令只有一条:

docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  nocodb/nocodb:latest

逐参数解读:

  • -v "$(pwd)"/nocodb:/usr/app/data/:将当前目录下的 nocodb/ 挂载为容器内元数据库(meta DB)存储目录。不指定 NC_DB 时,NocoDB 默认使用 SQLite 存储元数据。这一点可以从源码确认:NcConfig 类初始化时 meta.db 的默认值即 client: DriverClient.SQLITEfilename: 'noco.db',且 metaDbCreateIfNotExist() 会在启动时自动创建数据库文件(见 NcConfig.ts 第 155-180 行)。
  • -p 8080:8080:默认服务端口为 8080,与源码中 ncConfig.port = +(port ?? 8080) 的默认值一致(NcConfig.ts 第 75 行)。
  • 容器内的 getToolDir()(数据目录解析逻辑)优先读取 NC_APP_DATA_DIR,其次 NC_TOOL_DIR,最后回退到当前工作目录(见 helpers.ts 第 30-34 行),官方镜像将二者配置为 /usr/app/data/,因此挂载点即数据落盘位置。

启动后浏览器访问 http://localhost:8080/dashboard 即可注册账号、创建 Base(电子表格)。

三、安装方式二:Docker + PostgreSQL(生产推荐)

文档给出了连接外部 PostgreSQL 的完整命令:

docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  -e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
  -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
  nocodb/nocodb:latest

3.1 NC_DB:元数据库连接串

NC_DB 决定 NocoDB 的元数据(工作区、Base、表结构、权限等)存储在哪个数据库。其解析链路为:

  1. NcConfig.createByEnv() 读取 process.env.NC_DB
  2. 传入 metaUrlToDbConfig() 解析:协议部分(pg:mysql:sqlite3: 等)映射为驱动客户端,?u=...&p=...&d=... 分别对应 user、password、database(见 helpers.ts 第 224-340 行)。

因此 pg://host.docker.internal:5432?u=root&p=password&d=d1 的含义是:通过 host.docker.internal(Docker 中指向宿主机)访问 5432 端口的 PostgreSQL,使用账号 root、密码 password、数据库 d1。注意示例中的凭证仅用于演示,生产环境务必替换为强口令,或改用 NC_DB_JSON / NC_DB_JSON_FILE 方式从 JSON 配置文件读取连接信息(NcConfig.ts 第 140-145 行 同时支持 NC_DBNC_DB_JSONNC_DB_JSON_FILE 三种来源)。

启动时 NocoDB 还会自动创建不存在的元数据库(createDatabaseIfNotExistsNcConfig.ts 第 155 行起),降低了手工建库的门槛。

3.2 NC_AUTH_JWT_SECRET:认证密钥

该环境变量被读入 NcConfig.auth.jwt.secretNcConfig.ts 第 146 行),用于签发/校验用户登录后的 JWT 令牌。除登录会话外,它还被用作元数据加密的密钥来源之一——例如版本升级器中的 0225002_ncDatasourceDecrypt.ts 在解密数据源凭据时直接读取 process.env.NC_AUTH_JWT_SECRET(见 version-upgrader/upgraders/0225002_ncDatasourceDecrypt.ts 第 63 行)。因此更换该密钥会导致既有会话与加密数据不可恢复,一旦生成应妥善保管且不要随意轮换。

四、Auto-Upstall:一条命令的生产级自动安装

文档中写道:“Auto-Upstall 是一个单一命令,用于在生产服务器上部署 NocoDB,它会在背后为你自动生成 docker-compose。”命令为:

bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)

该命令拉取的脚本正是仓库内的 docker-compose/1_Auto_Upstall/noco.sh。结合脚本源码,可以把它承诺的四件事落到具体实现上:

  1. 自动检查前置依赖check_prereqs() 会依次检测 Docker、Docker Compose V2 插件与 curl 是否可用,缺失时给出安装指引并要求重跑(noco.sh 第 116-138 行);脚本开头还设置了 umask 077,保证生成的 db.jsondocker.env 等含凭据文件从创建之初就仅属主可读写。
  2. 自动生成 PostgreSQL + Redis + Traefik 全家桶:脚本按选择生成 compose 文件。仓库中的 docker-compose/1_Auto_Upstall/docker-compose.yml 展示了这套栈的完整形态:nocodb 主服务(含 NC_DBNC_REDIS_URLNC_SITE_URLNC_DISABLE_MUX 环境变量与健康检查)、独立的 worker 服务(NC_WORKER_CONTAINER: 'true',承担异步任务而不暴露端口)、postgres:17.10redis:7 数据服务,全部通过 depends_onservice_healthy 条件保证启动顺序。生产路径下 Traefik 作为反向代理处理 80/443 端口。
  3. 重跑即升级:脚本以“幂等重入”为设计目标——再次执行时检测到已有的 docker-compose.yml 会提示是否覆盖(check_existing()noco.sh 第 157-166 行),拉取 nocodb/nocodb:latest 镜像即可平滑升级。
  4. 自动 SSL 申请与续期:脚本根据输入自动分派三种模式(determine_mode()noco.sh 第 181-192 行):留空或 localhost 走本地模式(8080 端口、无 SSL);输入合法域名走生产模式(Traefik + Let's Encrypt);输入公网 IP 则进入 production-ip 模式并明确提示“IP 无法签发 SSL 证书”。文档也强调:安装过程中需要以域名或子域名作为输入。

除上述能力外,脚本还支持选择内建(bundled)或外部(external)PostgreSQL/Redis(PG_MODEREDIS_MODE 状态变量,noco.sh 第 27-46 行),并对 SELinux Enforcing 环境自动为 bind mount 追加 :Z 标签(check_selinux()noco.sh 第 140-145 行)。仓库还提供了针对该安装流程的 Bats 测试集(docker-compose/1_Auto_Upstall/tests/)与更多 compose 示例,如 外部 PostgreSQL + Redis 示例Quickstart 演示示例,可作为手动编写 compose 文件的参考蓝本。

五、其他安装方式:多平台二进制快速验证

文档明确提示“二进制仅用于本地快速测试”,并给出各平台命令(完整继承自原文档):

安装方式 安装命令
MacOS arm64(二进制) curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb
MacOS x64(二进制) curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb
Linux arm64(二进制) curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb
Linux x64(二进制) curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb
Windows arm64(二进制) iwr http://get.nocodb.com/win-arm64.exe -OutFile Noco-win-arm64.exe && .\Noco-win-arm64.exe
Windows x64(二进制) iwr http://get.nocodb.com/win-x64.exe -OutFile Noco-win-x64.exe && .\Noco-win-x64.exe

本地运行后同样访问 http://localhost:8080/dashboard。二进制方式不启动任何容器,SQLite 元数据库直接落在当前工作目录(由 getToolDir() 回退到 process.cwd() 决定),适合数分钟级的功能体验;需要持久化与多用户协作时应切换为 Docker 方式。

六、部署后能做什么:核心功能与程序化接入

文档“功能”一节描述了部署完成后的能力面,结合仓库结构可以进一步印证:

  • 富电子表格界面:表/列/行的增删改查;列的排序、过滤、分组、隐藏;Grid(默认)、Gallery、Form、Kanban、Calendar 多种视图;Base/视图共享(公开或密码保护);ID、Link、Lookup、Rollup、SingleLineText、Attachment、Currency、Formula、User 等多种单元格类型;基于角色的细粒度访问控制。仓库中对应的实现规模可观,例如视图与权限相关的 composablesuseViewFilters.tsuseViewSorts.tsuseViewGroupBy.ts 等)以及 smartsheet 组件集
  • App Store 工作流自动化集成:分为三类——聊天(Slack、Discord、Mattermost 等)、邮件(AWS SES、SMTP、Mailersend 等)、存储(AWS S3、GCS、MinIO 等)。文档同时提示可查看官方文档的 App Store 章节获取详情。
  • 程序化访问:提供 REST APIs 与 NocoDB SDK 两种方式,请求通过 JWT(或社交登录)令牌签名认证。仓库内 nocodb-sdknocodb-sdk-v2 即为官方 SDK 源码,REST 接口清单可参考根目录的 APIs.json

七、关键环境变量速查

综合文档命令与源码,自托管部署时最常用的环境变量如下(默认值均可在 NcConfig.createByEnv() 中核对):

变量 作用 默认值/说明
NC_DB 元数据库连接串(pg://mysql://sqlite3:// 等) 缺省时回退为本地 SQLite noco.db
NC_DB_JSON / NC_DB_JSON_FILE 以 JSON 形式提供元数据库配置 优先级见 createByEnv() 入参
NC_AUTH_JWT_SECRET JWT 签名密钥,兼作数据源凭据加解密密钥 无默认,生产部署必须显式设置
NC_PORT 服务监听端口 8080
NC_SITE_URL 实例对外访问地址,用于邮件/分享链接等 未设置时为空
NC_WORKER_CONTAINER 将当前容器标记为独立 worker(处理异步任务、不暴露端口) compose 生产栈中为 true
NC_REDIS_URL Redis 连接地址,用于缓存与任务队列 未设置时使用内存缓存
NC_DASHBOARD_URL 仪表盘路由前缀 /
NC_DISABLE_MUX 禁用内嵌 mux 服务 compose 栈中为 true

八、许可与适用前提

该印地语 README 与全仓库一致声明:项目采用 AGPLv3 许可发布。适用前提方面需要注意三点:其一,Docker 方式要求宿主机已安装 Docker(Auto-Upstall 脚本会自检并指引安装);其二,NC_DB 指向外部 PostgreSQL 时该数据库需可由容器网络到达(示例使用 host.docker.internal 依赖 Docker Desktop 或 Docker 20.10+ 的该特性);其三,生产模式(自动 SSL)要求 80/443 端口空闲且输入为合法域名,输入公网 IP 时脚本会明确告知无法签发证书。

总结

这篇印地语版 README 虽然篇幅不长,但完整覆盖了 NocoDB 自托管的三条路径:SQLite 单容器快速起步、PostgreSQL 外部库生产部署、Auto-Upstall 一键全栈安装(Docker/Compose + PostgreSQL + Redis + Traefik + Let's Encrypt)。结合仓库源码可以看到,所有命令背后的行为——NC_DB 的 URL 解析(helpers.ts)、自动建库(NcConfig.ts)、安装脚本的三模式判定与幂等重入(noco.sh)——都有清晰的实现支撑。按本文顺序操作,你可以从一条 docker run 命令的本地体验,平滑过渡到带自动 SSL 的生产级部署。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
527
590
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
904
1.82 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
docsdocs
暂无描述
Markdown
889
5.78 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.52 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.33 K
1.45 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
981
502
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384