Back to all templates
FerretDB logo

FerretDB

Database512MB+ RAM

MongoDB-compatible database built on PostgreSQL

databasenosqlmongodb-compatiblepostgres

Deploy FerretDB in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select FerretDB

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy FerretDB on a VPS with Server Compass

Use the FerretDB template in Server Compass to deploy a MongoDB-compatible database backed by PostgreSQL on your VPS, then verify it with mongosh.

About 10 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select the tutorial-vps VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating a FerretDB app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for FerretDB

Use the template picker search to find FerretDB in the Server Compass template catalog.

Searching for FerretDB in the Server Compass template picker
4
Step 4

Select the FerretDB template

Choose the FerretDB template. Server Compass fills the FerretDB service, PostgreSQL backend, persistent data volume, MongoDB-compatible host port, database name, backend username, and generated PostgreSQL password.

FerretDB template selected in Server Compass
5
Step 5

Review the FerretDB settings

Confirm the app name and compose service. In this run, the app was named ferretdb-demo and used host port 27017.

Reviewing FerretDB project settings and compose services
6
Step 6

Deploy FerretDB

Review the generated environment values, keep the PostgreSQL backend password masked, confirm the MongoDB-compatible port is available, and click Deploy Now.

Reviewing FerretDB environment variables and port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass uploads the compose file, pulls the FerretDB image, starts the container, and verifies the stack.

Server Compass deploying the FerretDB template on the VPS
8
Step 8

Confirm FerretDB is running

After deployment finishes, return to the Apps tab and confirm the FerretDB app is marked Running with the database port available.

FerretDB template running in the Server Compass Apps tab
9
Step 9

Verify FerretDB is reachable

Open the app detail view and verify the running FerretDB and PostgreSQL containers. In this tutorial run, a temporary MongoDB client container confirmed that FerretDB responded to a ping.

FerretDB app detail screen after verifying the deployed database container

After FerretDB Opens

  • Store the generated PostgreSQL backend password in a secure password manager.
  • Create application-specific databases and collections before production use.
  • Restrict external access to port 27017 unless remote clients explicitly need it.
  • Configure regular backups for the PostgreSQL backend data volume before storing production data.
  • Review FerretDB compatibility notes before using MongoDB-specific features in production.

Verified Result

A temporary MongoDB client container returned ping result 1 against the FerretDB service.

FerretDB deployment questions

What does the FerretDB template deploy?

It deploys FerretDB plus a PostgreSQL backend. FerretDB exposes a MongoDB-compatible endpoint while data is stored in PostgreSQL.

Which port did the tutorial use?

The tutorial used host port 27017, which maps to FerretDB container port 27017.

Why is there no browser verification screenshot?

FerretDB is a database service, not a web application. The tutorial verifies it with mongosh from a temporary client container instead of opening a browser page.

Should this become a blog post?

No. The deployment guide should live on the FerretDB template detail page and be linked from the reusable template deployment docs page.

Terminal Deployment

FerretDB CLI Deployment

Deploy FerretDB the traditional way with SSH and Docker Compose.

1

Start a Secure Shell Session

Open your terminal and connect to your server. Replace the IP address with your VPS IP.

terminal
# SSH into your server
ssh root@your-server-ip

# Using a custom SSH key
ssh -i ~/.ssh/id_rsa root@your-server-ip

First time? Need Docker? Install it: curl -fsSL https://get.docker.com | sh

2

Prepare Your Workspace

Set up a clean directory for your application.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/ferretdb
cd ~/apps/ferretdb
3

Set Up Container Configuration

Set up the container stack using this Docker Compose configuration:

docker-compose.yml
services:
  ferretdb:
    image: ferretdb/ferretdb:latest
    ports:
      - "27017:27017"
    environment:
      - FERRETDB_POSTGRESQL_URL=postgres://ferret:<your-postgres-password>@postgres:5432/ferretdb
    depends_on:
      postgres:
        condition: service_healthy
    restart: unless-stopped

  postgres:
    image: postgres:16-alpine
    environment:
      - POSTGRES_USER=ferret
      - POSTGRES_PASSWORD=<your-postgres-password>
      - POSTGRES_DB=ferretdb
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ferret -d ferretdb"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  postgres_data:
Deployment Settings
PORTMongoDB port(default: 27017)
POSTGRES_USERUser(default: ferret)
POSTGRES_PASSWORDPassword
POSTGRES_DBDatabase(default: ferretdb)
4

Bring Up the Application

Launch your application stack in the background.

terminal
# Start the containers in detached mode
docker compose up -d

# Check if containers are running
docker compose ps

# View logs
docker compose logs -f
5

Configure Firewall

Configure your firewall to permit external connections.

terminal
# Allow the application port through firewall
sudo ufw allow 27017/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:27017
Skip the Terminal

Prefer a visual interface? Use Server Compass.

Server Compass makes deploying FerretDB effortless. Visual setup, one-click deploy, done.

  • Visual configuration UI
  • One-click deployment
  • Automatic SSL setup
  • Zero-downtime updates
  • Built-in monitoring
  • One-click rollbacks
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying FerretDB with Server Compass, complete these steps to finish setup

1

Connect with mongosh or MongoDB drivers

2

Create collections (stored as PostgreSQL tables)

Need help? Check out our documentation for detailed guides.

FerretDB FAQ

Common questions about self-hosting FerretDB

How do I deploy FerretDB with Server Compass?

Simply download Server Compass, connect to your VPS, and select FerretDB from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.

What are the system requirements for FerretDB?

FerretDB requires a minimum of 512MB RAM. We recommend a VPS with at least 1024MB RAM for optimal performance. Any modern Linux server with Docker support will work.

Can I migrate my existing FerretDB data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard FerretDB backup and restore procedures.

How do I update FerretDB to the latest version?

Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest FerretDB image will be pulled and deployed with zero downtime.

Is FerretDB free to self-host?

FerretDB is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.

Ready to Self-Host FerretDB?

Download Server Compass and deploy FerretDB to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass