ข้ามไปยังเนื้อหาหลัก
ลด 50% ทุกแพลน เวลาจำกัด เริ่มต้นที่ $2.48/mo
FerretDB

FerretDB

FerretDB คือฐานข้อมูลที่เข้ากันได้กับ MongoDB โดยใช้ PostgreSQL หรือ SQLite เป็น storage รองรับ MongoDB drivers ได้โดยตรง เป็นทางเลือกโอเพนซอร์สแทน MongoDB Atlas ที่ไม่มีปัญหาเรื่องสิทธิ์ใช้งาน SSPL ใช้สัญญาอนุญาต Apache 2.0 และสืบทอดความทนทานและเครื่องมือทั้งหมดจาก Postgres

ภาพรวม

11k

GitHub stars

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 wire protocol เป็น PostgreSQL queries ภายใน

PostgreSQL ไม่ได้เปิดสู่สาธารณะ

พอร์ต

  • 27017/tcp → endpoint ที่เข้ากันได้กับ MongoDB แบบสาธารณะ
  • 5432/tcp → PostgreSQL ภายใน (ไม่เปิดออกภายนอก)

การเข้าถึง

ข้อมูลอ้างอิงข้อมูลรับรอง: /root/ferretdb/.env

ติดตั้ง client หากจำเป็น:

apt install -y mongodb-mongosh

เชื่อมต่อด้วยการยืนยันตัวตน:

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

ไฟล์และไดเรกทอรีที่สำคัญ

  • ไดเรกทอรีติดตั้ง: /root/ferretdb
  • Compose file: ไฟล์ Compose: /root/ferretdb/docker-compose.yml
  • ไฟล์ environment: /root/ferretdb/.env
  • ไดเรกทอรีข้อมูล PostgreSQL: /root/ferretdb/data

การจัดการบริการ

ตรวจสอบสถานะ:

docker ps

ดู logs:

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

รีสตาร์ทบริการ:

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

คำสั่ง MongoDB ที่ใช้บ่อย

แสดงรายการฐานข้อมูล:

show dbs

สลับฐานข้อมูล:

use postgres

แสดงรายการ collections:

show collections

ดูเอกสาร:

db.collection_name.find()

เพิ่มเอกสาร:

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

ออกจาก shell:

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 port forwarding

จากเครื่องของคุณ:

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

จากนั้นเชื่อมต่อในเครื่อง:

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

เพิ่มเติมในเครื่องมือฐานข้อมูล

แอปที่เกี่ยวข้อง

ติดตั้ง FerretDB เดี๋ยวนี้ เริ่มต้น $2.48/เดือน