Saltar para o conteúdo principal
50% de desconto todos os planos, tempo limitado. A partir de $2.48/mo
FerretDB

FerretDB

FerretDB é um banco de dados compatível com MongoDB, baseado em PostgreSQL ou SQLite. Substituto open-source do MongoDB Atlas sem surpresas de licenciamento SSPL. Licenciado sob Apache 2.0, funciona com os drivers do MongoDB sem alterações e herda a durabilidade e as ferramentas do Postgres.

Em resumo

11k

Estrelas no GitHub

47

Visualizações de página

103

Instalações ativas

Licença Apache-2.0 Versão 2.7.0 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

As instalações ativas são dados de amostra (pré-visualização); a métrica real será conectada antes do lançamento.

Arquitetura

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

O FerretDB traduz internamente as requisições do protocolo de rede do MongoDB em consultas PostgreSQL.

O PostgreSQL não é exposto publicamente.

Portas

  • 27017/tcp → Endpoint público compatível com MongoDB
  • 5432/tcp → PostgreSQL interno (não exposto externamente)

Acesso

Referência de credenciais: /root/ferretdb/.env

Instale o cliente se necessário:

apt install -y mongodb-mongosh

Conecte-se com autenticação:

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

Ficheiros e diretórios importantes

  • Diretório de instalação: /root/ferretdb
  • Arquivo de composição: /root/ferretdb/docker-compose.yml
  • Ficheiro de ambiente: /root/ferretdb/.env
  • Diretório de dados do PostgreSQL: /root/ferretdb/data

Gestão de serviços

Verificar o status:

docker ps

Ver registos:

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

Reiniciar os serviços:

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

Comandos comuns do MongoDB

Listar bancos de dados:

show dbs

Trocar de banco de dados:

use postgres

Listar coleções:

show collections

Visualizar documentos:

db.collection_name.find()

Inserir documento:

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

Sair do shell:

exit

Vincule o FerretDB ao Localhost por segurança

A autenticação está ativada, mas serviços de banco de dados expostos ainda representam um risco.

Editar: /root/ferretdb/.env

Alterar HOST=0.0.0.0 to HOST=127.0.0.1

Em seguida, aplique as alterações:

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

Agora o serviço não é acessível externamente.

Acesse usando o encaminhamento de porta SSH.

Na sua máquina local:

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

Em seguida, conecte-se localmente:

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

Mais em Ferramentas de base de dados

Aplicações relacionadas.

Implante o FerretDB agora. A partir de $2,48/mês.