メインコンテンツへスキップ
50% off 全プラン対象、期間限定。月額 $2.48/mo
FerretDB

FerretDB

FerretDB は MongoDB 互換のデータベースで、バックエンドに PostgreSQL または SQLite を使用します。SSPL ライセンスの心配がない、MongoDB Atlas のオープンソース代替です。Apache 2.0 ライセンスで提供され、MongoDB ドライバをそのまま動作させ、Postgres の耐久性とツール群を継承しています。

概要

11k

GitHubスター

38

ページビュー

103

アクティブインストール

ライセンス Apache-2.0 バージョン 2.7.0 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

アクティブインストール数はサンプルデータ(プレビュー)です。正式リリース前に実際のデータに切り替わります。

建築

Client
 ↓
 Port 27017 (MongoDB protocol)
 ↓
 FerretDB container
 ↓
 PostgreSQL container (internal Docker network)
 ↓
 Persistent storage directory

FerretDB は内部で MongoDB ワイヤープロトコルのリクエストを PostgreSQL のクエリに変換します。

PostgreSQL は外部に公開されていません。

ポート

  • 27017/tcp → 公開の MongoDB 互換エンドポイント
  • 5432/tcp → 内部の PostgreSQL(外部には公開されません)

アクセス

認証情報の参照: /root/ferretdb/.env

必要に応じてクライアントをインストールします:

apt install -y mongodb-mongosh

認証付きで接続します:

mongosh "mongodb://<USERNAME>:<PASSWORD>@<SERVER_IP>:27017/<DATABASE>?authSource=postgres"

重要なファイルとディレクトリ

  • インストールディレクトリ: /root/ferretdb
  • Compose ファイル /root/ferretdb/docker-compose.yml
  • 環境変数ファイル: /root/ferretdb/.env
  • PostgreSQL のデータディレクトリ: /root/ferretdb/data

サービス管理

ステータスを確認:

docker ps

ログを表示:

docker compose -f /root/ferretdb/docker-compose.yml logs -f

サービスを再起動:

docker compose -f /root/ferretdb/docker-compose.yml restart

よく使う MongoDB コマンド

データベースを一覧表示します:

show dbs

データベースを切り替えます:

use postgres

コレクションを一覧表示します:

show collections

ドキュメントを表示します:

db.collection_name.find()

ドキュメントを挿入します:

db.collection_name.insertOne({ name: "example" })

シェルを終了します:

exit

セキュリティのため FerretDB を localhost にバインドする

認証は有効ですが、公開されたデータベースサービスは依然としてリスクとなります。

編集: /root/ferretdb/.env

変更 HOST=0.0.0.0 to HOST=127.0.0.1

次に変更を適用します:

docker compose -f /root/ferretdb/docker-compose.yml up -d

これでサービスは外部からアクセスできなくなります。

SSH ポートフォワーディングを使ってアクセスします。

ローカルマシンから:

ssh -L 27017:localhost:27017 root@<SERVER_IP>

次にローカルで接続します:

mongosh "mongodb://<USERNAME>:<PASSWORD>@localhost:27017/<DATABASE>?authSource=postgres

データベースツールの他の記事

関連アプリ。

今すぐ FerretDB をデプロイする。 月額2.48ドルから。