-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
136 lines (121 loc) · 3.68 KB
/
Copy path.env.example
File metadata and controls
136 lines (121 loc) · 3.68 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
# ============================
# DATABASE
# ============================
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=your_db_user
DB_PASSWORD=your_db_password
# XAMPP local root often has no password — leave empty: DB_PASSWORD=
DB_NAME=your_db_name
# Railway (private network): false. Public MySQL with TLS: true
DB_SSL=false
DB_CONNECTION_LIMIT=10
# ============================
# APPLICATION
# ============================
NODE_ENV=development
# Local dev port. Railway injects PORT automatically — do not set APP_PORT there.
APP_PORT=3001
# White-label: Swagger title, contact email subject prefix
APP_DISPLAY_NAME=RE CMS
CONTACT_EMAIL_SUBJECT_PREFIX=[RE CMS Contact]
# ============================
# JWT (minimum 32 characters each)
# ============================
JWT_ACCESS_SECRET=your_super_secret_access_key_min_32_chars
JWT_REFRESH_SECRET=your_super_secret_refresh_key_min_32_chars
JWT_ACCESS_EXPIRES_IN=15m
JWT_REFRESH_EXPIRES_IN=7d
# ============================
# SECURITY & CORS
# ============================
CORS_ORIGIN=http://localhost:3000
THROTTLE_TTL=60
THROTTLE_LIMIT=60
LOGIN_THROTTLE_TTL=60
LOGIN_THROTTLE_LIMIT=5
CONTACT_THROTTLE_TTL=60
CONTACT_THROTTLE_LIMIT=5
# ============================
# SWAGGER (set false in production)
# ============================
SWAGGER_ENABLED=true
# ============================
# REDIS (set REDIS_ENABLED=false for XAMPP-only local dev without Redis)
# ============================
REDIS_ENABLED=true
REDIS_URL=redis://localhost:6379
PERMISSION_CACHE_TTL_SEC=60
# ============================
# OBSERVABILITY
# ============================
OTEL_ENABLED=false
# ============================
# LOGGING
# ============================
LOG_LEVEL=info
# ============================
# SEED (optional)
# ============================
SEED_ADMIN_EMAIL=admin@example.com
SEED_ADMIN_PASSWORD=Admin123!
SEED_BRAND_NAME=Demo Group
SEED_CONTACT_EMAIL=hello@example.com
# ============================
# CONTACT EMAIL (optional)
# ============================
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASS=
SMTP_FROM=noreply@example.com
CONTACT_NOTIFY_EMAIL=admin@example.com
# ============================
# S3 MEDIA UPLOAD (optional — Railway: use Cloudinary URLs or R2)
# ============================
# S3_BUCKET=
# S3_REGION=auto
# S3_ACCESS_KEY=
# S3_SECRET_KEY=
# S3_ENDPOINT=
# S3_PUBLIC_BASE_URL=
# ============================
# MFA / IDENTITY (required when MFA enroll is used)
# ============================
# MFA_ENCRYPTION_KEY=<openssl rand -base64 32>
# MFA_ISSUER=RE CMS Admin
# MFA_REQUIRED_ROLES=SUPER_ADMIN
# ============================
# OAUTH / OIDC SSO (optional)
# ============================
# OAUTH_ENABLED=false
# OAUTH_ISSUER=https://your-idp.example.com/realms/your-realm
# OAUTH_CLIENT_ID=re-cms-admin
# OAUTH_CLIENT_SECRET=
# OAUTH_CALLBACK_URL=https://your-frontend.example.com/oauth/callback
# ============================
# AUDIT RETENTION (production)
# ============================
# AUDIT_PURGE_ENABLED=true
# AUDIT_RETENTION_DAYS=90
# ============================
# ERROR TRACKING (optional)
# ============================
# SENTRY_DSN=
# ============================
# RAILWAY (set in service Variables, not .env file)
# ============================
# PORT — auto-injected by Railway; app binds to this (do not set APP_PORT)
# NODE_ENV=production
# SWAGGER_ENABLED=false
# DB_SSL=false
# DB_HOST=${{MySQL.MYSQLHOST}}
# DB_PORT=${{MySQL.MYSQLPORT}}
# DB_USERNAME=${{MySQL.MYSQLUSER}}
# DB_PASSWORD=${{MySQL.MYSQLPASSWORD}}
# DB_NAME=${{MySQL.MYSQLDATABASE}}
# REDIS_ENABLED=true
# REDIS_URL=${{Redis.REDIS_URL}}
# CORS_ORIGIN=https://your-frontend.up.railway.app
# JWT_ACCESS_SECRET=<openssl rand -base64 32>
# JWT_REFRESH_SECRET=<openssl rand -base64 32>