Przejdź do treści głównej
50% zniżki wszystkie plany, oferta limitowana. Od $2.48/mo
FerretDB

FerretDB

FerretDB to baza danych kompatybilna z MongoDB, oparta na PostgreSQL lub SQLite. Open-source'owa alternatywa dla MongoDB Atlas bez niespodzianek związanych z licencją SSPL. Licencja Apache 2.0, pełna zgodność ze sterownikami MongoDB i dziedziczenie niezawodności oraz narzędzi Postgres.

Na pierwszy rzut oka

11k

Gwiazdki na GitHub

38

Wyświetlenia strony

103

Aktywne instalacje

Licencja Apache-2.0 Wersja 2.7.0 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

Aktywne instalacje to dane przykładowe (podgląd); prawdziwa metryka zostanie podłączona przed uruchomieniem.

Architektura

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

FerretDB wewnętrznie tłumaczy żądania protokołu MongoDB wire na zapytania PostgreSQL.

PostgreSQL nie jest publicznie udostępniany.

Porty

  • 27017/tcp → Publiczny punkt końcowy kompatybilny z MongoDB
  • 5432/tcp → Wewnętrzny PostgreSQL (nieudostępniany na zewnątrz)

Dostęp

Odniesienie do danych uwierzytelniających: /root/ferretdb/.env

Zainstaluj klienta, jeśli to konieczne:

apt install -y mongodb-mongosh

Połącz się z uwierzytelnianiem:

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

Ważne pliki i katalogi

  • Katalog instalacji: /root/ferretdb
  • Plik Compose: /root/ferretdb/docker-compose.yml
  • Plik środowiska: /root/ferretdb/.env
  • Katalog danych PostgreSQL: /root/ferretdb/data

Zarządzanie usługami

Sprawdź stan:

docker ps

Zobacz logi:

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

Uruchom ponownie usługi:

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

Typowe polecenia MongoDB

Wyświetl listę baz danych:

show dbs

Przełącz bazę danych:

use postgres

Wyświetl listę kolekcji:

show collections

Wyświetl dokumenty:

db.collection_name.find()

Wstaw dokument:

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

Wyjdź z powłoki:

exit

Powiąż FerretDB z localhost dla bezpieczeństwa

Uwierzytelnianie jest włączone, ale udostępnione usługi bazy danych nadal stanowią ryzyko.

Edytuj: /root/ferretdb/.env

Zmień HOST=0.0.0.0 to HOST=127.0.0.1

Następnie zastosuj zmiany:

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

Teraz usługa nie jest dostępna z zewnątrz.

Uzyskaj dostęp za pomocą przekierowania portów SSH.

Z lokalnej maszyny:

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

Następnie połącz się lokalnie:

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

Więcej w Narzędzia bazodanowe

Powiązane aplikacje.

Wdróż FerretDB teraz. Od $2,48/mies.