- STORY_WEB_PASSWORD(默认story) 废弃 → STORY_WEB_USERS=名字1:口令1,名字2:口令2; 未配置/口令<8位/口令或用户名重复 → 启动即退出,杜绝弱默认口令裸奔 - cookie 不再存口令原文:登录发 secrets.token_urlsafe(32) 随机token, 会话存 SQLite sessions 表(30天);登出删token;从 USERS 移除某人=吊销其全部会话 - updated_by 改由服务端按会话身份填写,前端自报 by 不再可信;登录框去掉昵称字段 - 登录失败全局递增节流(最多sleep 5s),口令比较用 secrets.compare_digest - Dockerfile/compose 移除一切口令默认值;compose 未设 STORY_WEB_USERS 直接报错 - 顺手修 playtest.js 走位/动画/out_ref 行未转义的存储型XSS(esc补齐)
24 lines
1.5 KiB
YAML
24 lines
1.5 KiB
YAML
# 极空间(x86/amd64) 部署用:导入 story-event-web.tar 后直接引用镜像起服务(不构建)。
|
||
# 在极空间 Docker 的「Compose」里新建项目,粘贴本文件内容即可。
|
||
# 改两处:STORY_WEB_USERS(每人口令)、按需放开点位集卷。
|
||
services:
|
||
story-web:
|
||
image: story-event-web:latest # 由 docker save 导出的 tar 导入而来
|
||
container_name: story-event-web
|
||
ports:
|
||
- "8787:8787" # 宿主8787 -> 容器8787;frpc/反代再对外
|
||
environment:
|
||
# ← 改成实际口令(每人一把,口令即身份;≥8位且互不相同)。
|
||
# 未配置/口令过短/重复时容器启动即退出(拒绝弱口令裸奔)。
|
||
STORY_WEB_USERS: "bia:把我改成口令A,ljl:把我改成口令B"
|
||
TZ: "Asia/Shanghai" # 否则 updated_at 按 UTC 显示
|
||
volumes:
|
||
- ./data:/data # SQLite 持久化(事件数据,勿删)
|
||
# 前端静态文件热挂载(可选但推荐):把仓库 tools/event_authoring/web/static
|
||
# 同步到 NAS 某目录后取消下一行注释并改成实际路径,之后改前端只需同步+刷新,无需重新导入镜像:
|
||
# - /vol1/docker/story/static:/app/web/static:ro
|
||
# 点位集(可选):先不挂 = 坐标校验降级为警告,能正常用。
|
||
# 把 Assets/StreamingAssets/Story/PointSets 同步到 NAS 某目录后取消下一行注释并改成实际路径:
|
||
# - /vol1/docker/story/pointsets:/pointsets:ro
|
||
restart: unless-stopped
|