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中文网。