Self-Hosted Deployment
Run CareerLens on your own infrastructure with your own API keys. Free forever.
Quick Start — Docker
docker run -d \ -p 3000:3000 \ -v careerlens-data:/data \ -e GEMINI_API_KEY=your-gemini-api-key \ -e JWT_SECRET=your-random-secret \ careerlens:latest
Open http://localhost:3000
Docker Compose
# Create .env with your credentials, then: docker compose up -d
Kubernetes (Helm)
kubectl create secret generic careerlens-secrets \ --from-literal=GEMINI_API_KEY=your-gemini-api-key helm install careerlens ./helm/careerlens \ --set env.JWT_SECRET=$(openssl rand -hex 32)
Add --set ingress.enabled=true --set ingress.host=your.domain for ingress
Environment Variables
| Variable | Required | Description |
|---|---|---|
| GEMINI_API_KEY | Yes | Google Gemini API key |
| JWT_SECRET | Yes | Secret for JWT token signing |
| DATABASE_URL | No | SQLite path (default: /data/careerlens.db) |
| STRIPE_SECRET_KEY | No | Stripe key (optional, for payments) |
Data & Privacy
- • SQLite database stored at /data/careerlens.db
- • Mount a volume to /data for persistence
- • Reports auto-expire after 7 days
- • No data leaves your infrastructure (except Gemini API calls)