Airtable の代替に NocoDB — 無料・セルフホストで使えるオープンソースデータベース【2026年版】
Airtableの料金・制限に悩むエンジニア向け。NocoDBのセルフホスト手順、機能比較、Baserow・Teableとの違い、Airtableからの移行方法を実践的に解説します。
Airtable の制限に悩んでいるなら、NocoDB を試すべき理由
「Airtable の無料プランでは行数が足りない、でも有料プランは高い…」 そんなジレンマを抱えるエンジニアに、オープンソースの代替ツール NocoDB を紹介します。
Airtable はスプレッドシートとデータベースを融合した革新的なツールですが、無料プランの制限(1ベースあたり1,000行)と有料プランの料金(月額$20〜/ユーザー)がネックになりがちです。特に個人開発やスタートアップでは、データベースだけにこの金額を払い続けるのは厳しいものがあります。
NocoDB は MySQL、PostgreSQL、SQLite などの既存データベースの上に Airtable 風のUIを被せるオープンソースツールです。Docker 一発でセルフホストでき、行数制限もありません。
Airtable の料金体系と制限
現在のプラン比較
| プラン | 月額(年払い) | 行数/ベース | 添付ファイル容量 |
|---|---|---|---|
| Free | $0 | 1,000行 | 1GB |
| Team | $20/ユーザー | 50,000行 | 20GB |
| Business | $45/ユーザー | 125,000行 | 100GB |
| Enterprise Scale | 要問合せ | 500,000行 | 1TB |
多くのユーザーが直面する問題
- 行数制限: 無料プランの1,000行はすぐに使い切る
- API レート制限: 無料プランでは 5 リクエスト/秒
- 自動化回数: 無料プランは月100回まで
- データの所有権: Airtable のサーバーにデータが保存される
- ベンダーロックイン: エクスポート形式が限られている
NocoDB とは — Airtable の「スマートなオープンソース代替」
基本情報
| 項目 | 内容 |
|---|---|
| ライセンス | AGPLv3(オープンソース) |
| GitHub Stars | 50,000+ |
| 対応DB | MySQL, PostgreSQL, SQLite, SQL Server, MariaDB |
| デプロイ方法 | Docker, Node.js, クラウド版 |
| 行数制限 | なし(DBの性能次第) |
NocoDB の特徴
- 既存のデータベースにGUIを被せるアプローチ
- REST API / GraphQL API を自動生成
- ビュー機能(グリッド、カンバン、フォーム、ギャラリー、カレンダー)
- コラボレーション機能(ロールベースのアクセス制御)
- Webhook / 自動化機能
NocoDB のセルフホスト手順
方法1: Docker Compose(推奨)
最も簡単で確実な方法です。Docker Compose の基本を押さえたい方は「Docker Compose入門ガイド」も参考にしてください。
# docker-compose.yml
version: '3.8'
services:
nocodb:
image: nocodb/nocodb:latest
ports:
- "8080:8080"
environment:
NC_DB: "pg://db:5432?u=postgres&p=password&d=nocodb"
NC_AUTH_JWT_SECRET: "your-secret-key-here"
depends_on:
- db
restart: unless-stopped
volumes:
- nc_data:/usr/app/data
db:
image: postgres:16
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: nocodb
volumes:
- pg_data:/var/lib/postgresql/data
restart: unless-stopped
volumes:
nc_data:
pg_data:
# 起動
docker compose up -d
# ログ確認
docker compose logs -f nocodb
# ブラウザで http://localhost:8080 にアクセス
方法2: SQLite で最小構成(個人利用向け)
# Docker 一行で起動(SQLite使用)
docker run -d --name nocodb \
-p 8080:8080 \
-v "$(pwd)/nocodb:/usr/app/data" \
nocodb/nocodb:latest
方法3: Node.js で直接インストール
# npx で即座に起動
npx create-nocodb-app
# または手動インストール
npm install -g nocodb
nocodb
初期セットアップ
- ブラウザで
http://localhost:8080にアクセス - 管理者アカウントを作成(メールアドレスとパスワード)
- 最初のベース(プロジェクト)を作成
- テーブルを追加してデータ入力開始
Airtable と NocoDB の機能比較
データ管理機能
| 機能 | Airtable | NocoDB |
|---|---|---|
| グリッドビュー | ◎ | ◎ |
| カンバンビュー | ◎ | ◎ |
| フォームビュー | ◎ | ◎ |
| ギャラリービュー | ◎ | ◎ |
| カレンダービュー | ◎ | ◎ |
| ガントチャート | ◎ | ○ |
| フィールドタイプ | 30種以上 | 20種以上 |
| リレーション | ◎ | ◎ |
| ロールアップ | ◎ | ◎ |
| ルックアップ | ◎ | ◎ |
API・連携機能
| 機能 | Airtable | NocoDB |
|---|---|---|
| REST API | ◎ | ◎ |
| GraphQL API | ✕ | ◎ |
| Webhook | ◎ | ◎ |
| 自動化 | ◎ | ○ |
| Zapier 連携 | ◎ | △ |
| Swagger UI | ✕ | ◎(自動生成) |
運用面
| 項目 | Airtable | NocoDB |
|---|---|---|
| 行数制限 | あり | なし |
| セルフホスト | 不可 | ◎ |
| データ所有権 | Airtable 側 | 完全に自分 |
| バックアップ | 手動エクスポート | DB のバックアップツール利用可 |
| カスタマイズ | 制限あり | ソースコード変更可 |
NocoDB の実用的な活用例
例1: プロジェクト管理データベース
-- NocoDB のバックエンドは通常のRDBなので
-- 直接SQLでデータ操作も可能
SELECT
title,
status,
assignee,
due_date
FROM projects
WHERE status != 'done'
ORDER BY due_date ASC;
例2: API を活用した自動化
NocoDB は Swagger UI を自動生成するため、API のテストが容易です。
# NocoDB API でレコード取得
curl -X GET "http://localhost:8080/api/v2/tables/{tableId}/records" \
-H "xc-auth: YOUR_API_TOKEN" \
-H "Content-Type: application/json"
# レコード作成
curl -X POST "http://localhost:8080/api/v2/tables/{tableId}/records" \
-H "xc-auth: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"Title": "新しいタスク",
"Status": "todo",
"Priority": "high"
}'
例3: 既存データベースへの接続
NocoDB の最大の強みは、既存のデータベースにGUIを被せられることです。
# docker-compose.yml で既存DBに接続する例
services:
nocodb:
image: nocodb/nocodb:latest
ports:
- "8080:8080"
environment:
# 既存の PostgreSQL に接続
NC_DB: "pg://your-existing-db-host:5432?u=user&p=pass&d=mydb"
すでにあるデータベースのテーブルが自動的にNocoDB上で操作可能になります。
他の Airtable 代替ツール
NocoDB 以外にも優れた代替ツールがあります。
Baserow — UIの洗練度が高い
| 項目 | 内容 |
|---|---|
| ライセンス | MIT(オープンソース) |
| 特徴 | Airtable に最も近いUI |
| セルフホスト | Docker 対応 |
| クラウド版 | フリープランあり |
# Baserow のセルフホスト
docker run -d --name baserow \
-e BASEROW_PUBLIC_URL=http://localhost \
-v baserow_data:/baserow/data \
-p 80:80 -p 443:443 \
baserow/baserow:latest
Teable — 高パフォーマンスの新鋭
| 項目 | 内容 |
|---|---|
| ライセンス | AGPLv3(オープンソース) |
| 特徴 | PostgreSQL ネイティブ、高速 |
| セルフホスト | Docker 対応 |
| 行数制限 | なし |
# Teable のセルフホスト
git clone https://github.com/teableio/teable.git
cd teable
docker compose up -d
3ツール比較
| 項目 | NocoDB | Baserow | Teable |
|---|---|---|---|
| GitHub Stars | 50K+ | 15K+ | 15K+ |
| UI の洗練度 | ○ | ◎ | ◎ |
| パフォーマンス | ○ | ○ | ◎ |
| 既存DB接続 | ◎ | △ | ○ |
| API 自動生成 | ◎ | ◎ | ○ |
| プラグイン | △ | ○ | △ |
| 学習コスト | 低 | 低 | 低 |
Airtable から NocoDB への移行手順
Step 1: Airtable データのエクスポート
1. Airtable でエクスポートしたいビューを開く
2. ビューメニュー → 「Download CSV」を選択
3. テーブルごとに CSV をダウンロード
Step 2: NocoDB でのインポート
1. NocoDB でベースを作成
2. テーブル作成画面で「Import」を選択
3. 「CSV」を選択してファイルをアップロード
4. カラムのマッピングを確認して「Import」
Step 3: フィールドタイプの調整
CSVインポート後、フィールドタイプが正しく認識されない場合があります。
# よくある調整
- 日付フィールド: Text → Date に変更
- 選択肢フィールド: Text → Single Select に変更
- リンクフィールド: 手動で Link to another record を設定
- 添付ファイル: 別途アップロードが必要
Step 4: API エンドポイントの更新
Airtable API を使っていた場合、NocoDB の API に切り替えます。
// Before: Airtable API
const response = await fetch(
'https://api.airtable.com/v0/appXXX/TableName',
{
headers: {
'Authorization': 'Bearer pat_xxx',
},
}
);
// After: NocoDB API
const response = await fetch(
'http://localhost:8080/api/v2/tables/{tableId}/records',
{
headers: {
'xc-auth': 'YOUR_NOCODB_TOKEN',
},
}
);
NocoDB の本番運用 Tips
SSL 対応(Caddy を使う例)
# Caddyfile
yourdomain.com {
reverse_proxy nocodb:8080
}
# docker-compose.yml に Caddy を追加
services:
caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
depends_on:
- nocodb
バックアップ戦略
# PostgreSQL のバックアップ(日次 cron で実行)
#!/bin/bash
BACKUP_DIR="/backups/nocodb"
DATE=$(date +%Y%m%d_%H%M%S)
docker exec nocodb-db pg_dump -U postgres nocodb \
| gzip > "$BACKUP_DIR/nocodb_$DATE.sql.gz"
# 30日以上前のバックアップを削除
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +30 -delete
パフォーマンスチューニング
# PostgreSQL のチューニング例
services:
db:
image: postgres:16
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: nocodb
command: >
postgres
-c shared_buffers=256MB
-c effective_cache_size=768MB
-c work_mem=4MB
-c maintenance_work_mem=128MB
まとめ — Airtable の代替は NocoDB で十分
Airtable は素晴らしいプロダクトですが、以下の条件に当てはまるなら NocoDB への移行を検討する価値があります。
- 無料プランの行数制限(1,000行)に引っかかっている
- データを自分のサーバーで管理したい
- API を活用した自動化を制限なく行いたい
- 月額料金を削減したい
NocoDB はセルフホストの手間はありますが、Docker Compose で数分で構築できます。既存の PostgreSQL や MySQL にGUIを被せられるのは、他のツールにはない大きな強みです。
NocoDBのようなオープンソース代替に興味がある方は、デザインツールの「Figma代替 Penpot ガイド」や、ホスティングの「Heroku代替サービス比較」もあわせてご覧ください。
まずは SQLite の最小構成で試して、本格利用が見えてきたら PostgreSQL 版に移行するのがおすすめです。