FerretDB (MongoDB-compatible)
MongoDB-compatible, built on PostgreSQL
FerretDB speaks the MongoDB wire protocol and stores your documents in PostgreSQL with the DocumentDB extension. Use mongosh and your MongoDB drivers, with Postgres-grade backups underneath.
Good for
- Document apps on an open licence
- Leaving Atlas
- JSON-first prototypes
Sample query
app> db.orders.find(
{ status: "shipped", total: { $gt: 100 } },
{ _id: 0, number: 1, total: 1, country: 1 }
).sort({ total: -1 }).limit(3) | number | total | country |
|---|---|---|
| A-10492 | 842.5 | DE |
| A-10388 | 610 | US |
| A-10511 | 455.9 | NL |
Features
FerretDB on Databasezy
-
MongoDB drivers work
Connect with mongosh, Mongoose or any official MongoDB driver over TLS.
-
PostgreSQL underneath
Documents live in a CloudNativePG cluster with the DocumentDB extension.
-
Point-in-time recovery
Backups and point-in-time recovery come from the backing PostgreSQL, not from MongoDB tooling.
-
Apache 2.0
Fully open source, so there is no licence question about running it as a service.
Quick start
Connect to FerretDB
Hosts, ports and the CA bundle come from the portal or the CLI after you create an instance. Credentials are shown once and never stored by our control plane.
From the CLI
zb instances create --engine ferretdb --name ferretdb-7f3k --waitzb ca > databasezy-ca.pemzb connect ferretdb-7f3kAt a glance
- Category
- Document
- Versions
- 2.7, 2.4
- Wire protocol
- mongodb · port 27017
- Runtime
- Single-node adapter (ghcr.io/ferretdb/ferretdb)
- Backing store
- postgres-documentdb
- Backup
- barman-cloud base backups + continuous WAL archiving to object storage · point-in-time recovery
- Pause
- Scale to zero
- Free tier
- Yes
- Licence
- Apache-2.0
Connection strings and drivers
mongodb://app:<password>@ferret-7f3k.us-east.databasezy.com:27017/app?tls=true&tlsCAFile=databasezy-ca.pem&authSource=adminmongosh "mongodb://ferret-7f3k.us-east.databasezy.com:27017/app?tls=true&authSource=admin" --username appimport { MongoClient } from "mongodb";
const client = new MongoClient(process.env.MONGODB_URI);
const orders = client.db("app").collection("orders");
console.log(await orders.countDocuments());Deployment
Choose where it runs
Placement is chosen per database, so a regulated workload and a side project can live in the same organisation.
-
Standard hosting
Shared cells with namespace isolation, default-deny network policy and an IP allow-list. Available from the free plan up.
- Usage-based compute, billed per running hour
- Spend cap to stop surprises
-
Secure hosting (HIPAA)
This database runs on dedicated nodes in a separate HIPAA cell, under a signed Business Associate Agreement. Available on Team and Enterprise.
- $0.10 per instance-hour on top of compute
- How secure hosting works
-
From the CLI or API
Script instances in CI with the zb CLI or the REST API. Pick the placement per instance.
secure placementzb instances create --engine ferretdb --placement secure --wait
Plans
FerretDB on each plan
Usage-based pricing with a spend cap: you pay a plan fee plus what your instances use.
Free tier
Yes. One f0 instance with a shared vCPU (bursts to 1), 512 MiB of memory and a 500 MB database, no card required. It sleeps after 15 minutes idle and wakes on connect.
Sizes
From s0 (0.25 vCPU, 1 GiB) at $10/mo up to xl32 (32 vCPU, 128 GiB). Resize without changing the connection string.
All sizes and pricesBackups
barman-cloud base backups + continuous WAL archiving to object storage. Point-in-time recovery is an add-on on Solo and Team and Enterprise ($100 per instance per month for each 7 days of retention) and included on Enterprise.
Migrate
Migrate to FerretDB from
Copy a database in with a connection string, a file upload or the CLI. Preflight checks the source first and verification compares the copy.
Documentation
FerretDB docs
- FerretDB (MongoDB-compatible) guide Versions, configuration, limits and engine-specific behaviour.
- Connect to FerretDB Drivers and connection strings for each language, with TLS verification.
- Backups, restore and PITR Schedules, retention, manual snapshots and restoring into a new instance.
- Pause and resume Scale to zero, wake on connect and pause schedules.
- Secure hosting and the BAA Dedicated nodes, customer-managed keys and HIPAA eligibility.
- Limits Connections, storage and request limits by size and plan.
- CLI reference Every zb command used on this page, with flags.
FerretDB questions
Which FerretDB versions can I run?
2.7, 2.4. New instances default to 2.7; pick another with --engine-version or in the portal. Minor and patch updates are applied in your maintenance window after a pre-change backup.
Which extensions, modules or plugins are available?
FerretDB implements the commonly used MongoDB commands and aggregation stages, not all of them. Atlas-only features such as Atlas Search and triggers are not available. Migration preflight flags anything your source uses that FerretDB does not support.
How are backups handled?
Backups use barman-cloud base backups + continuous WAL archiving to object storage. Paid plans run scheduled backups (Solo: daily, 7-day retention; Team: daily, 14-day retention); the free plan keeps one manual snapshot. Point-in-time recovery is available as an add-on on Solo and Team and Enterprise and included on Enterprise. Restores go into a new instance, so the original stays untouched.
Is the connection encrypted?
Always. The gateway terminates TLS (1.3 where your client supports it, 1.2 at minimum) and re-encrypts traffic to the database. Plain-text connections are refused. Verify the server with our CA bundle from the portal or zb ca, and restrict access further with the IP allow-list included on every plan.
Can I pause it when I'm not using it?
Yes. Free instances sleep after 15 minutes without connections and wake on the next one; after 7 idle days they are archived with the disk kept. On paid plans you pause on demand or on a schedule. A paused instance bills storage and backups but no compute, and wakes in 10 to 40 seconds.
What are the limits?
The free plan runs one f0 instance with a shared vCPU (bursts to 1), 512 MiB of memory, 20 connections and a 500 MB database. Paid sizes run from s0 (0.25 vCPU, 1 GiB, 60 connections, $10/mo) to xl32 (32 vCPU, 128 GiB, 5,000 connections), with up to 16 TB of disk.
FerretDB or MongoDB?
Choose FerretDB for an open-source licence, the free tier and PostgreSQL-based backups. Choose MongoDB (Percona Server) when you need full server compatibility, such as change streams or less common aggregation stages.
What you get on each plan
Plan features as they apply to FerretDB (MongoDB-compatible).
| Feature | Free | Solo | Team | Enterprise |
|---|---|---|---|---|
| FerretDB on this plan | Yes | Yes | Yes | Yes |
| Plan fee | $0/mo | $25/mo | $599/mo | Custom |
| Largest size | f0 | xl32 | xl32 | xl32 |
| Included per instance | 500 MB | 8 GB | 8 GB | Negotiated |
| Max disk per instance | 1 GB | 1 TB | 16 TB | 16 TB |
| Scheduled backups | 1 manual snapshot | Daily, 7-day retention | Daily, 14-day retention | Hourly, 35-day retention · cross-region copy · immutable |
| Point-in-time recovery | — | Add-on | Add-on | 35 days included |
| Pause | Sleeps after 15 min idle, wakes on connect | On demand or on a schedule | On demand or on a schedule | On demand or on a schedule |
| Secure hosting (HIPAA) | — | — | Available with a BAA | Available with a BAA |
| Support | Community | Priority | 24x7 dedicated | |
| Uptime SLA | — | — | 99.9% | 99.95% |
Start with FerretDB today
The free plan needs no card. Upgrade when you need more, and keep the same endpoint.