-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
138 lines (114 loc) · 4.38 KB
/
Copy path.env.example
File metadata and controls
138 lines (114 loc) · 4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# ================================
# Movie Recommendr - Environment Variables
# ================================
# ----------------------------------
# Supabase Configuration
# ----------------------------------
# Get these from: https://supabase.com/dashboard/project/_/settings/api
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your-service-key-here
SUPABASE_ANON_KEY=your-anon-key-here
# Public keys (used in Next.js frontend)
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key-here
# ----------------------------------
# OpenAI Configuration
# ----------------------------------
# Get API key from: https://platform.openai.com/api-keys
OPENAI_API_KEY=sk-proj-your-openai-key-here
# Model configuration
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
OPENAI_CHAT_MODEL=gpt-4-turbo
OPENAI_CHAT_MODEL_SMALL=gpt-4.1-mini
# ----------------------------------
# TMDB (The Movie Database)
# ----------------------------------
# Get API key from: https://www.themoviedb.org/settings/api
TMDB_API_KEY=your-tmdb-api-key
TMDB_BASE_URL=https://api.themoviedb.org/3
TMDB_IMAGE_BASE_URL=https://image.tmdb.org/t/p
# ----------------------------------
# Trakt (Optional - for watch history sync)
# ----------------------------------
# Get credentials from: https://trakt.tv/oauth/applications
TRAKT_CLIENT_ID=your-trakt-client-id
TRAKT_CLIENT_SECRET=your-trakt-client-secret
TRAKT_REDIRECT_URI=http://localhost:3000/auth/trakt/callback
# ----------------------------------
# Redis / Upstash (for caching & BullMQ)
# ----------------------------------
# Get Redis URL from: https://console.upstash.com/
REDIS_URL=redis://default:your-password@your-instance.upstash.io:6379
# ----------------------------------
# Application Configuration
# ----------------------------------
NODE_ENV=development
# API Server
API_PORT=3001
API_URL=http://localhost:3001
# Next.js Frontend
NEXT_PUBLIC_API_URL=http://localhost:3001
# ----------------------------------
# Security & Auth
# ----------------------------------
# Generate with: openssl rand -base64 32
JWT_SECRET=your-super-secret-jwt-key-change-in-production
SESSION_SECRET=your-session-secret
# ----------------------------------
# AI/ML Configuration
# ----------------------------------
# Embedding dimensions (OpenAI text-embedding-3-small = 1536)
EMBEDDING_DIMENSIONS=1536
# Vector search settings
VECTOR_SEARCH_LIMIT=50
RECOMMENDATION_LIMIT=10
# RAG settings
RAG_CONTEXT_LIMIT=10
RAG_MAX_TOKENS=4000
# Query router threshold (0-100, lower = more queries go to RAG)
ROUTER_COMPLEXITY_THRESHOLD=50
# ----------------------------------
# BullMQ / Job Queue Configuration
# ----------------------------------
QUEUE_NAME=movie-jobs
QUEUE_CONCURRENCY=5
# Master kill switch for all BullMQ queues. When set to "false",
# QueuesModule is excluded from AppModule entirely: no Queue objects,
# no workers, no scheduler, no event listeners — zero BullMQ Redis ops.
# Cache via RedisService keeps working. Use this when Upstash budget is
# tight and you only need Redis for cache. Endpoints under /api/queues/*
# return 404 when off. Default: enabled.
QUEUES_ENABLED=true
# Granular control (only relevant when QUEUES_ENABLED=true). Set to
# "false" to disable ONLY movie-import and tv-import workers and remove
# their cron schedules; embedding-generation and translation-update keep
# running. To re-enable: set true and restart, then re-create cron schedules
# via POST /api/queues/schedule-rotational-{movie,tv}-import.
IMPORT_QUEUES_ENABLED=true
# ----------------------------------
# Logging & Monitoring
# ----------------------------------
LOG_LEVEL=debug
ENABLE_REQUEST_LOGGING=true
ENABLE_LLM_TRACING=true
# ----------------------------------
# Feature Flags
# ----------------------------------
ENABLE_TRAKT_INTEGRATION=false
ENABLE_MMR_DIVERSIFICATION=true
ENABLE_COLLABORATIVE_FILTERING=false
# ----------------------------------
# Rate Limiting
# ----------------------------------
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=100
# ----------------------------------
# Development Tools
# ----------------------------------
# Enable Swagger API docs
ENABLE_SWAGGER=true
# Enable CORS (for local development)
CORS_ORIGIN=http://localhost:3000
# Admin API key for operational endpoints (/api/queues/*, /api/embeddings/*, tmdb imports)
# Required header: X-Admin-Api-Key. Generate: openssl rand -hex 32
ADMIN_API_KEY=your_admin_api_key_here