NocoDB 开源 Airtable 替代方案搭建教程

NocoDB 是一款开源的无代码数据库平台,可以将 MySQL、PostgreSQL、SQLite 等关系型数据库转换为类似 Airtable 的智能电子表格界面。它提供丰富的视图模式、自动化 API 接口和团队协作功能,让非技术人员也能轻松管理数据。本教程将在搬瓦工 VPS 上通过 Docker 完成 NocoDB 的完整部署。

一、NocoDB 功能概览

NocoDB 作为 Airtable 的开源替代方案,具备以下核心功能:

  • 多视图支持:网格视图、画廊视图、看板视图、表单视图和日历视图,满足不同数据展示需求。
  • 自动生成 REST API:每个表自动生成完整的 CRUD API,支持 Swagger 文档。
  • 数据库连接:支持连接已有的 MySQL、PostgreSQL、SQL Server、SQLite 数据库。
  • 协作功能:支持多用户协作、角色权限管理、评论和审计日志。
  • 字段类型丰富:支持附件、链接、公式、查找、汇总等高级字段类型。
  • 应用集成:支持 Webhook、Zapier 集成和第三方 API 对接。

二、环境准备

在开始部署之前,请确保搬瓦工 VPS 满足以下要求:

  • 操作系统:Ubuntu 20.04 或更高版本(推荐 Ubuntu 22.04)。
  • 内存:至少 1GB RAM,推荐 2GB 以上。
  • 磁盘空间:至少 10GB 可用空间。
  • Docker 环境:已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。

购买搬瓦工 VPS 可以参考 搬瓦工全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 的折扣优惠。

三、Docker Compose 部署 NocoDB

3.1 创建项目目录

mkdir -p /opt/nocodb && cd /opt/nocodb

3.2 创建 Docker Compose 配置文件

创建 docker-compose.yml 文件:

cat > docker-compose.yml <<'EOF'
version: '3.8'

services:
  nocodb:
    image: nocodb/nocodb:latest
    container_name: nocodb
    restart: always
    ports:
      - "8080:8080"
    environment:
      NC_DB: "pg://db:5432?u=nocodb&p=your_secure_password&d=nocodb"
      NC_AUTH_JWT_SECRET: "your_jwt_secret_change_this"
      NC_ADMIN_EMAIL: "admin@example.com"
      NC_ADMIN_PASSWORD: "YourAdminPassword123"
    volumes:
      - nocodb_data:/usr/app/data
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    container_name: nocodb-db
    restart: always
    environment:
      POSTGRES_USER: nocodb
      POSTGRES_PASSWORD: your_secure_password
      POSTGRES_DB: nocodb
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U nocodb"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  nocodb_data:
  postgres_data:
EOF

重要提示:请务必修改 NC_AUTH_JWT_SECRET、数据库密码和管理员密码为强密码。可以使用以下命令生成随机密钥:

openssl rand -base64 32

3.3 启动 NocoDB 服务

docker compose up -d

查看服务运行状态:

docker compose ps
docker compose logs -f nocodb

等待日志中出现启动成功的提示后,即可通过浏览器访问 http://你的服务器IP:8080 打开 NocoDB 界面。

四、配置反向代理(Nginx)

为了启用 HTTPS 并使用域名访问,建议配置 Nginx 反向代理。首先将域名 A 记录指向搬瓦工 VPS 的 IP 地址,然后安装 Nginx:

apt update && apt install nginx -y

创建 Nginx 配置文件:

cat > /etc/nginx/sites-available/nocodb <<'EOF'
server {
    listen 80;
    server_name nocodb.example.com;

    client_max_body_size 50m;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
EOF

ln -s /etc/nginx/sites-available/nocodb /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

使用 Certbot 申请 SSL 证书:

apt install certbot python3-certbot-nginx -y
certbot --nginx -d nocodb.example.com

五、NocoDB 基本使用

5.1 创建工作区和数据表

首次登录后,NocoDB 会引导你创建第一个工作区(Workspace)。在工作区中可以创建多个数据库项目,每个项目可以包含多个数据表。点击"Create Table"按钮即可新建表格,支持从 CSV、Excel 文件导入数据,也可以手动创建字段。

5.2 连接已有数据库

NocoDB 的一大特色是可以连接已有的关系型数据库,将其转换为电子表格界面。在创建项目时选择"Connect to an existing database",输入数据库连接信息即可。支持 MySQL、PostgreSQL、SQL Server 和 SQLite。

5.3 使用 API

NocoDB 为每个数据表自动生成 REST API。点击表格右上角的 API 图标,可以查看完整的 Swagger 文档。API 支持分页、排序、过滤和字段选择等操作:

# 获取表格数据(示例)
curl -X GET "http://nocodb.example.com/api/v1/db/data/noco/project_id/table_name" \
  -H "xc-auth: YOUR_API_TOKEN"

# 创建新记录
curl -X POST "http://nocodb.example.com/api/v1/db/data/noco/project_id/table_name" \
  -H "xc-auth: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Name": "示例数据", "Status": "Active"}'

5.4 视图与共享

每个数据表支持创建多个视图,包括网格、画廊、看板、表单和日历视图。你可以为每个视图设置不同的筛选条件、排序规则和可见字段。视图可以通过共享链接发布为公开页面,适合收集表单数据或展示只读数据。

六、数据备份与恢复

定期备份数据是保障数据安全的关键步骤:

# 备份 PostgreSQL 数据库
docker exec nocodb-db pg_dump -U nocodb nocodb > /opt/nocodb/backup_$(date +%Y%m%d).sql

# 备份 NocoDB 数据目录
docker cp nocodb:/usr/app/data /opt/nocodb/data_backup_$(date +%Y%m%d)

# 恢复数据库
cat backup_20260101.sql | docker exec -i nocodb-db psql -U nocodb nocodb

建议设置定时任务自动备份:

crontab -e
# 每天凌晨 3 点自动备份
0 3 * * * docker exec nocodb-db pg_dump -U nocodb nocodb > /opt/nocodb/backup_$(date +\%Y\%m\%d).sql

七、性能优化

当数据量增大时,可以通过以下方式提升 NocoDB 的性能:

  • 增加 PostgreSQL 内存:在 Compose 文件中设置 shm_size: '256m' 并调整 PostgreSQL 参数。
  • 启用 Redis 缓存:添加 Redis 服务并设置 NC_REDIS_URL 环境变量。
  • 限制 API 速率:通过 Nginx 配置限流规则防止 API 滥用。
  • 定期清理:清理审计日志和过期的临时文件释放磁盘空间。

八、升级 NocoDB

升级到最新版本非常简单:

cd /opt/nocodb
docker compose pull
docker compose up -d

升级前建议先备份数据库。NocoDB 在启动时会自动执行数据库迁移。

总结

NocoDB 是一款功能强大的开源无代码数据库平台,部署在搬瓦工 VPS 上可以完全掌控数据隐私。无论是个人项目管理、团队数据协作还是快速构建后端 API,NocoDB 都是 Airtable 的优秀替代方案。搭配 Docker 使用,几分钟即可完成部署。购买搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受折扣,更多部署教程请访问 搬瓦工VPS中文网

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。