FerretDB MongoDB Migration — check your files for free

FerretDB migration check: flags SSPL MongoDB server images in docker-compose, Helm and Dockerfiles, plus the commands FerretDB 2.7 does not implement (transactions, roles, profiler), with the fix for each line. Runs entirely in your browser — nothing is uploaded.

Same engine as the VS Code extension, byte for byte.

Get the complete version $29

This page is the working piece. The full pack has everything below.

ferretdb migration check: SSPL MongoDB images (Community Server releases since October 16, 2018, SSPL Section 13) and FerretDB 2.7 gaps, line by line, 19 rules

DOJ's Fitzpatrick Matrix rates a 15-year litigator at $851/hour for billing year 2026

Buy the full version — $29
Want the full version?
Enter your email and we send the download link.
ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

FerretDB Migration Lint — MongoDB SSPL gate

Six lines in our sample docker-compose.yml block a move from MongoDB to FerretDB: the lint reports 14 findings, 9 of them errors. The file belongs to the kind of team this guide is for: a SaaS or platform team in the US or the EU that self-hosts MongoDB Community Server behind a hosted product.

What MongoDB changed, and when

MongoDB's SSPL FAQ is plain about the date. Every MongoDB Community Server release on or after October 16, 2018, including patch releases of older versions, is under the Server Side Public License. Section 13 of the SSPL says that if you make the functionality of the program available to third parties as a service, you must publish the Service Source Code of the whole service at no charge: management software, user interfaces, APIs, automation, monitoring, backup, storage and hosting software. The FAQ also says there is no copyleft condition for other SaaS applications that only use MongoDB as a database. Which side you sit on is a question for your lawyer; DOJ's Fitzpatrick Matrix rates a 15-year litigator at $851/hour for billing year 2026.

FerretDB is the Apache-2.0 way out. It speaks the MongoDB wire protocol and stores data in PostgreSQL with the DocumentDB extension. FerretDB v2.7.0 was released on 2025-11-10.

The image is the easy line

The FerretDB docs give the pair to run: ghcr.io/ferretdb/ferretdb:2.7.0 and ghcr.io/ferretdb/postgres-documentdb:17-0.107.0-ferretdb-2.7.0, joined by FERRETDB_POSTGRESQL_URL. They strongly recommend the full tag. That swap takes a minute, and it is the only line a chatbot changes when you paste the service block.

The lines that fail after cut-over

The FerretDB compatibility page is a table of commands, and several say "Not implemented yet". In the sample file:

Then there are lines that fail quietly. MONGO_INITDB_ROOT_USERNAME is read only by the mongo image; FerretDB checks the credentials in the client URI against PostgreSQL. --replSet and rs.initiate() bootstrap a mongod replica set that no longer exists.

Checking a file

FerretDB Migration Lint has 19 rules. Open the compose file, values file, Dockerfile or driver code in VS Code and run the check, or paste it into the free web version, which runs the same engine in the browser. Each finding carries its line and the FerretDB fix. On the FerretDB version of the same compose file it reports zero findings.

The free check covers the open file completely. A licence key adds a workspace scan that exports one Markdown migration report for the pull request.

After the lint

Move the data with mongodump and mongorestore, which the FerretDB migration guide uses, then run your application tests against FerretDB before cut-over. The lint tells you which of those tests will fail first.

15 seconds — what it actually does

Questions people ask

What does FerretDB Migration Lint check?

It reads docker-compose.yml, Helm values.yaml, Dockerfiles and JavaScript, TypeScript or Python driver code and marks every line that runs an SSPL MongoDB server image or calls a command FerretDB 2.7 does not implement, such as commitTransaction, createRole, grantRolesToUser, convertToCapped, killOp, setParameter or profile. Each finding shows the line and the FerretDB fix. It has 19 rules.

Who is FerretDB Migration Lint for?

It is for SaaS and platform teams in the US, the EU and elsewhere that self-host MongoDB Community Server behind a hosted product. Every release on or after October 16, 2018 is SSPL, and SSPL Section 13 applies when you offer its functionality to third parties as a service. It helps teams moving to FerretDB on PostgreSQL.

Why not just ask a chatbot or swap the image by hand?

Swapping image: mongo for ghcr.io/ferretdb/ferretdb:2.7.0 is one line. The failures sit elsewhere: an init script that calls createRole or convertToCapped, a service that commits a multi-document transaction, a --setParameter flag. A chatbot rewrites the snippet you paste; this lint reads every line of the file against the FerretDB 2.7 compatibility table.

What is free and what does the $29 version add?

Free, with no key: the open or pasted file, all 19 rules, every finding with its line and fix, in VS Code or the browser. The $29 version, one payment, one licence key per person or team seat, scans the whole workspace in one pass and exports one Markdown migration report with file, line, rule and fix for the pull request.

What does it cost to have a person check this instead?

An SSPL question usually goes to a lawyer first. DOJ's Fitzpatrick Matrix rates a 15-year litigator at $851/hour for billing year 2026, and that hour does not read your init script. This lint lists the SSPL server images and the FerretDB 2.7 gaps line by line, free for the open file and $29 once for the workspace report.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.