無料でデータベースで動くアプリを自作できる「NocoDB」、Airtableの代替になりオープンソースでセルフホスト可能、カンバン・カレンダー・ギャラリー・表・フォームなどの見た目で操作可能

ノーコードでユーザーインターフェースを備えたデータベースシステムの構築ができる「Airtable」ですが、無料プランでは利用できるデータ量に制限があり、中規模以上での用途では有料プランでの契約が必要となります。そこで代替サービスとして既存のデータベースに接続でき、無料かつオープンソースでセルフホストが可能な「NocoDB」が公開されています。
nocodb/nocodb: A Free & Self-hostable Airtable Alternative
https://github.com/nocodb/nocodb
NocoDB Cloud
https://nocodb.com/

◆NocoDBとAirtableの比較
| 項目 | NocoDB | Airtable |
|---|---|---|
| データベース | 既存のDBを流用 | 専用DB |
| セルフホスト | 可能 | 不可 |
| 初期セットアップ | 必要 | 不要 |
| UI完成度 | 実用レベル | 非常に高い |
| グラフ | 一部制限あり | 強力 |
| 自動化 | 限定的 | 豊富 |
| データ所有権 | ユーザー側 | Airtable側 |
| コスト構造 | DB+NocoDBの運用費 | サブスク |
| フレームワーク依存度 | NocoDBを外してもDBはそのまま利用可 | Airtable前提の設計 |
◆NocoDBの主な機能
・グリッド表示によるテーブル内容の確認
プロジェクトのトップページに表示されているデータベースとテーブルの一覧から確認したいテーブルをクリックすると内容と関連するデータがグリッド形式で表示されます。

・外部キーを利用した関連データの表示
別のテーブルと関連付けられたデータを表示するフィールドをクリックするとリンク済みレコードとして、外部キーで連動している別テーブルの内容がポップアップで表示されます。

・簡易編集
データ欄をクリックすると簡易編集モードになり、直接編集が可能。

・新規レコード登録はグリッド形式とフォーム形式の2種類から選択
新規レコードを登録する方法はグリッドの最下行で直接入力する方法とフォームによる入力方法があり、入力方法選択ボックスで「新しいレコード - フォーム」を選択すると…

入力フォームが表示されます。

・テーブルのリレーションを図表形式で確認
データベース名の右側にある「3点メニュー」アイコンをクリックして「Relations」を選択。

テーブルのリレーションを図表形式で確認することができ、外部キーがどのテーブルと関連付けられているかが一目で確認できます。

・カンバン表示
状態を表すカラムがある場合にそれぞれの状態の値に振り分けられたデータの一覧をカード形式で表示。

・カレンダー表示
日付のカラムがあるテーブルの内容をカレンダー形式で表示。

・ギャラリー表示
データとして画像が添付されているテーブルの内容をギャラリー形式で表示。

・新規登録用フォームページ
データ一覧からの新規レコードを作成する方法以外に、登録専用のフォームページが作成可能。

・REST API
外部プログラムとの連携が可能で、各言語の利用方法のサンプルが用意されています。

NocoDBはphpMyAdminのようなデータベース管理ツールとは異なり、操作を限定することで誰でも安全に扱えるように設計されたデータベースUIです。
◆NocoDBの構築方法
・デモ用データベースの構築
WindowsにDocker DesktopとGit for WindowsのGit Bashを用意した環境で構築します。まず先にサンプルデータセット「chinook-database」を利用しデモ用のデータベースを構築するためchinook-databaseをクローンします。既存のデータベースに接続する場合は、この作業は不要です。
git clone https://github.com/lerocha/chinook-database.git
chinook-databaseフォルダに移動し、docker-compose.ymlを修正し必要なデータベース以外のサービスを削除します。
name: chinook
services:
#----------------------------------------------------------------------------
# MySQL Container
# https://hub.docker.com/_/mysql
# Commands:
# mysql -u chinook -p Chinook
#----------------------------------------------------------------------------
mysql:
image: mysql:latest
environment:
MYSQL_USER: chinook
MYSQL_PASSWORD: chinook
MYSQL_ROOT_PASSWORD: chinook
MYSQL_DATABASE: Chinook
ports:
- "3306:3306"
volumes:
- ./ChinookDatabase/DataSources/Chinook_MySql.sql:/docker-entrypoint-initdb.d/Chinook_MySql.sql
- ./ChinookDatabase/DataSources/Chinook_MySql_AutoIncrementPKs.sql:/docker-entrypoint-initdb.d/Chinook_MySql_AutoIncrementPKs.sql
コンテナを起動します。
docker compose up -d
・NocoDBの構築とデータベースとの連携
PowerShellを起動し、Windows用の実行ファイルをダウンロードして、ローカルのデータベースへの接続を許可する環境変数を設定のうえ実行。
iwr http://get.nocodb.com/win-x64.exe -OutFile Noco-win-x64.exe $env:NC_ALLOW_LOCAL_EXTERNAL_DBS="true" .\Noco-win-x64.exe
起動したらブラウザで「http://localhost:8080」にアクセスすると「SIGN UP」フォームが表示されるので、「E-mail」に任意のメールアドレス、「Password」にパスワードを入力し「SIGN UP」をクリック。

ログインが完了するとアンケートが表示されるので「Skip」をクリック。

プロジェクトのトップページが表示されるので、左下の「ユーザー」アイコンをクリック、「Language」から「日本語」を選択。

日本語化されたプロジェクトのトップページが表示されます。データベースと連携するため「外部データ接続」をクリック。

「Add Data Source」が表示されるので「Data Source Name」に任意の名前を入力、「Connection」で「Select connection」をクリックして「新規 接続」をクリック。

「New Connection」が表示されるので一覧から「MySQL」を選択。

「MySQL」の登録画面が表示されるので「Connection name」に任意の名前を入力、「ホストアドレス」に接続先のアドレス、「ポート番号」にポート番号、「ユーザー名」にユーザー名、「パスワード」にパスワード、「データベース」にデータベース名を入力し「Test connection」ボタンをクリック。

接続に成功したら「Create connection」をクリック。

「Add Data Source」の画面に戻るので「Add Source」をクリック。

サイドバーのデータベース一覧に追加したデータベースが表示されます。

なお、ダッシュボードとグラフ表示機能など一部の機能は、クラウド版でのみ利用可能です。
・関連記事
無料で大量のデータを見やすいグラフで可視化できるオープンソースのセルフホスト可能なアプリ「Metabase」でGIGAZINE読者アンケートの結果を分析してみた - GIGAZINE
独自のデータベースやWordPressなどのアプリを簡単にセルフホストできて管理できるオープンソースPaaS「Coolify」 - GIGAZINE
Dockerでのアプリ展開を超簡単にできる「Dokploy」、オープンソースでセルフホスト可能 - GIGAZINE
FirebaseのようにGUIでバックエンドを構築できる無料でオープンソースのシステム「PocketBase」、わずか1ファイルのみ - GIGAZINE
オープンソースでセルフホスト可能なBaaSプラットフォーム「Appwrite」を使ってみた - GIGAZINE
・関連コンテンツ
in ソフトウェア, レビュー, Posted by darkhorse_logmk
You can read the machine translated English article NocoDB is a free database-driven applica….







