Self-hosted, end-to-end encrypted team password manager. One container and your Postgres.
See the codeA team password manager you run on your own servers. Passwords, notes, fields and files are encrypted in the browser before they're sent, so the server can't read them. Sign-in needs an authenticator code, or, for single sign-on organisations that choose it, the provider's two-step check.

# never reaches the server.Website: vault.clane.ai · Made by Clane AI Labs, Ireland.
Users → HTTPS reverse proxy → Clane Vault (one container) → Postgres 14+
One image, ghcr.io/clane-ai/clane-vault. It runs at its own address or under a path such as
https://intranet.example.com/vault, and runs its database migrations on start. There is no telemetry and no
licence server. The only outbound call the app makes is the optional breached-password check: members who turn it on
send the first 5 characters of a password's SHA-1 hash to Have I Been Pwned, and an organisation policy can switch it
off.
# from deploy/client/
./install.sh # Windows: .\install.ps1
docker compose exec clane-vault node dist/src/scripts/bootstrap.js --email [email protected]
The installer writes .env with random secrets, optionally starts a bundled Postgres, and waits for the health
check. The second command prints a one-time link for the first admin. The full guide, including reverse proxies,
backups, updates and attachment storage, is in deploy/client/README.md.
No external security audit has been done yet. The designs are in docs/design/, and docs/sharing.md describes what a compromised server could and couldn't do. To report a vulnerability, see SECURITY.md.
Requirements: Node.js 22 and Docker.
npm ci
docker compose -f deploy/docker-compose.dev.yml up -d # Postgres on 127.0.0.1:5434
cp apps/api/.env.example apps/api/.env
npm run dev -w @clane-vault/api # API on :3001
npm run dev -w @clane-vault/web # web app on :5173
| Path | What it is |
|---|---|
packages/crypto | Client-side encryption and key handling, shared by the web app and the extension |
apps/api | Fastify API and Prisma schema |
apps/web | React web app (also the installable app) |
apps/extension | Browser extension (Manifest V3) |
e2e | Playwright end-to-end tests |
deploy/client | The install bundle for self-hosters |
Checks: npm run typecheck, npm test (the API tests start Postgres in Docker) and npm run e2e.
Issues and pull requests are welcome. See CONTRIBUTING.md and the Code of Conduct.
AGPL-3.0. You can use, study, change and self-host Clane Vault. If you run a changed version as a service for others, you must offer them its source.
Self-hosted, end-to-end encrypted team password manager. One container and your Postgres.
See the codeA team password manager you run on your own servers. Passwords, notes, fields and files are encrypted in the browser before they're sent, so the server can't read them. Sign-in needs an authenticator code, or, for single sign-on organisations that choose it, the provider's two-step check.

# never reaches the server.Website: vault.clane.ai · Made by Clane AI Labs, Ireland.
Users → HTTPS reverse proxy → Clane Vault (one container) → Postgres 14+
One image, ghcr.io/clane-ai/clane-vault. It runs at its own address or under a path such as
https://intranet.example.com/vault, and runs its database migrations on start. There is no telemetry and no
licence server. The only outbound call the app makes is the optional breached-password check: members who turn it on
send the first 5 characters of a password's SHA-1 hash to Have I Been Pwned, and an organisation policy can switch it
off.
# from deploy/client/
./install.sh # Windows: .\install.ps1
docker compose exec clane-vault node dist/src/scripts/bootstrap.js --email [email protected]
The installer writes .env with random secrets, optionally starts a bundled Postgres, and waits for the health
check. The second command prints a one-time link for the first admin. The full guide, including reverse proxies,
backups, updates and attachment storage, is in deploy/client/README.md.
No external security audit has been done yet. The designs are in docs/design/, and docs/sharing.md describes what a compromised server could and couldn't do. To report a vulnerability, see SECURITY.md.
Requirements: Node.js 22 and Docker.
npm ci
docker compose -f deploy/docker-compose.dev.yml up -d # Postgres on 127.0.0.1:5434
cp apps/api/.env.example apps/api/.env
npm run dev -w @clane-vault/api # API on :3001
npm run dev -w @clane-vault/web # web app on :5173
| Path | What it is |
|---|---|
packages/crypto | Client-side encryption and key handling, shared by the web app and the extension |
apps/api | Fastify API and Prisma schema |
apps/web | React web app (also the installable app) |
apps/extension | Browser extension (Manifest V3) |
e2e | Playwright end-to-end tests |
deploy/client | The install bundle for self-hosters |
Checks: npm run typecheck, npm test (the API tests start Postgres in Docker) and npm run e2e.
Issues and pull requests are welcome. See CONTRIBUTING.md and the Code of Conduct.
AGPL-3.0. You can use, study, change and self-host Clane Vault. If you run a changed version as a service for others, you must offer them its source.