Gå til hovedindhold
50% rabat alle planer, tidsbegrænset. Fra $2.48/mo
FerretDB

FerretDB

FerretDB er en MongoDB-kompatibel database med PostgreSQL eller SQLite som backend. Et open-source alternativ til MongoDB Atlas uden SSPL-licensoverraskelser. Licenseret under Apache 2.0, kører eksisterende MongoDB-drivere uændret og arver Postgres's pålidelighed og værktøjer.

Overblik

11k

GitHub-stjerner

38

Sidevisninger

103

Aktive installationer

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

Aktive installationer er eksempeldata (forhåndsvisning); den rigtige metrik tilsluttes inden lancering.

Arkitektur

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

FerretDB oversætter internt MongoDB wire protocol-forespørgsler til PostgreSQL-forespørgsler.

PostgreSQL er ikke offentligt eksponeret.

Havne

  • 27017/tcp → Offentligt MongoDB-kompatibelt endpoint
  • 5432/tcp → Intern PostgreSQL (ikke eksponeret eksternt)

Adgang

Reference til loginoplysninger: /root/ferretdb/.env

Installer klienten om nødvendigt:

apt install -y mongodb-mongosh

Opret forbindelse med autentificering:

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

Vigtige filer og mapper

  • Installationsmappe: /root/ferretdb
  • Kompositionsfil: /root/ferretdb/docker-compose.yml
  • Environment-fil: /root/ferretdb/.env
  • PostgreSQL-datamappe: /root/ferretdb/data

Service-håndtering

Tjek status:

docker ps

Se logs:

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

Genstart tjenester:

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

Almindelige MongoDB-kommandoer

Vis databaser:

show dbs

Skift database:

use postgres

Vis collections:

show collections

Vis dokumenter:

db.collection_name.find()

Indsæt dokument:

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

Afslut shell:

exit

Bind FerretDB til localhost for sikkerhed

Autentificering er aktiveret, men eksponerede databasetjenester er stadig en risiko.

Rediger: /root/ferretdb/.env

Ændring HOST=0.0.0.0 to HOST=127.0.0.1

Anvend derefter ændringerne:

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

Nu er tjenesten ikke tilgængelig eksternt.

Få adgang via SSH-port forwarding.

Fra din lokale maskine:

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

Opret derefter forbindelse lokalt:

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

Mere i Databaseværktøjer

Relaterede apps.

Deploy FerretDB nu. Fra 2,48 $/md.