-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path.env.example
More file actions
97 lines (77 loc) · 3.77 KB
/
Copy path.env.example
File metadata and controls
97 lines (77 loc) · 3.77 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
# ==================== HashPass 环境变量配置 ====================
# 复制此文件为 .env 并按需修改
# 生产环境中请妥善保管 .env 文件,不要提交到 Git
# ==================== 管理员认证(必填)====================
# 用于访问管理后台 /admin 和所有 /api/admin/* 接口
# 建议使用强随机字符串,至少 32 位
# 生成方式: python -c "import secrets; print(secrets.token_hex(32))"
ADMIN_TOKEN=请替换为安全的随机字符串
# ==================== HMAC 密钥(可选)====================
# 用于派生邀请码的 HMAC-SHA256 密钥(hex 编码,64 个十六进制字符 = 256-bit)
# 设置后密钥在重启间持久化,未设置则每次启动随机生成
# 警告:随机生成时,服务器重启会导致所有已签发邀请码失效
# 生成方式: python -c "import secrets; print(secrets.token_hex(32))"
# 警告:此密钥严格保密,不要提交到 Git
HASHPASS_HMAC_SECRET=
# ==================== 服务器配置 ====================
# 监听端口(默认 8000)
PORT=8000
# ==================== 难度配置 ====================
# 初始难度(前导零位数)
# 每 +1 bit = 难度翻倍;每 -1 bit = 难度减半
# 建议从低值开始,让系统通过动态调整找到最佳难度
HASHPASS_DIFFICULTY=3
# 动态难度调整的下限
HASHPASS_MIN_DIFFICULTY=1
# 动态难度调整的上限
HASHPASS_MAX_DIFFICULTY=32
# 目标解题时间(秒)
# 系统会通过动态难度调整,使实际解题时间趋近此值
HASHPASS_TARGET_TIME=60
# 无人解题的超时时间(秒)
# 超时后自动降低难度并重置谜题(至少降低 2 bit)
HASHPASS_TARGET_TIMEOUT=300
# ==================== Argon2 配置 ====================
# Argon2d 时间成本(迭代次数)
# 越大越慢,增加暴力破解难度;建议 2-5
HASHPASS_ARGON2_TIME_COST=3
# Argon2d 内存成本(KB)
# 默认 65536 KB = 64 MB(内存硬度,防止 GPU/ASIC 农场)
# 降低此值会削弱防 GPU 能力,但减少服务器内存压力
HASHPASS_ARGON2_MEMORY_COST=65536
# Argon2d 并行度(线程数)
# 保持为 1;客户端通过多 Worker 实现并行
HASHPASS_ARGON2_PARALLELISM=1
# 前端并行 Worker 数量
# 控制每个用户启动多少个 Web Worker 并行计算
# 增大可提升单用户挖矿效率;建议 2-8(取决于目标用户硬件)
HASHPASS_WORKER_COUNT=4
# 最大计算速度限制(nonce/s)
# 超过此速度的矿工将被标记(仅记录,不封禁)
# 0 = 禁用限制
HASHPASS_MAX_NONCE_SPEED=0
# ==================== Cloudflare Turnstile 人机验证 ====================
# 获取地址: https://dash.cloudflare.com/?to=/:account/turnstile
# Cloudflare Turnstile Site Key(前端渲染 Widget 使用,可公开)
TURNSTILE_SITE_KEY=1x00000000000000000000AA
# Cloudflare Turnstile Secret Key(后端验证使用)
# 警告:此密钥严格保密,不要提交到 Git
TURNSTILE_SECRET_KEY=1x0000000000000000000000000000000AA
# 测试模式
# true: 使用上方测试密钥,所有人机验证自动通过(开发环境)
# false: 使用真实密钥,需要实际的人机验证挑战(生产环境)
TURNSTILE_TEST_MODE=true
# ==================== Webhook 通知(可选)====================
# 用户获得邀请码时,向此 URL 发送 POST 请求
# 留空则禁用 Webhook 功能
# Payload 格式: {"visitor_id": "...", "invite_code": "..."}
WEBHOOK_URL=
# Webhook Bearer Token(可选,用于 Webhook 端点鉴权)
# 配置后,请求头将包含: Authorization: Bearer <token>
# 警告:此 Token 严格保密,不要提交到 Git
WEBHOOK_TOKEN=
# ==================== 性能优化 ====================
# 禁用 uvloop(仅 Linux/macOS 生效)
# uvloop 可提升 WebSocket 广播性能约 30-40%
# 如遇兼容性问题可设为 true
HASHPASS_DISABLE_UVLOOP=false