Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
115 lines (104 loc) · 7.1 KB
/
Copy path.env.example
File metadata and controls
115 lines (104 loc) · 7.1 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# =============================================================================
# OpenList-TSWorker · 环境变量(模板)
# =============================================================================
#
# 用途:Cloudflare「Deploy to Cloudflare」按钮会读取本文件(或 .dev.vars.example)
# 识别需要用户填写的变量,并在部署页生成对应输入项。
#
# 为什么值留空:本文件会提交到公开仓库,绝不能包含真实密钥。
# 部署时用户填入的值会成为该 Worker 的 Secret,后续更新不会被覆盖。
#
# 本地开发:复制为 `.env`(已被 .gitignore 忽略)并填入真实值。
#
# 完整变量说明见:
# https://doc.oplist.org/ecosystem/official_worker/guide_env
# =============================================================================
# ── 必填 ────────────────────────────────────────────────────────────────────
# JWT 签名密钥,同时用作可选的字段加密密钥(DB_CIPHER 非 none 时,见 wrangler.jsonc)
# 与定时任务鉴权。要求 >=16 字符;推荐用 `openssl rand -hex 32` 生成。
JWT_SECRET=
# ── 选填 ────────────────────────────────────────────────────────────────────
# 跳过安装向导,直接用此密码初始化 admin 账号。留空则由浏览器向导设置。
ADMIN_PASS=
# CORS 允许来源白名单,逗号分隔,如 https://yourdomain.com
# 留空表示仅允许同源请求。
ALLOW_URLS=
# 前端静态资源 CDN 地址(可选)。需指向包含完整前端 dist 的目录(含 index.html)。
# 配置后浏览器直连 CDN 加载 JS/CSS/图片等资源,不再经 Worker 中转。
# 注入自动在两条路径中选择:
# A. CDN 上存在本地构建引用的哈希资产 → 直接下发本地 index.html 并注入 cdn
# (不要求 CDN 能返回 HTML —— npmmirror 等禁止访问 .html 的 CDN 靠这条工作,
# 等价 Go Release 版行为)
# B. 否则改用 CDN 自己的 index.html,保证 HTML 与哈希资产同源一致
# A、B 都不可用 → 不注入,资源回退源站加载(不会白屏)
# A 要求 CDN 上的产物与本次部署的 dist 是同一份构建(哈希逐字节相同)。默认
# `pnpm run build` 会从 npm 拉取【已发布】的前端 dist(scripts/fetch-frontend.mjs),
# 与 CDN 内容天然同源,故 A 会命中 —— npmmirror 这类禁止访问 .html 的 CDN 只能
# 靠 A 工作;若用 FRONTEND_BUILD_FROM_SOURCE=1 从 main 现构建,哈希与 CDN 不一致,
# A 必然落空(只能退化到 B,而 B 对 npmmirror 不可用)。
# 支持 $version 占位符,替换为本构建的前端版本号(构建期写入,解析失败回退 latest)。
# 注意:注入只发生在「HTML 入口请求能到达 Worker」时。若平台默认用静态层直出
# /index.html(如 Cloudflare 的资源优先路由、EdgeOne middleware rewrite),
# 需让 / 与 /index.html 走 Worker(CF 见 wrangler.jsonc 的 run_worker_first)。
#
# ⚠️ 资源由浏览器直接加载,CDN 必须对 .js/.css/字体返回 Access-Control-Allow-Origin
# (前端产物以 crossorigin 加载 module script / stylesheet)。
# jsdelivr、unpkg 固定返回 *;npmmirror 在请求带 Origin 时回显该头,同样可用。
#
# ⚠️ 行为变更(迁移说明):旧实现是 assetsRouter 的 /:folder/:filepath* 路由,把
# 每个静态资源请求都 302 重定向到 CDN。该路由已移除 —— 它取不到 filepath,
# 且在静态层优先的平台上根本不会进 Worker;现在统一改为上面的 HTML 注入,
# 由浏览器直连 CDN。未配置 ASSET_URLS 时静态资源一律由源站提供。
# 另:/assets、/images、/streamer、/static 下的文件若在源站确实缺失,仍会 302
# 到 CDN(对齐 Go 版 static.go 的 folders),避免 SPA 兜底把 index.html 当作
# .js/.css 返回。
# 例:
# https://registry.npmmirror.com/@openlist-frontend/openlist-frontend/$version/files/dist
# https://cdn.jsdelivr.net/npm/@openlist-frontend/openlist-frontend@$version/dist
# https://unpkg.com/@openlist-frontend/openlist-frontend@$version/dist
ASSET_URLS=
# MySQL 连接串(DB_DRIVER=mysql 时必填),如 mysql://user:pass@host:3306/db
# 也可改用 wrangler.jsonc 中注释的 MYSQL_HOST / MYSQL_PORT / MYSQL_USER / MYSQL_PASS / MYSQL_NAME 分项。
MYSQL_URLS=
# EdgeOne Node 云函数专用:KV 代理地址(DB_DRIVER=kv 且运行在 EdgeOne Node 云函数时必填)。
# EdgeOne 的 KV 绑定不会注入 Node 云函数,必须经同部署的 Edge Functions 代理访问,
# 此处填写部署的 origin,如 https://your-project.edgeone.app
# 留空时自动使用当前请求的 origin(同一部署自调用);跨域或本地调试才需显式设置。
EO_KV_URLS=
# Cloudflare KV REST API 凭据(DB_DRIVER=cfkv 时三项均必填)。
# 账户 ID
CF_ACCOUNT=
# KV namespace ID
CF_KV_UUID=
# 具有 KV 读写权限的 API Token
CF_API_KEY=
# ── 缓存(文件树缓存 / 下载链接缓存)────────────────────────────────────────
# 默认【只向数据库启用】:缓存与业务数据同后端(DB_DRIVER 解析结果)。
# 想要改用 / 额外启用 KV、Blob 等专用后端,必须显式设置 CACHE_DRIVER
# (不会自动探测、不会自动回退)。
# 完整说明见:https://doc.oplist.org/ecosystem/official_worker/guide_env
#
# 总开关,默认 true
# CACHE_ENABLED=true
# 缓存后端,默认 db;可选 db / kv / blob / cfkv / do / memory / none,
# 支持逗号分隔多后端(读按顺序命中、写全部铺开),如 db,kv
# CACHE_DRIVER=db
# 分级开关:文件树缓存默认 true;下载链接缓存默认 false(部分网盘直链
# TTL 很短,缓存复用可能把已失效的直链发给用户,确认后再显式开启)
# CACHE_FILE_TREE=true
# CACHE_DOWNLOAD_LINK=false
# 文件树缓存时长(分钟),0 = 跟随存储级 cache_expiration(默认 30)
# CACHE_TTL=0
# 下载链接缓存时长(分钟),直链自带有效期,取值需保守(默认 5)
# CACHE_LINK_TTL=5
# 不参与缓存的驱动(纯本地计算型)
# CACHE_EXCLUDE_DRIVERS=virtual,alias,url_tree,strm,chunk
# 缓存键前缀(与业务数据键隔离;仅允许 [A-Za-z0-9_],非法时回退默认值)
# CACHE_PREFIX=openlist_cache
# singleflight(并发相同调用去重)。一个部署会同时存在多个 isolate,进程内去重
# 无法跨实例生效,因此存在 SQL 库(d1 / mysql / do)时用表 x_singleflight 做协调。
# auto(默认)- 有 SQL 库用表,否则退回进程内(memory)
# db - 强制用表协调;协调层出错时自动降级,不影响业务
# memory - 仅进程内合并(等价 Go 的进程内 singleflight)
# off - 关闭去重,每次调用都直接执行
SINGLEFLIGHT=auto