Перейти к основному содержанию
Скидка 50% все планы, ограниченное время. Начиная от $2.48/mo
FerretDB

FerretDB

FerretDB — совместимая с MongoDB база данных на базе PostgreSQL или SQLite. Замена MongoDB Atlas с открытым кодом и без неожиданностей с лицензией SSPL. Лицензия Apache 2.0, поддержка драйверов MongoDB без изменений, с унаследованной надёжностью и инструментарием Postgres.

Кратко

11k

Звёзды на GitHub

38

Просмотры страниц

103

Активные установки

Лицензия Apache-2.0 Версия 2.7.0 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

Активные установки — пример данных (предпросмотр); реальная метрика будет подключена до запуска.

Архитектура

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

FerretDB внутренне преобразует запросы протокола MongoDB wire в запросы PostgreSQL.

PostgreSQL не доступен публично.

Порты

  • 27017/tcp → Публичная конечная точка, совместимая с MongoDB
  • 5432/tcp → Внутренний PostgreSQL (не доступен извне)

Доступ

Справка по учётным данным: /root/ferretdb/.env

Установите клиент при необходимости:

apt install -y mongodb-mongosh

Подключитесь с аутентификацией:

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

Важные файлы и директории

  • Директория установки: /root/ferretdb
  • Compose-файл: /root/ferretdb/docker-compose.yml
  • Файл окружения: /root/ferretdb/.env
  • Каталог данных PostgreSQL: /root/ferretdb/data

Управление сервисами

Проверить статус:

docker ps

Посмотреть логи:

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

Перезапустить службы:

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

Основные команды MongoDB

Список баз данных:

show dbs

Переключить базу данных:

use postgres

Список коллекций:

show collections

Просмотр документов:

db.collection_name.find()

Вставить документ:

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

Выйти из оболочки:

exit

Привяжите FerretDB к localhost для безопасности

Аутентификация включена, но открытые службы базы данных всё равно представляют риск.

Отредактируйте: /root/ferretdb/.env

Замените HOST=0.0.0.0 to HOST=127.0.0.1

Затем примените изменения:

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

Теперь служба недоступна извне.

Доступ через проброс портов SSH.

На вашей локальной машине:

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

Затем подключитесь локально:

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

Ещё в Инструментах для баз данных

Похожие приложения.

Развернуть FerretDB. От $2,48/мес.