Zum Hauptinhalt springen
50 % Rabatt alle Pläne, begrenzte Zeit. Ab $2.48/mo
FerretDB

FerretDB

FerretDB ist eine MongoDB-kompatible Datenbank, die auf PostgreSQL oder SQLite basiert. Open-Source-Ersatz für MongoDB Atlas – ohne SSPL-Lizenzüberraschungen. Lizenziert unter Apache 2.0, unterstützt bestehende MongoDB-Treiber ohne Änderungen und profitiert von der Zuverlässigkeit und den Werkzeugen von Postgres.

Auf einen Blick

11k

GitHub-Sterne

38

Seitenaufrufe

103

Aktive Installationen

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

Aktive Installationen sind Beispieldaten (Vorschau); die echte Kennzahl wird vor dem Start eingebunden.

Architektur

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

FerretDB übersetzt MongoDB-Wire-Protocol-Anfragen intern in PostgreSQL-Abfragen.

PostgreSQL ist nicht öffentlich exponiert.

Häfen

  • 27017/tcp → Öffentlicher MongoDB-kompatibler Endpunkt
  • 5432/tcp → Internes PostgreSQL (nicht extern exponiert)

Zugriff

Anmeldedaten-Referenz: /root/ferretdb/.env

Installieren Sie den Client bei Bedarf:

apt install -y mongodb-mongosh

Verbinden Sie sich mit Authentifizierung:

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

Wichtige Dateien und Verzeichnisse

  • Installationsverzeichnis: /root/ferretdb
  • Compose-Datei: /root/ferretdb/docker-compose.yml
  • Environment-Datei: /root/ferretdb/.env
  • PostgreSQL-Datenverzeichnis: /root/ferretdb/data

Service-Management

Status prüfen:

docker ps

Logs ansehen:

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

Dienste neu starten:

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

Häufige MongoDB-Befehle

Datenbanken auflisten:

show dbs

Datenbank wechseln:

use postgres

Collections auflisten:

show collections

Dokumente anzeigen:

db.collection_name.find()

Dokument einfügen:

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

Shell beenden:

exit

FerretDB aus Sicherheitsgründen an Localhost binden

Die Authentifizierung ist aktiviert, aber exponierte Datenbankdienste sind weiterhin ein Risiko.

Bearbeiten: /root/ferretdb/.env

Ändere HOST=0.0.0.0 to HOST=127.0.0.1

Wenden Sie dann die Änderungen an:

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

Jetzt ist der Dienst extern nicht mehr erreichbar.

Zugriff über SSH-Portweiterleitung.

Auf deinem lokalen Rechner:

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

Verbinden Sie sich dann lokal:

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

Mehr zu Datenbank-Tools

Verwandte Apps.

FerretDB jetzt deployen. Ab 2,48 $/Monat.