Chuyển đến nội dung chính
Giảm 50% tất cả các gói, có thời hạn. Khởi điểm từ $2.48/mo
FerretDB

FerretDB

FerretDB là cơ sở dữ liệu tương thích MongoDB, được hỗ trợ bởi PostgreSQL hoặc SQLite. Đây là giải pháp mã nguồn mở thay thế MongoDB Atlas, không có ràng buộc giấy phép SSPL. Được cấp phép Apache 2.0, chạy trực tiếp với các driver MongoDB hiện có, và kế thừa độ bền dữ liệu cùng bộ công cụ của Postgres.

Tổng quan

11k

Sao GitHub

54

Lượt xem trang

103

Cài đặt đang hoạt động

Giấy phép Apache-2.0 Phiên bản 2.7.0 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

Cài đặt đang hoạt động là dữ liệu mẫu (xem trước); số liệu thực sẽ được kết nối trước khi ra mắt.

Kiến trúc

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

FerretDB dịch nội bộ các yêu cầu theo giao thức MongoDB wire protocol thành truy vấn PostgreSQL.

PostgreSQL không được phơi bày công khai.

Cổng

  • 27017/tcp → Điểm cuối công khai tương thích MongoDB
  • 5432/tcp → PostgreSQL nội bộ (không phơi bày ra bên ngoài)

Truy cập

Tham chiếu thông tin đăng nhập: /root/ferretdb/.env

Cài đặt client nếu cần:

apt install -y mongodb-mongosh

Kết nối có xác thực:

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

File và thư mục quan trọng

  • Thư mục cài đặt: /root/ferretdb
  • Soạn tệp: /root/ferretdb/docker-compose.yml
  • File environment: /root/ferretdb/.env
  • Thư mục dữ liệu PostgreSQL: /root/ferretdb/data

Quản lý dịch vụ

Kiểm tra trạng thái:

docker ps

Xem log:

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

Khởi động lại các dịch vụ:

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

Các lệnh MongoDB thông dụng

Liệt kê các cơ sở dữ liệu:

show dbs

Chuyển cơ sở dữ liệu:

use postgres

Liệt kê các collection:

show collections

Xem các document:

db.collection_name.find()

Chèn document:

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

Thoát shell:

exit

Gán FerretDB vào Localhost để bảo mật

Xác thực đã được bật, nhưng các dịch vụ cơ sở dữ liệu bị phơi bày vẫn là một rủi ro.

Chỉnh sửa: /root/ferretdb/.env

Thay đổi HOST=0.0.0.0 to HOST=127.0.0.1

Sau đó áp dụng thay đổi:

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

Bây giờ dịch vụ không thể truy cập được từ bên ngoài.

Truy cập bằng SSH port forwarding.

Từ máy của bạn:

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

Sau đó kết nối cục bộ:

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

Thêm trong Công cụ Database

Ứng dụng liên quan.

Triển khai FerretDB ngay. Từ $2.48/tháng.