-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
95 lines (83 loc) · 2.72 KB
/
.env.example
File metadata and controls
95 lines (83 loc) · 2.72 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
# NitroCraft environment example
# Copy this file to .env and adjust for your deployment.
# Runtime
NODE_ENV=production
EXTERNAL_URL=https://nitrocraft.example.com
BIND=0.0.0.0
PORT=3000
SERVER_PORT=3000
EXTERNAL_HTTP_TIMEOUT=2000
# CORS
# Use All (or empty) to allow any origin.
# Use a comma-separated allowlist to restrict origins.
CORS_ORIGIN=All
# CORS_ORIGINS=https://app.example.com,https://admin.example.com
# Cache backend
# Valid values: redis, memory, none
CACHE_BACKEND=memory
# Used when CACHE_BACKEND=redis
REDIS_URL=redis://localhost:6379
CACHE_LOCAL=1200
CACHE_BROWSER=3600
EPHEMERAL_STORAGE=false
CLOUDFLARE=false
MEMORY_CACHE_MAX_KEYS=50000
MEMORY_CACHE_TTL_SECONDS=2400
API_CALL_COUNT_FILE=./data/api-call-count.json
API_CALL_COUNT_FLUSH_MS=2000
# Optional homepage sponsor card (renders only when URL + image are set)
# Multiple sponsor cards as JSON array (takes precedence over SPONSOR_CARD_*)
# SPONSOR_CARDS=[{"url":"https://example.com","image":"https://cdn.example.com/sponsor1.png","alt":"Sponsor 1"},{"url":"https://example.org","image":"/images/sponsor2.png","alt":"Sponsor 2"}]
SPONSOR_CARDS=
SPONSOR_CARD_URL=
SPONSOR_CARD_IMAGE=
SPONSOR_CARD_ALT=Sponsor
# Retention / cleanup
RETENTION_ENABLED=true
RETENTION_DAYS=30
# RETENTION_MAX_AGE_DAYS=30
# RETENTION_MAX_AGE_HOURS=720
RETENTION_INTERVAL_HOURS=24
# RETENTION_INTERVAL_DAYS=1
# Outbound + inbound rate limits
# Leave blank (or <=0) to disable request limiter.
SESSIONS_RATE_LIMIT=25
REQUESTS_RATE_LIMIT=180
REQUESTS_RATE_LIMIT_WINDOW_MS=1000
REQUESTS_RATE_LIMIT_MAX_KEYS=50000
REQUESTS_RATE_LIMIT_TRUST_PROXY=true
REQUESTS_RATE_LIMIT_EXCLUDE=
# Status probes
STATUS_ALLOW_PRIVATE_TARGETS=false
STATUS_PROBE_CACHE_TTL_MS=10000
STATUS_BROWSER_MAX_ADDRESSES=20
STATUS_BROWSER_MAX_CONCURRENCY=4
STATUS_BROWSER_SOURCE_TIMEOUT_MS=3500
STATUS_BROWSER_MAX_SOURCE_ADDRESSES=200
# JSON array of external source feeds for /status/browser and /tools/server-browser source checkboxes.
# Example:
# STATUS_BROWSER_SOURCES=[{"id":"example","label":"Example Directory","url":"https://example.com/minecraft/servers.json"}]
STATUS_BROWSER_SOURCES=
# Security and redirect controls
MAX_TEXTURE_BYTES=1048576
DEFAULT_REDIRECT_ALLOWLIST=nitrocraft.example.com,*.nitrocraft.example.com
# Optional sitemap timestamp override (ISO 8601)
# SITEMAP_LASTMOD=2026-03-08T00:00:00.000Z
# Optional SEO updated timestamp for homepage metadata (ISO 8601)
# SITE_UPDATED_AT=2026-03-08T00:00:00.000Z
# Logging
DEBUG=false
LOG_TIME=true
# Optional image/render bounds
AVATAR_MIN=1
AVATAR_MAX=512
AVATAR_DEFAULT=160
RENDER_MIN=1
RENDER_MAX=10
RENDER_DEFAULT=6
# Optional storage directory overrides
FACE_DIR=./images/faces/
HELM_DIR=./images/helms/
SKIN_DIR=./images/skins/
RENDER_DIR=./images/renders/
CAPE_DIR=./images/capes/