Aller au contenu principal
50 % de réduction toutes les offres, durée limitée. À partir de $2.48/mo
FerretDB

FerretDB

FerretDB est une base de données compatible MongoDB, propulsée par PostgreSQL ou SQLite. Alternative open-source à MongoDB Atlas, sans les contraintes de la licence SSPL. Sous licence Apache 2.0, compatible avec les drivers MongoDB existants, et bénéficie de la fiabilité et des outils de Postgres.

En un coup d'œil

11k

Étoiles GitHub

38

Vues de page

103

Installations actives

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

Les installations actives sont des données d'exemple (aperçu) ; la vraie métrique sera connectée avant le lancement.

Architecture

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

FerretDB traduit en interne les requêtes du protocole wire de MongoDB en requêtes PostgreSQL.

PostgreSQL n’est pas exposé publiquement.

Ports

  • 27017/tcp → Point de terminaison public compatible MongoDB
  • 5432/tcp → PostgreSQL interne (non exposé à l’extérieur)

Accès

Référence des identifiants : /root/ferretdb/.env

Installez le client si nécessaire :

apt install -y mongodb-mongosh

Connectez-vous avec authentification :

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

Fichiers et répertoires importants

  • Répertoire d'installation : /root/ferretdb
  • Fichier Compose : /root/ferretdb/docker-compose.yml
  • Fichier d'environnement : /root/ferretdb/.env
  • Répertoire de données PostgreSQL : /root/ferretdb/data

Gestion des services

Vérifier l'état :

docker ps

Voir les logs :

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

Redémarrer les services :

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

Commandes MongoDB courantes

Lister les bases de données :

show dbs

Changer de base de données :

use postgres

Lister les collections :

show collections

Afficher les documents :

db.collection_name.find()

Insérer un document :

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

Quitter le shell :

exit

Lier FerretDB à Localhost pour la sécurité

L’authentification est activée, mais les services de base de données exposés restent un risque.

Modifiez : /root/ferretdb/.env

Remplacez HOST=0.0.0.0 to HOST=127.0.0.1

Appliquez ensuite les modifications :

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

Le service n’est désormais plus accessible depuis l’extérieur.

Accédez-y via la redirection de port SSH.

Depuis votre machine locale :

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

Connectez-vous ensuite localement :

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

Plus dans Outils de bases de données

Apps connexes.

Déployer FerretDB maintenant. À partir de 2,48 $/mois.