-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
135 lines (112 loc) · 3.96 KB
/
.env.example
File metadata and controls
135 lines (112 loc) · 3.96 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
# ============================================
# ScreenCraft Production Environment Variables
# ============================================
# Copy this file to .env and fill in the values
# NEVER commit .env to version control!
# ============================================
# Database (PostgreSQL)
# ============================================
# Production database password (CHANGE THIS!)
POSTGRES_PASSWORD=your_strong_postgres_password_here
# Full database URL
DATABASE_URL=postgresql://screencraft:${POSTGRES_PASSWORD}@postgres:5432/screencraft
# ============================================
# Redis Cache & Queue
# ============================================
# Redis password for production (CHANGE THIS!)
REDIS_PASSWORD=your_strong_redis_password_here
# Redis connection details
REDIS_HOST=redis
REDIS_PORT=6379
# ============================================
# MinIO Object Storage
# ============================================
# MinIO root credentials (CHANGE THIS!)
MINIO_ROOT_USER=your_minio_admin_user
MINIO_ROOT_PASSWORD=your_strong_minio_password_here
# MinIO configuration
MINIO_ENDPOINT=minio
MINIO_PORT=9000
MINIO_BUCKET=screenshots
MINIO_USE_SSL=false
# ============================================
# API Configuration
# ============================================
# Environment
NODE_ENV=production
# Server
PORT=3000
HOST=0.0.0.0
# CORS - Comma-separated list of allowed origins
CORS_ORIGIN=https://screencraft.example.com,https://www.screencraft.example.com
# Rate Limiting
API_RATE_LIMIT_MAX=100
API_RATE_LIMIT_WINDOW=15m
# JWT Authentication
JWT_SECRET=your_super_secret_jwt_key_min_32_chars_long_change_this
JWT_EXPIRES_IN=7d
# ============================================
# Playwright Configuration
# ============================================
# Timeouts in milliseconds
PLAYWRIGHT_TIMEOUT=30000
PLAYWRIGHT_NAVIGATION_TIMEOUT=30000
# Browser concurrency (adjust based on server resources)
# Hetzner 64GB RAM: 10-15 concurrent browsers recommended
MAX_CONCURRENT_BROWSERS=10
# ============================================
# Storage Configuration
# ============================================
STORAGE_TYPE=minio
STORAGE_PATH=./uploads
# ============================================
# Logging
# ============================================
LOG_LEVEL=info
LOG_PRETTY=false
# ============================================
# Traefik & SSL
# ============================================
# Email for Let's Encrypt certificates
ACME_EMAIL=admin@example.com
# Traefik dashboard basic auth
# Generate with: htpasswd -nb admin your_password
# Or online: https://hostingcanada.org/htpasswd-generator/
TRAEFIK_BASIC_AUTH=admin:$$apr1$$abc123$$xyz
# ============================================
# Application URLs (for production)
# ============================================
# Frontend URL
PUBLIC_API_URL=https://api.screencraft.example.com
# Backend API URL (used by frontend)
API_URL=https://api.screencraft.example.com
# ============================================
# Optional: Email Configuration
# ============================================
# SMTP_HOST=smtp.example.com
# SMTP_PORT=587
# SMTP_USER=noreply@screencraft.example.com
# SMTP_PASSWORD=your_smtp_password
# SMTP_FROM=ScreenCraft <noreply@screencraft.example.com>
# ============================================
# Optional: Monitoring & Analytics
# ============================================
# SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-id
# GOOGLE_ANALYTICS_ID=G-XXXXXXXXXX
# ============================================
# Optional: Feature Flags
# ============================================
# ENABLE_SIGNUP=true
# ENABLE_SOCIAL_LOGIN=false
# MAINTENANCE_MODE=false
# ============================================
# Docker Resource Limits
# ============================================
# These are configured in docker-compose.prod.yml
# Adjust based on your Hetzner server specs:
#
# API: 2-4 CPUs, 4-8GB RAM
# Worker: 4-8 CPUs, 12-24GB RAM
# PostgreSQL: 2-4 CPUs, 4-8GB RAM
# Redis: 1-2 CPUs, 2-4GB RAM
# MinIO: 1-2 CPUs, 2-4GB RAM