资讯动态

NocoDB 自托管实战指南:Docker 快速试用、Auto-upstall 一键生产部署与核心能力全解

发布时间:2026/9/6 17:48:32 来源:尧图企业网站定制
NocoDB 自托管实战指南Docker 快速试用、Auto-upstall 一键生产部署与核心能力全解【免费下载链接】nocodb A Free Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb本文基于 NocoDB 仓库中的孟加拉语版 READMEmarkdown/readme/languages/bengali.md即项目主 README 的本地化版本展开完整覆盖其核心内容三种部署路径Docker SQLite 快速试用、Docker PostgreSQL 生产部署、Auto-upstall 一键安装、六种平台的二进制快速试用方式以及富电子表格界面、应用商店与程序化访问三大核心能力并结合仓库中的安装脚本与后端配置解析源码帮你把每一条部署命令背后的机制讲透。NocoDB 是什么定位与设计初衷NocoDB 定位为免费在线创建数据库的最快、最简单方式是一个免费且可自托管self-hostable的 Airtable 替代品。原文档为什么我们做它一节给出了清晰的设计动机绝大多数互联网业务都依赖电子表格或数据库来支撑日常运营电子表格每天被超过十亿人协作使用而数据库作为更强力的计算工具其普及速度却远远落后。通过 SaaS 方式解决这一问题的尝试带来了严峻的访问控制、供应商锁定vendor lock-in、数据锁定data lock-in、价格突变等问题并让用户对平台未来走向失去掌控。基于此原文档明确了项目使命为世界上每一个互联网业务提供开源数据库最强大的无代码no-code接口——让强大计算工具的访问更加民主化并帮助互联网上数以亿计具备构建能力的用户向前迈进。这一使命也解释了 NocoDB 的架构选择元数据与业务数据分离、数据库可替换SQLite 到 PostgreSQL/MySQL 等均可、界面层与 API 层解耦从而天然避免数据锁定。注本文的主体素材来自孟加拉语版 README同目录下的 markdown/readme/languages/README.md 列出了全部 16 种语言的 README 翻译清单中文、法语、德语、印地语、西班牙语、土耳其语等。核心能力总览原文档特性ফিচারসমূহ一节将 NocoDB 的能力归纳为三大板块这里逐一说明。富电子表格界面基础操作对表Table、列Column、行Row的创建、读取、更新与删除字段操作排序、过滤、分组、隐藏/显示列多种视图类型网格Grid默认视图、画廊Gallery、表单Form、看板Kanban、日历Calendar视图权限类型协作视图Collaborative与锁定视图LockedBase/视图共享可公开共享也可私有共享密码保护丰富的单元格类型ID、Links、Lookup、Rollup、SingleLineText、Attachment、Currency、Formula、User 等基于角色的访问控制RBAC在多个层级提供细粒度权限控制。从前端源码结构看这些能力与packages/nc-gui中的组件组织高度对应packages/nc-gui/components/cell/约百个单元格组件文件对应各单元格类型、packages/nc-gui/components/smartsheet/表格主体逻辑、以及gridview/gallery/form等视图相关的 store 文件如useGridViewData.ts、useGalleryViewData.ts、useFormViewStore.ts印证了原文档所列视图与单元格类型并非营销描述而是有完整前端实现支撑。面向工作流自动化的应用商店原文档指出应用商店的集成主要分三类聊天ChatSlack、Discord、Mattermost 等邮件EmailAWS SES、SMTP、MailerSend 等存储StorageAWS S3、Google Cloud Storage、Minio 等。程序化访问NocoDB 为用户提供两种程序化操作方式请求可通过 TokenJWT 或 Social Auth完成鉴权REST APINocoDB SDK。仓库中对应实现清晰可见后端 API 文档由packages/nocodb/src/services/api-docs/生成含swaggerV2模板SDK 则独立成包如 packages/nocodb-sdk 与 packages/nocodb-sdk-v2另有集成脚手架 packages/nc-integration-scaffolder 用于编写自定义集成。部署方式一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目录挂载到容器数据目录/usr/app/data/SQLite 数据库文件与元数据都落在该目录实现数据持久化-p 8080:8080NocoDB 服务默认监听 8080 端口启动后访问http://localhost:8080/dashboard即可进入管理面板。从源码结构看8080 是后端服务的默认端口packages/nocodb/src/run/dockerRunPG.ts中的启动逻辑为server.listen(process.env.PORT || 8080, ...)即未设置PORT环境变量时一律落到 8080。部署方式二Docker PostgreSQL生产推荐原文档给出的 PostgreSQL 模式命令docker run -d \ --name noco \ -v $(pwd)/nocodb:/usr/app/data/ \ -p 8080:8080 \ -e NC_DBpg://host.docker.internal:5432?urootppassworddd1 \ -e NC_AUTH_JWT_SECRET569a1821-0a93-45e8-87ab-eb857f20a010 \ nocodb/nocodb:latest这里新增的两个环境变量值得展开NC_DB数据库连接串的解析NC_DB采用类 URL 格式pg://host:port?uuserppasswordddatabase其中参数含义示例值协议前缀数据库类型pg表示 PostgreSQLpg://host:port数据库地址host.docker.internal:5432u用户名rootp密码passwordd数据库名d1host.docker.internal是 Docker 官方提供的回环地址别名允许容器直接访问宿主机的服务——这正是外部已有 PostgreSQL、NocoDB 以容器方式接入的典型用法。后端对该变量的解析位置在 packages/nocodb/src/utils/nc-config/NcConfig.tsNocoDB 支持三种等价的元数据库配置方式metaUrl: process.env.NC_DB // 连接串本文用法 metaJson: process.env.NC_DB_JSON // 内联 JSON metaJsonFile: process.env.NC_DB_JSON_FILE // 指向 db.json 文件也就是说NC_DB连接串、NC_DB_JSON内联 JSON、NC_DB_JSON_FILE文件三种方式可互换。Auto-upstall 生成的生产环境即采用文件方式NC_DB_JSON_FILE/usr/app/data/db.json可参见 docker-compose/examples/external-postgres-and-redis/docker.env。NC_AUTH_JWT_SECRET鉴权与数据源加密的密钥该变量在后端有两处关键消费JWT 签名密钥NcConfig.ts 中secret: process.env.NC_AUTH_JWT_SECRET用于签发/校验用户会话与 API 访问令牌。固定一个稳定值可保证容器重启后令牌不被作废数据源加密密钥version-upgrader/upgraders/0225002_ncDatasourceDecrypt.ts 中let encryptionKey process.env.NC_AUTH_JWT_SECRET用于对已接入外部数据库的凭证信息做加解密。因此在 PostgreSQL 模式下显式指定该值如原文档示例中的 UUID是保证跨重启鉴权连续性与外部数据源凭证可恢复的关键实践。部署方式三Auto-upstall 一键生产安装原文档将 Auto-upstall 描述为在服务器上搭建生产级 NocoDB 的命令背后自动为你生成 docker-compose安装命令为bash (curl -sSL http://install.nocodb.com/noco.sh) (mktemp)原文档列出的四条核心职责结合仓库内同源代码 docker-compose/1_Auto_Upstall/noco.sh 可逐一印证自动安装前置依赖Docker、docker compose 等缺失时会检测并引导安装。脚本的check_prereqs会做系统/Docker/端口预检支持NOCO_SKIP_PREFLIGHT环境变量跳过预检以便重跑与测试自动生成 Docker Compose 生产栈包含 NocoDB 主服务、worker、PostgreSQL、Redis以及可选的 Traefik 网关重复执行即升级再次运行命令会把 NocoDB 升级到最新版本生成的目录内还提供update.sh执行docker compose pull up -d并清理旧镜像自动配置 SSL 并负责续期安装时需输入一个域名或子域名作为入口脚本据此接入 Lets Encrypt。脚本实际会问什么、生成什么依据安装脚本及其配套说明 docker-compose/1_Auto_Upstall/README.md交互式流程会询问提问默认值说明域名Domain探测到的公网 IP留空或localhost进入本地模式8080 端口、无 SSL合法主机名进入生产模式Traefik Lets EncryptIP 则进入 production-ip 模式80 端口、无 SSLPostgresBundled内置可选 Bundled 或 Existing已有实例后者会追问主机、端口、库名、用户、密码与 SSL 模式RedisBundled内置可选 Bundled 或 Existing提供 URLLets Encrypt 邮箱—仅生产模式询问脚本在./nocodb/下生成如下文件结构./nocodb/ ├── docker-compose.yml # nocodb worker (bundled db/redis) (可选 traefik) ├── docker.env # NC_DB_JSON_FILE、NC_REDIS_URL、NC_SECURE_ATTACHMENTS 等 ├── nocodb/db.json # knex 格式数据库连接支持内联自定义 CA ├── update.sh # docker compose pull up -d 镜像清理 └── .gitignore # 排除密钥与运行时数据几个生产安全细节值得注意均可从脚本源码确认生成的docker.env与db.json包含数据库凭证脚本通过umask 077从创建之初就保证文件仅属主可读而非事后chmod 600检测到 RHEL 系主机的 SELinux Enforcing 时会自动为 bind mount 追加:Z后缀Postgres、Redis 与 NocoDB 应用数据存放在 Docker 命名卷nocodb_data、postgres_data、redis_data中db.json单独 bind mount 到容器内/usr/app/data/db.json实现配置与数据分离nocodb 服务内置对GET /api/v1/health的 healthcheckworker 容器会等待主服务健康后再启动。非交互与免询问模式除交互式安装外脚本还提供更贴近运维场景的调用方式# 免询问快速安装内置 Postgres/Redis本地 8080 端口 bash (curl -sSL http://install.nocodb.com/noco.sh) --quick # 带 HTTPS 的免询问安装 bash (curl -sSL http://install.nocodb.com/noco.sh) --quick \ --domainnocodb.example.com --acme-emailopsexample.com # 非交互模式适合自动化流水线--domain 会隐式启用非交互 bash (curl -sSL http://install.nocodb.com/noco.sh) \ --non-interactive \ --domainnocodb.example.com \ --acme-emailopsexample.com \ --pgbundled --redisbundled生产环境建议通过--image-tag版本号固定镜像标签默认生成nocodb/nocodb:latest也可在安装完成后直接编辑生成的docker-compose.yml调整。本地快速试用二进制下载原文档特别提醒二进制文件仅适用于本地快速测试并给出六个平台的下载命令安装方式安装命令MacOS arm64 (Binary)curl http://get.nocodb.com/macos-arm64 -o nocodb -L chmod x nocodb ./nocodbMacOS x64 (Binary)curl http://get.nocodb.com/macos-x64 -o nocodb -L chmod x nocodb ./nocodbLinux arm64 (Binary)curl http://get.nocodb.com/linux-arm64 -o nocodb -L chmod x nocodb ./nocodbLinux x64 (Binary)curl http://get.nocodb.com/linux-x64 -o nocodb -L chmod x nocodb ./nocodbWindows arm64 (Binary)iwr http://get.nocodb.com/win-arm64.exe -OutFile Noco-win-arm64.exe .\Noco-win-arm64.exeWindows x64 (Binary)iwr http://get.nocodb.com/win-x64.exe -OutFile Noco-win-x64.exe .\Noco-win-x64.exe本地启动后统一访问http://localhost:8080/dashboard。附仓库内可直接复用的 Compose 示例除上述命令外仓库docker-compose/目录还维护了多套经过校验的部署示例可与本文各小节对照使用docker-compose/1_Auto_Upstall/docker-compose.yml本地评估栈——nocodbworkerpostgres:17.10redis:7关键环境变量为NC_DB: pg://db:5432?unocodbpnocodbdnocodb、NC_REDIS_URL: redis://redis:6379、NC_SITE_URL: http://localhost:8080并演示了 worker 通过NC_WORKER_CONTAINER: true声明角色、主服务通过NC_DISABLE_MUX: true关闭内置调度等写法docker-compose/examples/external-postgres-and-redis/外接 PostgreSQL Redis 的生产写法NC_SITE_URL指向公网 HTTPS 地址并开启NC_SECURE_ATTACHMENTStrue保护附件访问同目录examples/下还有 managed-postgres、postgres-private-caPostgres 私有 CA 证书、traefik-custom-ssl 等变体覆盖常见生产拓扑。许可与贡献原文档声明本项目采用AGPLv3许可完整协议见仓库根目录 LICENSE.md贡献流程参见项目贡献指南仓库内还包含 i18n 语言包如packages/nc-gui/lang/与多语言 READMEmarkdown/readme/languages/本文来源的孟加拉语 README 即其中之一欢迎对照 markdown/readme/languages/README.md 查看其余 16 种语言版本。小结回到本文的核心路径试用选Docker SQLite单容器命令或平台二进制生产选Auto-upstall一条命令内置/外接 Postgres 与 Redis 皆可自动 Traefik Lets Encrypt重复执行即升级若需完全掌控配置则参照NC_DB/NC_AUTH_JWT_SECRET/NC_REDIS_URL/NC_SITE_URL这套环境变量体系自行编排 Compose。理解这些参数在 NcConfig.ts 中的解析位置以及 Auto-upstall 生成文件的安全处理细节能让你在任何部署形态下都知其所以然。【免费下载链接】nocodb A Free Self-hostable Airtable Alternative项目地址: https://gitcode.com/GitHub_Trending/no/nocodb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价