-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenv.example
More file actions
127 lines (104 loc) · 3.34 KB
/
Copy pathenv.example
File metadata and controls
127 lines (104 loc) · 3.34 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
# ===========================================
# PyJob Environment Configuration
# ===========================================
# Copy this file to .env and modify as needed
# All settings can be overridden via environment variables
# ===========================================
# Application Configuration
# ===========================================
NODE_ENV=development
PORT=3000
# ===========================================
# Database Configuration
# ===========================================
# MongoDB connection string
MONGODB_URI=mongodb://localhost:27017/pyjob
# MongoDB connection options
DB_MAX_POOL_SIZE=10
DB_SERVER_SELECTION_TIMEOUT=5000
DB_SOCKET_TIMEOUT=45000
# Test database (for testing)
MONGODB_TEST_URI=mongodb://localhost:27017/pyjob-test
# Redis configuration (optional)
REDIS_ENABLED=false
REDIS_URI=redis://localhost:6379
# ===========================================
# Authentication Configuration
# ===========================================
# JWT settings
JWT_SECRET=your-super-secret-jwt-key-change-in-production
JWT_EXPIRES_IN=24h
JWT_ISSUER=pyjob
JWT_AUDIENCE=pyjob-users
# Password hashing
BCRYPT_SALT_ROUNDS=12
# API Key settings
API_KEY_PREFIX=pyjob_
API_KEY_LENGTH=32
# Session settings
SESSION_SECRET=your-session-secret-change-in-production
SESSION_MAX_AGE=86400000
# ===========================================
# Python Environment Configuration
# ===========================================
# Base path for Python virtual environments
PYTHON_BASE_PATH=/tmp/pyjob-envs
# Python executable paths
PYTHON_EXECUTABLE=python3
PIP_EXECUTABLE=pip3
# Job execution limits
MAX_CONCURRENT_JOBS=5
PYTHON_DEFAULT_TIMEOUT=300000
PYTHON_MAX_TIMEOUT=3600000
# ===========================================
# Rate Limiting Configuration
# ===========================================
# General API rate limiting
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX=100
# Authentication rate limiting
RATE_LIMIT_AUTH_WINDOW_MS=900000
RATE_LIMIT_AUTH_MAX=5
# Job execution rate limiting
RATE_LIMIT_JOB_WINDOW_MS=60000
RATE_LIMIT_JOB_MAX=10
# ===========================================
# CORS Configuration
# ===========================================
# Allowed origins (comma-separated for production)
CORS_ORIGIN=http://localhost:3000,http://localhost:3001
# ===========================================
# Logging Configuration
# ===========================================
# Log level: error, warn, info, debug
LOG_LEVEL=info
# File logging
LOG_FILE_ENABLED=true
LOG_FILE_PATH=./logs
LOG_FILE_MAX_SIZE=20m
LOG_FILE_MAX_FILES=5
# Console logging
LOG_CONSOLE_ENABLED=true
# ===========================================
# Job Configuration
# ===========================================
JOB_MAX_RETRIES=3
JOB_RETRY_DELAY=5000
JOB_CLEANUP_DELAY=30000
JOB_MAX_HISTORY_DAYS=30
# ===========================================
# File Upload Configuration
# ===========================================
UPLOAD_MAX_FILE_SIZE=10485760
UPLOAD_ALLOWED_TYPES=txt,py,json
UPLOAD_TEMP_DIR=/tmp/pyjob-uploads
# ===========================================
# Production Overrides
# ===========================================
# Uncomment and modify for production deployment
# NODE_ENV=production
# MONGODB_URI=mongodb://your-production-mongodb:27017/pyjob
# JWT_SECRET=your-production-jwt-secret-here
# CORS_ORIGIN=https://yourdomain.com,https://api.yourdomain.com
# LOG_LEVEL=warn
# LOG_CONSOLE_ENABLED=false