Mongo Manager
A secure, self-hosted MongoDB manager in your browser, with an AI agent that asks before it changes anything. Use it alone or with your team: roles and two-factor sign-in, backups, live sync, replica sets and sharded clusters, in ten languages. Works fully offline.
Screenshots, every feature and the full documentation: github.com/mongo-manager/mongo-manager
Install
npx @mongo-manager/app # try it
npm install --global @mongo-manager/app
Offline or air-gapped: copy the release tarball and install it. It has no dependencies and runs no install scripts.
npm install --global ./mongo-manager-<version>.tgz
Requires Node.js 24 or newer.
Use
mongo-manager # local mode on http://127.0.0.1:4321, opens your browser
mongo-manager --auth # team mode: users, roles, two-factor sign-in
mongo-manager --help # all commands and options
| Command | Purpose |
|---|---|
start | Start the web UI (the default command) |
open [--no-open] | Open a running local-mode Mongo Manager with a new one-time link |
forget-browsers | Sign every browser out of local mode (each then needs a new link) |
user add <name> --role admin|editor|viewer | Create a user |
user reset-password <name> | Set a new password and sign the user out everywhere |
user reset-2fa <name> | Remove a user's two-factor methods (admin recovery) |
user list | List users |
bans list | List the addresses banned from the team-mode sign-in |
bans lift <address> / bans lift --all | Lift a sign-in ban (your own address, without a session), or every one |
access list | List the addresses the team-mode panel answers (an empty list: every address) |
access clear | Let every address reach the panel again (an administrator locked out) |
rotate-key | Re-encrypt all stored secrets with a new key. Stop the server first. |
doctor | Check the installation and the data directory |
service install | Run as a system service that starts with the machine (root or Administrator) |
service uninstall | Remove the service; data, config and key are kept (root or Administrator) |
service status|logs [-f] | Show the service state, or its log (-f follows it; not on Windows) |
service open | Print a one-time link that opens the service in local mode (root or Admin) |
backup inspect <file> | List what a backup file holds |
backup decrypt <file.mmbak> -o <file> | Decrypt an encrypted backup into a plain archive that mongorestore can read |
backup decrypt … --key-file <kit.txt> | The same for a scheduled backup sealed with a backup key, with its recovery kit |
version | Print the version |
Every server option also has an MM_* environment variable, for example MM_WEB_PORT, MM_AUTH=1 or MM_DATA_DIR.
On a server
Team mode, behind a reverse proxy that serves HTTPS (nginx, Caddy):
mongo-manager --auth --host 127.0.0.1 --trusted-proxies 127.0.0.1 --allowed-hosts mongo.example.com
The first start prints a one-time setup token; open the address and create the first administrator.
Ready-made nginx and Caddy configurations, the system service and Docker are described in
deploy/. Use --base-path /mongo/
to serve it under a sub-path.
Security notes
-
Listening address. Mongo Manager listens on
127.0.0.1by default. It refuses to listen on a network address without--auth. -
Data directory. Everything lives in the data directory (default
~/.mongo-manager, mode 0700):- the database;
- the encryption key
secret.key(mode 0600). You can supply the key instead throughMM_SECRET_KEY; - in local mode,
launch.key(mode 0600): the secret the one-time launch links are made from. Only a browser that opened such a link can use local mode; delete the file while Mongo Manager is stopped to sign every browser out.
Back up the data directory and the key together. Without the key, saved connection passwords cannot be decrypted.
-
Passwords on the command line. Never pass passwords as command-line arguments; other users can see them in the process list.
usercommands prompt for the password, or read it with--password-stdin.- Use
MM_URIrather than--urifor a connection string that contains a password.
License
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0):
free to use, share and adapt with credit, not for commercial purposes, and shared under the same
license. Bundled third-party components keep their own licenses (dist/THIRD-PARTY-NOTICES.txt).
Author
Gokhan OZGEZER · [email protected] · GitHub · Issues