because I got bored of customising my CV for every job
1# Database
2POSTGRES_USER=cv
3POSTGRES_PASSWORD=cv
4POSTGRES_DB=cv
5DB_PORT=5432
6DATABASE_URL=postgresql://cv:cv@db:5432/cv
7
8# Server
9SERVER_PORT=3000
10NODE_ENV=development
11JWT_SECRET=your-super-secret-jwt-key-here
12JWT_ACCESS_TOKEN_EXPIRY=15m
13JWT_REFRESH_TOKEN_EXPIRY=7d
14
15# Client
16CLIENT_PORT=5173
17VITE_SERVER_URL=http://localhost:3000
18CLIENT_URL=http://localhost:5173
19
20# Docs
21DOCS_PORT=3001
22VITE_CLIENT_URL=http://localhost:5173
23VITE_DOCS_URL=http://localhost:3001
24
25# Prisma
26PRISMA_ENABLE_TRACING=false
27
28# Encryption
29ENCRYPTION_KEY=94caadf1e9765adf9d89fc3c440f4b67651ec85b3bc0cf8fe3b0e1db2c585779
30
31# Email (optional in dev - emails logged to console)
32# RESEND_API_KEY=
33# EMAIL_FROM_ADDRESS=noreply@example.com
34# EMAIL_FROM_NAME=CV Generator
35
36# AI Provider Configuration
37# Options: llama-cpp (default), openai, anthropic
38AI_PROVIDER=llama-cpp
39AI_TEMPERATURE=0.1
40AI_MAX_TOKENS=2048
41AI_TIMEOUT=60000
42
43# Llama.cpp (when AI_PROVIDER=llama-cpp)
44LLAMA_URL=http://llama:8080
45MODEL_PATH=/models/mistral-7b-instruct-v0.2.Q4_K_M.gguf
46
47# OpenAI (when AI_PROVIDER=openai)
48# OPENAI_API_KEY=sk-...
49# OPENAI_BASE_URL=https://api.openai.com
50# OPENAI_MODEL=gpt-4o-mini
51
52# Anthropic (when AI_PROVIDER=anthropic)
53# ANTHROPIC_API_KEY=sk-ant-...
54# ANTHROPIC_BASE_URL=https://api.anthropic.com
55# ANTHROPIC_MODEL=claude-sonnet-4-5-20250929
56
57# LinkedIn OAuth (Future)
58# LINKEDIN_CLIENT_ID=
59# LINKEDIN_CLIENT_SECRET=
60# LINKEDIN_REDIRECT_URI=http://localhost:5173/auth/linkedin/callback
61
62# project-q / Worker
63# PROJECT_Q_PATH=/path/to/project-q # Only needed for docker compose build