-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenv.example
More file actions
100 lines (86 loc) · 4.42 KB
/
env.example
File metadata and controls
100 lines (86 loc) · 4.42 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
# VirtualChemLab 环境变量配置示例
# 复制此文件为 .env 并填写实际值
#
# 注意:仓库同时保留 `env.example` 与 `.env.example` 两份文件是为了兼容不同工具/文档入口。
# 这两份文件应保持内容一致(以避免维护者复制错文件导致缺项)。
# ==================== 应用配置 ====================
# 运行环境:影响配置加载、严格校验与默认开关
ENVIRONMENT=development
# 调试开关(配置加载器读取该变量并覆盖 app.debug)
DEBUG=False
# 日志级别(INFO/WARNING/ERROR/...)
LOG_LEVEL=INFO
# ==================== 运行时目录(桌面打包/不可写目录) ====================
# 默认运行时可写目录:~/.virtualchemlab/
# 当项目目录不可写或为 PyInstaller 打包环境时,会自动重定向日志/报告/数据到用户目录。
# 如需显式指定数据目录,可设置:
# VCL_DATA_DIR=~/.virtualchemlab
# 强制重定向到用户目录(即使项目目录可写):
# VCL_FORCE_USER_DATA_DIR=true
# 指定用户级 config.json 的路径(存放运行时生成/持久化的密钥等):
# VCL_CONFIG_PATH=~/.virtualchemlab/config.json
# ==================== 安全配置 ====================
# 生产环境必须提供以下密钥,否则启动会 fail-fast 退出
# 生成方法: python -c "import secrets; print(secrets.token_urlsafe(48))"
JWT_SECRET_KEY=changeme-use-a-48byte-secret-token-for-prod
SESSION_SECRET_KEY=change-this-session-secret-key-to-strong
# 开发者模式(默认关闭,如需启用请显式设置开关和密钥)
DEVELOPER_MODE_ENABLED=false
DEVELOPER_SECRET_KEY=developer-mode-secret-key-change-this
# 开发者密钥哈希(用于开发者认证,避免明文密钥进入 repo/磁盘)
DEVELOPER_KEY_HASH=your-developer-key-hash-here
# 许可证密钥(用于许可证签名/校验与相关工具;生产必须配置)
LICENSE_SECRET_KEY=license-secret-key-change-in-production
# Webhook密钥(用于支付回调校验;仅在启用 webhook server 时需要)
WEBHOOK_SECRET=your-webhook-secret-here
# 管理后台密钥:Admin API/Flask SECRET_KEY;建议与 JWT/会话密钥不同
ADMIN_SECRET_ENV=VCL_ADMIN_SECRET_KEY
VCL_ADMIN_SECRET_KEY=your_admin_secret_here_make_it_longer
VCL_ADMIN_USERNAME=admin
VCL_ADMIN_PASSWORD=change-me-please
VCL_ADMIN_EMAIL=admin@example.com
# ==================== 数据库配置 ====================
# SQLAlchemy URL(主应用与 API server 使用)
DATABASE_URL=sqlite:///data/virtualchemlab.db
# ==================== Redis配置 (可选) ====================
REDIS_ENABLED=False
REDIS_HOST=localhost
REDIS_PORT=6379
# REDIS_PASSWORD=
# ==================== 缓存/后台线程 ====================
CACHE_ENABLED=True
# 禁用后台线程(用于极端资源受限环境或排障;可能降低性能/功能完整性)
# VCL_DISABLE_BACKGROUND_THREADS=1
# 测试模式(部分后台任务/延迟任务会降级或禁用)
# VCL_TEST_MODE=1
# ==================== 监控配置 ====================
MONITORING_ENABLED=True
# 应急状态文件写入目录(用于严重错误时持久化“救命数据”)
# VCL_EMERGENCY_STATE_DIR=logs/emergency
# ==================== REST API 配置 ====================
# API 服务监听地址(默认仅本机回环);如需对外提供服务请显式设置为 0.0.0.0 并配合认证/限流/防火墙。
VCL_API_HOST=127.0.0.1
# API 服务端口(默认: 8080)
VCL_API_PORT=8080
# 慢连接保护:单连接 socket 超时(秒,默认 10)
VCL_API_CONN_TIMEOUT=10
# API 访问密钥(逗号分隔,可配置多把)。留空时首次启动会自动生成并写入 ~/.virtualchemlab/api_key.txt(仅用于本机开发调试)。
VCL_API_KEYS=
# REST API 的 CORS 允许列表(逗号分隔)。默认仅允许本机回环来源;当暴露到局域网/容器时建议显式配置允许的前端域名。
VCL_API_CORS_ORIGINS=
# 管理后台 API 的 CORS 允许列表(逗号分隔,或 * 仅用于开发环境)。
VCL_ADMIN_CORS_ORIGINS=
# ==================== API 密钥 ====================
# 区块链API密钥 (可选)
ETHERSCAN_API_KEY=your-etherscan-api-key-here
# 通知服务 (可选)
SMTP_USER=your-email@example.com
SMTP_PASSWORD=your-email-password
TELEGRAM_BOT_TOKEN=your-telegram-bot-token
TELEGRAM_CHAT_ID=your-telegram-chat-id
# ==================== 文件路径 ====================
TEMPLATES_DIR=assets/templates
KNOWLEDGE_DIR=assets/knowledge
I18N_DIR=assets/i18n
USER_DATA_DIR=user_data
REPORTS_DIR=reports