Master key
argon2id · 16-byte salt · 32-byte key
Your master password becomes a key on your device. It is derived on unlock, takes about a second, and is stored nowhere.
Montara Pass is a secure, open-source password manager that encrypts every login in the browser. The server you run stores ciphertext and wrapped keys. Nothing else.
Built by Montara Projectargon2id · aes-256-gcm · rsa-oaep 3072
What it runs on.
Three layers of keys. The server keeps the wrapped ones and can open none of them.
argon2id · 16-byte salt · 32-byte key
Your master password becomes a key on your device. It is derived on unlock, takes about a second, and is stored nowhere.
aes-256-gcm · one key per item
Every item is sealed with its own random key. Name, username, password, URL and notes are all inside the ciphertext.
rsa-oaep · 3072-bit · sha-256
Sharing wraps the item key with the recipient's public key. The content is not re-encrypted and the server never holds the key.
9 features in v2.7.0. filter by where they run.
Two item types. The type is the only field stored in the clear, so clients can filter by it.
A badge in login fields lists the logins saved for that site. Nothing is filled until you pick one.
A login is offered on its saved host and that host's subdomains. example.com.evil.net gets nothing.
Saving a login from the popup generates a password for it. 20 characters by default.
Share one item with another user as editor or viewer. Every item has exactly one owner.
Removing a member re-encrypts the item under a new key, wrapped for whoever is left.
Folder names are encrypted. Folder and favorite stay personal, even on a shared item.
The web app locks on reload. The extension locks after 15 minutes without use, or when the browser closes.
Every write names the revision it read. A stale one gets 409 Conflict instead of overwriting.
One image holds the API and the web app. Add PostgreSQL 18 and a domain, and the ciphertext never leaves your infrastructure.
Top to bottom: what you install, what we ship in the image, and where your data lands.
your devicesclient side
your docker hostone image
your data & servicesstays yours
ghcr.io/montara-project/montara-pass/community:v2.7.0one Compose service · nothing phones home
Four steps from a fresh server to your first encrypted item.
Create a Compose service
deploy/docker-compose.yml
Set the secrets
POSTGRES_PASSWORD · APP_SECRET · AUTH_BASE_URL · EDITION=community · SEED_ON_BOOT=true · SUPER_USER
Point a domain at :8080
Caddy · Traefik · Dokploy
Deploy
docker compose up -d · migrations run on boot
terminal
$ docker compose -f deploy/docker-compose.yml up -d api listening on :8080 migrations applied vault ready · open your domain
Needs Docker, PostgreSQL 18 and a domain. Resend is optional in the Community Edition.
docker · dokploy · configuration · migrations
Run the Compose stack. The server waits for PostgreSQL, applies its migrations and answers on /api/health.
Sign up in the web app and choose a master password of 12 characters or more. The keys are made in your browser.
Build the extension, point it at your server's origin, unlock, and click Fill on a login page.
Self-hosting costs you a server and nothing to us. Cloud runs it for you, cancel anytime.
$0forever
Run it on your own hardware. Nothing to us, nothing to renew.
Docker · PostgreSQL 18 · domain · Resend API key
We run the server and PostgreSQL for you. The same zero-knowledge encryption.
Paid through Lemon Squeezy · cancel anytime
Need a business plan or an invoice? Contact us
Your master password is stretched into a key with Argon2id on your device. Every item is encrypted with AES-256-GCM under its own key, and those keys are wrapped with RSA-OAEP 3072. The server only ever holds the encrypted forms, so someone who copies its database gets ciphertext and nothing to open it with.
Yes. The server, web app and browser extension are MIT-licensed and on GitHub, so you can read exactly how your vault is encrypted and run the whole stack yourself.
Ciphertext, wrapped keys, and one field in the clear: the item type, login or secure_note, so clients can filter. It also knows your account email and which users an item is shared with. It never receives the master password, any unwrapped key, item content or folder names.
The vault cannot be read by anyone. The server holds nothing that can open the vault key, so there is no reset and no recovery.
No. You sign in with a password, a magic link or Google. The master password is separate, unlocks the vault on your device and never reaches the server.
A server with Docker, PostgreSQL 18 (the schema uses uuidv7()), a domain with HTTPS and a Resend API key for sign-in emails. The repository ships a Compose stack for Dokploy.
Chrome, other Chromium browsers and Firefox 140 or newer. You build it with pnpm build:extension and load it from disk, then point it at your server's origin.
No. There is the web app and the browser extension.
Not future versions. Removing a member rotates the item key. Anything they already read, they have read, so change the password itself if that matters.
The server cannot search or sort encrypted content. The web app decrypts the page it received and filters there. Folder, type and trash are filtered on the server.
One Compose file, one PostgreSQL database, one domain.
Self-host