Saltar al contenido principal
50% de descuento todos los planes, tiempo limitado. Desde $2.48/mo
FerretDB

FerretDB

FerretDB es una base de datos compatible con MongoDB respaldada por PostgreSQL o SQLite. Es un reemplazo de código abierto para MongoDB Atlas sin sorpresas de licencia SSPL. Con licencia Apache 2.0, ejecuta los drivers de MongoDB sin cambios y hereda la durabilidad y las herramientas de Postgres.

En resumen

11k

Estrellas en GitHub

42

Vistas de página

Licencia Apache-2.0 Versión 2.7.0 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

Arquitectura

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

FerretDB traduce internamente las solicitudes del protocolo wire de MongoDB en consultas PostgreSQL.

PostgreSQL no está expuesto públicamente.

Puertos

  • 27017/tcp → Endpoint público compatible con MongoDB
  • 5432/tcp → PostgreSQL interno (no expuesto externamente)

Acceso

Referencia de credenciales: /root/ferretdb/.env

Instale el cliente si es necesario:

apt install -y mongodb-mongosh

Conéctese con autenticación:

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

Archivos y directorios importantes

  • Directorio de instalación: /root/ferretdb
  • Archivo Compose: /root/ferretdb/docker-compose.yml
  • Archivo de entorno: /root/ferretdb/.env
  • Directorio de datos de PostgreSQL: /root/ferretdb/data

Gestión de servicios

Comprobar el estado:

docker ps

Ver registros:

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

Reiniciar los servicios:

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

Comandos comunes de MongoDB

Listar bases de datos:

show dbs

Cambiar de base de datos:

use postgres

Listar colecciones:

show collections

Ver documentos:

db.collection_name.find()

Insertar documento:

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

Salir del shell:

exit

Vincule FerretDB a Localhost por seguridad

La autenticación está habilitada, pero los servicios de base de datos expuestos siguen siendo un riesgo.

Edita: /root/ferretdb/.env

Cambia HOST=0.0.0.0 to HOST=127.0.0.1

Luego aplique los cambios:

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

Ahora el servicio no es accesible externamente.

Acceda mediante reenvío de puertos SSH.

Desde tu máquina local:

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

Luego conéctese localmente:

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

Más en Herramientas de bases de datos

Apps relacionadas.

Despliega FerretDB ahora. Desde $2,48/mes.