fix(env): 本机启动读取根目录 .env,监听地址兼容 BIND_ADDR

- study_tool/__init__.py 用 python-dotenv 加载根目录 .env,位置早于
  store / config 读环境变量;已有环境变量优先,Docker 注入的不受影响
- app.py 监听地址改为 HOST -> BIND_ADDR -> 127.0.0.1 依次回退
- 新增依赖 python-dotenv>=1.0(pyproject.toml / requirements.txt / uv.lock)
- README 环境变量表补充 .env 说明与 BIND_ADDR / TZ 两行
- CHANGELOG / docs/OPTIMIZATION.md 记录本次修复,版本号 0.0.6 -> 0.0.7
This commit is contained in:
study-tool
2026-10-31 16:12:52 +08:00
parent cfa960221e
commit 8e8d6b83f1
14 changed files with 100 additions and 50 deletions
+2 -2
View File
@@ -166,8 +166,8 @@ def _probe_self(port):
def main():
port = int(os.environ.get("PORT", "8848"))
# 默认只监听本机;Docker / 远程管理用 HOST=0.0.0.0
host = os.environ.get("HOST", "127.0.0.1")
# 默认只监听本机;Docker / 远程管理用 HOST=0.0.0.0(.env 里写 BIND_ADDR 同样生效)
host = os.environ.get("HOST") or os.environ.get("BIND_ADDR") or "127.0.0.1"
url = "http://127.0.0.1:%d" % port
# 设了访问令牌时,打印出来的地址一律带上 ?token=:本机访问同样要校验令牌
suffix = ("/?token=%s" % AUTH_TOKEN) if AUTH_TOKEN else ""