Self-Hosting
Keeplas is AGPL-3.0 and fully self-hostable. Run the whole stack on your own infrastructure — your data, your servers, your rules. Because the vault is zero-knowledge, self-hosting changes who operates the servers, not who can read your data. Only you can.
Requirements
You need a recent Node toolchain, pnpm, and a Convex deployment. Docker is optional for a containerized dev environment.
- Node.js 20+ and pnpm 10+ (
corepack enablerecommended) - A Convex deployment — Convex Cloud or self-hosted (
CONVEX_MODE=selfhosted) - Docker (optional) for a pinned, containerized dev environment
One-command bootstrap
Clone the repo, then run the bootstrap script. It copies .env.local, installs dependencies, and links per-package env files.
git clone https://github.com/Keeplas/keeplas.git
cd keeplas
pnpm bootstrap
Provision Convex and secrets
Generate the audit HMAC secret, provision your Convex deployment, seed the auth keys, sync env, then boot the app.
openssl rand -base64 32 # set KEEPLAS_CTX_SECRET in .env.local
npx convex dev --once --configure=new
npx @convex-dev/auth # seeds JWT keys
pnpm sync:convex-env
pnpm dev
The app is now serving on http://localhost:3000. Convex is running in dev mode against your account.
Or use Docker
Prefer containers? The provided Dockerfile.dev pins Node and pnpm to match CI, with source bind-mounted for hot reload.
cp .env.local.example .env.local # then fill KEEPLAS_CTX_SECRET
docker compose up
Deploying to production
The reference deployment targets Vercel for the web app and Convex Cloud for the backend. Both are free tier-friendly and require zero infra work; together they let you run a hardened, observability-equipped Keeplas without managing servers.
If you want full sovereignty, the Convex backend can run self-hosted (CONVEX_MODE=selfhosted) against any Postgres-compatible store. The Next.js app is a standard Node application — deploy it anywhere that runs Node 20+.
Because the vault is zero-knowledge, server operators (you, in this case) only ever see ciphertext. Self-hosting changes who runs the infrastructure, not who can decrypt your data.
What's next
- Architecture — what's in
apps/web,packages/convex, andpackages/crypto - Contributing — workflow, CLA, restricted areas, security disclosure