NocoDB部署教程|开源免费的自建在线表格数据库

前言

日常工作、团队协作或是个人做台账管理时,在线表格是非常高频的工具。不管是做信息登记、项目台账、表单收集,还是简易的数据管理系统,很多人第一选择都是各类云端在线表格。但商用在线表格也存在不少痛点:高级功能需要付费解锁,存储空间存在限制,最重要的是所有业务数据全部托管在第三方服务商服务器,对于内部敏感资料、运维台账、私有业务数据来说,数据安全无法自己掌控。如果想要自建一套数据系统,传统数据库又需要开发人员编写接口、搭建页面,普通运维人员上手门槛高,开发耗时久。

NocoDB是一款完全开源免费的无代码平台,被称作开源版Airtable,它可以将SQLite、PostgreSQL、MySQL等数据库直接转换为可视化在线表格。不用编写复杂代码,就能够实现表格编辑、多视图切换、数据筛选排序、表单生成、权限分组、多人协同等丰富能力。所有的数据全部存储在自己的服务器当中,数据完全私有化,不用担心数据泄露、平台封号、功能收费等问题,个人使用、小团队内部协作都十分合适。

本次教程将在fnOS环境下,通过Docker容器方式完成NocoDB的完整部署,全程操作简单,快速搭建属于自己的私有化在线表格数据库。部署完成之后,借助cpolar内网穿透工具,无需公网IP,就可以实现外网远程访问,随时随地查看、编辑表格数据。接下来跟随步骤,一步步完成部署实操。

image-20260811113131737

1.什么是NocoDB?

NocoDB是一款开源、自托管的无代码数据库平台,定位是私有化部署版Airtable替代工具,主打将传统数据库转化为在线可视化表格,实现零代码数据管理与团队协作。

✨核心特点

  1. 界面与体验

界面风格贴近Airtable,提供网格、看板、画廊、日历、表单多种视图;支持字段自定义、数据筛选排序、分组统计,以表格形式管理数据,普通用户无需掌握SQL语句,网页端即可完成数据操作。

  1. 数据完全自主可控

全部数据存放在自己服务器,支持SQLite、MySQL、PostgreSQL多种数据库,数据完全由自己保管,不受第三方平台约束,不用担心账号封禁、功能收费、云端数据泄露等问题。

  1. 团队协作能力

支持多人协同操作,具备细粒度权限管控,区分管理员、普通成员,可针对数据表、字段配置读写权限;支持对外生成收集表单,自动输出REST、GraphQL接口,文档支持导出,方便对接其他系统。

  1. 扩展能力

无需编写后端代码,就可以快速搭建简易业务系统;支持外部数据库导入,直接复用已有业务库;支持Webhook,可实现数据变更触发通知、联动其他服务。

🎯适用场景

  • 个人自建台账、资料信息登记、个人数据管理
  • 小团队搭建简易CRM、库存管理、任务台账、运维信息登记表
  • 内部表单收集,问卷登记,业务数据统计
  • 企业轻量无代码后台,替代付费在线表格,保护敏感内部数据

🧰技术栈

  • 后端Node.js,支持SQLite/MySQL/PostgreSQL数据库,推荐使用Docker Compose一键部署,部署完成后可搭配cpolar内网穿透实现外网访问。

2.安装前提条件

2.1ssh远程连接到飞牛

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:

在设置—>SSH中开启SSH服务:

463c5f2aa280d7887420494b8b8f852e

27abe7f94baeaebc1738b60b1ba78933

e16c7480a399e50f627439329422c5a7

2.2验证docker是否开启

使用命令:

docker -v 
systemctl status -v

也可以直接在飞牛主页查看(其他机器也是这样的哦~)

bc2a0952beed8ca143a171bb000b2b23

3.安装NocoDB

以容器名称noco后台启动NocoDB,将当前目录nocodb文件夹挂载持久化数据,映射8086端口,配置JWT密钥,使用官方nocodb镜像运行无代码在线表格服务:

“`shelldocker run -d \
docker run -d \
–name noco \
-v “$(pwd)”/nocodb:/usr/app/data/ \
-p 8086:8080 \
-e NC_AUTH_JWT_SECRET=”569a1821-0a93-45e8-87ab-eb857f20a010” \
nocodb/nocodb:latest

![image-20260807163637191](https://images2.cpolar.com/img/202608071636165.png)

部署完成后,在浏览器中输入 `http://飞牛IP:8086` 就能看到NocoDB的界面:

![77294c9fc98524a7662ef12e9f402920](https://images2.cpolar.com/img/202608071640574.png)

## 4.安装myql

首先创建一下安装的目录并进入到该目录:

```shell
mkdir mysql
cd mysql/

创建并编辑 docker-compose.yml文件:

vi docker-compose.yml

version: "3.8"
services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: "Sjixin520!"   # root密码,和你NocoDB填写保持一致
      TZ: "Asia/Shanghai"
    volumes:
      - ./mysql-data:/var/lib/mysql       # 数据持久化,NAS本地文件夹
    command:
      --default-authentication-plugin=mysql_native_password
      --bind-address=0.0.0.0              # 允许局域网所有IP连接
root@fnOS:/docker/mysql# docker-compose up -d

启动容器:

docker compose up -d

安装完成后,登录到mysql:

mysql -h127.0.0.1 -P3306 -uroot -p

image-20260810174003851

为了后续测试,我们先创建一个“shan”数据库:

CREATE DATABASE shan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

image-20260810173859288

为其创建表:

use shan;
CREATE TABLE `user` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` VARCHAR(50) NOT NULL COMMENT '姓名',
  `phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';

展示表结构:

SHOW TABLES;

image-20260810174959039

为该表插入数据:

INSERT INTO user (name, phone)
VALUES
('李四','13900139000'),
('王五','13700137000');

image-20260810175132386

5.使用NocoDB

5.1 初始化

初次登录记得注册账户密码:

72c308211b4ec621c7ebc2f976ea4e25

添加自己相关信息:

65e1eeb4bddf92c51a0257544eadd209

登录成功:

0fb391b52dc83c4387f24a9be94dac71

image-20260810163104808

5.2 创建新的数据库

点击“New Base”:

image-20260810160458989

输入名称及类型后,点击创建数据库:

image-20260810160543932

创建成功:

image-20260810160626412

我们点击进去这个数据库:

image-20260810160719773

创建一个新表格,数据源选择默认:

image-20260810165634000

编辑表格信息:

image-20260810170136599

image-20260810170106946

5.3 连接外部数据(mysql举例)

选择连接外部数据源:

image-20260810174429356

输入连接的基本信息,数据库选我们刚刚新建好的,选好之后测试连接,连接成功后创建链接:

image-20260810173826180

连接成功:

image-20260810174044652

连接显示成功:

image-20260810174055326

把MySQL的shan数据库,导入NocoDB,用网页表格界面来操作MySQL,不用敲SQL命令。

image-20260810174852875

显示成功!

image-20260810174907209

我们来验证一下同步性,往里插入数据:

image-20260810175132386

成功显示:

image-20260810175140822

自己也可以往里插入数据:

image-20260810175243227

自己插入的数据也同步更新!

SELECT * FROM user;

image-20260810175325785

创建新字段:

image-20260810175412893

实时对字段进行编辑:

image-20260810175516212

根据字段“name”进行查询:

image-20260811111052676

5.4 导入数据

该软件也支持从外部导入文件:

image-20260811111807911

有以下格式:

image-20260811111824275

我这里举例json格式:

[
  {
    "id": 1,
    "username": "zhangsan",
    "age": 22,
    "email": "zhangsan@test.com"
  },
  {
    "id": 2,
    "username": "lisi",
    "age": 25,
    "email": "lisi@test.com"
  },
  {
    "id": 3,
    "username": "wangwu",
    "age": 28,
    "email": "wangwu@test.com"
  }
]

image-20260811111653343

自动识别数据:

image-20260811111702026

导入成功!

image-20260811111723825

NocoDB可以把MySQL数据库转化为可视化多维表格,实现在线增删改查数据,但部署在飞牛NAS本地时仅局域网内可以访问,借助cpolar内网穿透无需公网IP、不用调试路由器,一键生成HTTPS公网访问地址,轻松把内网NocoDB服务对外暴露,团队成员无论身处何地,只需要打开浏览器即可访问表格界面,直接操作数据库完成远程数据协作,本地留存全部数据的同时轻松解决外网访问难题。

6.安装cpolar实现随时随地开发

6.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

6.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

官网在此:https://www.cpolar.com

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250725104019896

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

7.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:nocodb,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8086
  • 域名类型:随机域名
  • 地区:选择China Top

image-20260811112632019

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

image-20260811112711708

访问成功。

image-20260811112755854

8.保留固定公网地址

使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。

image-20250918151358733

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是nocodbb,大家可以自定义。填写备注信息,点击保留。

image-20260811112901115

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20260811112959202

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20260811113011120

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

image-20260811113112459

总结

本文完整演示了在飞牛fnOS上通过Docker部署NocoDB开源在线表格工具,搭配MySQL数据库完成库表创建、测试数据写入,实现数据库可视化网页管理。NocoDB可以把MySQL直接转换为类Excel的在线表格,摆脱命令行操作,支持网页端增删改查数据表。

由于部署在本地NAS环境,默认仅局域网访问,借助cpolar内网穿透,无需公网IP、不用改动路由器配置,即可生成HTTPS公网地址,实现外网远程访问自建的NocoDB,方便异地团队协同编辑数据,所有数据依旧保存在本地NAS,兼顾访问便利与数据隐私安全。教程同时覆盖数据源配置、JSON数据导入、连接排错等实操踩坑要点,帮助快速完成整套环境落地。

感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Share:

发表回复

目录

On Key

推荐文章