Vai al contenuto principale
50% di sconto tutti i piani, tempo limitato. A partire da $2.48/mo
FerretDB

FerretDB

FerretDB è un database compatibile con MongoDB, basato su PostgreSQL o SQLite. Alternativa open-source a MongoDB Atlas, senza sorprese legate alle licenze SSPL. Rilasciato sotto licenza Apache 2.0, funziona con i driver MongoDB esistenti senza modifiche ed eredita la durabilità e gli strumenti di Postgres.

In breve

11k

Stelle su GitHub

47

Visualizzazioni di pagina

103

Installazioni attive

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

Le installazioni attive sono dati di esempio (anteprima); la metrica reale sarà collegata prima del lancio.

Architettura

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

FerretDB traduce internamente le richieste del protocollo wire di MongoDB in query PostgreSQL.

PostgreSQL non è esposto pubblicamente.

Porti

  • 27017/tcp → Endpoint pubblico compatibile con MongoDB
  • 5432/tcp → PostgreSQL interno (non esposto esternamente)

Accesso

Riferimento delle credenziali: /root/ferretdb/.env

Installa il client se necessario:

apt install -y mongodb-mongosh

Connettiti con l'autenticazione:

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

File e directory importanti

  • Directory di installazione: /root/ferretdb
  • File di composizione: /root/ferretdb/docker-compose.yml
  • File di environment: /root/ferretdb/.env
  • Directory dei dati di PostgreSQL: /root/ferretdb/data

Gestione del servizio

Verifica lo stato:

docker ps

Visualizza i log:

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

Riavvia i servizi:

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

Comandi comuni di MongoDB

Elenca i database:

show dbs

Cambia database:

use postgres

Elenca le collezioni:

show collections

Visualizza i documenti:

db.collection_name.find()

Inserisci un documento:

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

Esci dalla shell:

exit

Associa FerretDB a Localhost per la sicurezza

L'autenticazione è abilitata, ma i servizi di database esposti rappresentano comunque un rischio.

Modifica: /root/ferretdb/.env

Cambia HOST=0.0.0.0 to HOST=127.0.0.1

Poi applica le modifiche:

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

Ora il servizio non è accessibile dall'esterno.

Accedi usando il port forwarding SSH.

Dalla tua macchina locale:

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

Poi connettiti localmente:

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

Altro in Strumenti per database

App correlate.

Installa FerretDB ora. Da 2,48 $/mese.