본문으로 건너뛰기
50% 할인 모든 플랜, 기간 한정. 시작 가격 $2.48/mo
FerretDB

FerretDB

FerretDB는 PostgreSQL 또는 SQLite를 기반으로 하는 MongoDB 호환 데이터베이스입니다. SSPL 라이선스 문제 없이 MongoDB Atlas를 대체하는 오픈소스 솔루션으로, Apache 2.0 라이선스를 따르며 기존 MongoDB 드라이버를 그대로 사용할 수 있고 Postgres의 내구성과 툴링을 그대로 이어받습니다.

한눈에 보기

11k

GitHub 스타

54

페이지 조회수

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부터.