Installation
How authorized contributors can install and run Envault locally
This internal guide is for authorized contributors. Most repository paths are proprietary and require explicit written permission to run or deploy. The mcp-server/ and src/lib/sdk/ directories are MIT-licensed exceptions.
Monorepo Components
This repository includes multiple components:
- Web app: root folder (
./) - Go CLI:
cli-go/ - TypeScript SDK:
src/lib/sdk/ - MCP server:
mcp-server/
Prerequisites
Before you begin, ensure you have the following installed:
- Node.js 18+ (LTS recommended)
- Supabase project (or a local Supabase instance)
- Redis (optional, for caching)
Quick Start
Install dependencies
We recommend using pnpm for faster installation, but npm or yarn work just as well.
npm installpnpm installyarn installbun installIf you will work on SDK and MCP packages, also install dependencies in each package folder:
cd src/lib/sdk && npm installcd ../../../mcp-server && npm installcd ..Environment Setup
Copy the example environment file to get started.
cp .env.example .env.localYou will need to populate .env.local with your Supabase credentials.
Start Development Server
npm install -g portlessnpm run devVisit https://envault.localhost:1355 to see your Envault instance running.
Docker Compose
For a quick local setup with all dependencies (including Redis and Postgres), you can use Docker Compose.
version: "3.8"
services:
envault:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://postgres:postgres@db:5432/envault
- ENCRYPTION_KEY=...
depends_on:
- db
- redis
db:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: postgres
redis:
image: redis:alpinedocker-compose up -dVerify Installation
To ensure everything is working correctly:
- Sign In: Open the app and try signing in (this tests Supabase Auth).
- Create Project: Create a new project called "Test Project" (tests Database write).
- Add Secret: Add a key-value pair
TEST_KEY=123(tests Encryption). - SDK/MCP checks (optional):
npm run sdk:checknpm run mcp:checkIf you see an error about ENCRYPTION_KEY missing, ensure you have generated
a valid 32-byte key in your .env.local.
Troubleshooting
ENCRYPTION_KEY Error
If you see "Invalid Encryption Key", run this command to generate a valid one:
openssl rand -hex 32Add the output to your .env.local.
Database Connection Failed
Check your DATABASE_URL and ensure your Supabase project is active. If running locally, make sure your local Supabase instance is running with npx supabase start.