Environment Variables

Environment Variables

配置变量

Required variables

The following parameters are required:

ParameterOptional valuesDescription
DB_FORMATmap (default) / key / sqlData persistence format
DB_DRIVERauto (default) / blob / cfkv / kv / d1 / do / mysqlStorage location

Security variables

In addition to DB_FORMAT and DB_DRIVER, it is strongly recommended to configure the following security-related variables:

VariableRequiredDescription
JWT_SECRETRecommendedJWT signing key (≥16 chars), also used for data encryption and cron task auth. Auto-generated and persisted to KV when unset
ADMIN_PASSOptionalSkip the install wizard and auto-initialize the admin with this password
ALLOW_URLSOptionalComma-separated CORS allowlist

Other optional variables

VariableDefaultDescription
MAX_UPLOAD26214400Max size (bytes) for a whole upload (/put, /form)
MAX_UPPART16777216Max size (bytes) per chunk in multipart upload
ASSET_URLSFrontend asset CDN base URL, supports the $version placeholder
ALLOW_SEEDAllowlist of hosts permitted as seed-data sources

Storage format differences

DB_FORMATDescription
mapAll data stored as a single JSON. Reads the whole object on every access — lower performance but best compatibility.
keyEach record stored as a Key-Value pair, read on demand — decent compatibility and performance, but no indexing.
sqlData stored as SQL tables, fully identical to the Go backend. Supports indexing and full features, but multiple reads take longer.

Storage driver differences

DB_DRIVERSupported platformDescription
autoUniversalAuto-detect, priority: blob → cfkv → kv → d1 → memory
blobEdgeOne / ESAPersistence provided by EdgeOne or Alibaba ESA Blob, free
cfkvUniversalCloudflare KV REST API, for remote access on platforms without persistence
kvCF / EO / ESAKV database, fast and free
d1CFD1 database, Cloudflare only
doCFDurable Objects, Cloudflare only
mysqlUniversalConnect to your own MySQL database

Valid combinations

DB_FORMATDB_DRIVERDescription
mapautoJSON storage, auto-selects blob / kv / d1 based on the platform
mapblobJSON storage via EdgeOne / ESA Blob (recommended for those platforms)
mapcfkvJSON storage via remote CF KV outside CF Workers
mapkvJSON storage via KV on CF Workers (recommended)
mapd1JSON storage via D1 on CF Workers (not recommended)
mapdoJSON storage via DO on CF Workers (not recommended, may incur cost)
keykvKey-Value storage via KV on CF Workers (recommended)
keyd1Key-Value storage via D1 on CF Workers (recommended)
keymysqlKey-Value storage via MySQL on CF Workers (not recommended)
sqld1SQL-Table storage via D1 on CF Workers (recommended)
sqlmysqlSQL-Table storage via MySQL

Remote database configuration

If you bound cfkv, set the following variables:

VariableDescription
CF_ACCOUNTCloudflare account ID
CF_KV_UUIDCloudflare KV namespace ID
CF_API_KEYCloudflare API token with KV access

If you bound MySQL, set the following variables:

VariableDescription
MYSQL_URLConnection string, e.g. mysql://user:pass@host:3306/db. When set, the fields below are ignored
MYSQL_HOSTDatabase host
MYSQL_PORTDatabase port (3306)
MYSQL_USERDatabase user
MYSQL_PASSDatabase password
MYSQL_NAMEDatabase name

必选变量

必须配置这些参数:

参数名可选值说明
DB_FORMATmap(默认)、keysql数据持久化格式
DB_DRIVERauto(默认)、blobcfkvkvd1domysql数据库存储位置

安全变量

DB_FORMATDB_DRIVER 外,强烈建议配置以下安全相关变量:

变量必要说明
JWT_SECRET推荐JWT 签名密钥(≥16 字符),同时用于数据加密与定时任务鉴权;未配置时自动生成并持久化到 KV
ADMIN_PASS可选跳过安装向导,以该密码自动初始化 admin
ALLOW_URLS可选CORS 允许白名单(逗号分隔)

其他可选变量

变量默认值说明
MAX_UPLOAD26214400单次整体上传(/put/form)大小上限(字节)
MAX_UPPART16777216分片上传单片大小上限(字节)
ASSET_URLS前端静态资源 CDN 地址,支持 $version 占位符
ALLOW_SEED允许作为种子数据来源的主机白名单

不同存储格式差异

DB_FORMAT 类型描述
map所有数据存储为一个 JSON,每次访问都需要全部读取,性能较差,但兼容性好
key单条数据存储为 Key-Value,按需读取,兼容性和性能还行,但不支持索引
sql数据存储为 SQL-Table,与 Go 后端完全一致,支持索引,功能齐全,但多次读取耗时长

不同存储驱动差异

DB_DRIVER 类型支持平台说明
auto通用自动检测,优先级 blob → cfkv → kv → d1 → memory
blobEdgeOne / ESAEdgeOne 或阿里云 ESA Blob 提供的持久化工具,免费
cfkv通用Cloudflare KV REST API,适用于没有持久化的平台远程调用
kvCF、EO、ESAKV 数据库,速度快,免费
d1CFD1 数据库,仅支持 Cloudflare
doCFDO 持久化对象,仅支持 Cloudflare
mysql通用连接到自己的 MySQL 数据库

可选有效组合变量

DB_FORMATDB_DRIVER说明
mapauto数据存储为 JSON,自动根据部署环境选择 blob、kv、d1
mapblob数据存储为 JSON,使用 EdgeOne / ESA Blob 持久化存储(推荐)
mapcfkv数据存储为 JSON,在非 CF Worker 环境使用远程 CF KV 存储
mapkv数据存储为 JSON,在 CF Worker 环境使用 KV 存储(推荐)
mapd1数据存储为 JSON,在 CF Worker 环境使用 D1 存储(不推荐)
mapdo数据存储为 JSON,在 CF Worker 环境使用 DO 存储(不推荐,可能付费)
keykv数据存储为 Key-Value,在 CF Worker 环境使用 KV 存储(推荐)
keyd1数据存储为 Key-Value,在 CF Worker 环境使用 D1 存储(推荐)
keymysql数据存储为 Key-Value,在 CF Worker 环境使用 MySQL 存储(不推荐)
sqld1数据存储为 SQL-Table,在 CF Worker 环境使用 D1 存储(推荐)
sqlmysql数据存储为 SQL-Table,在 CF Worker 环境使用 MySQL 存储

远程数据库配置项

如果您绑定了 cfkv,则需要设置相关变量:

变量说明
CF_ACCOUNTCloudflare 账号 ID
CF_KV_UUIDCloudflare 绑定的 KV ID
CF_API_KEYCloudflare 具有 KV 权限的 Token

如果您绑定了 MySQL,则需要设置相关变量:

变量说明
MYSQL_URL地址串,例如:mysql://user:pass@host:3306/db,配置后则不需要配置下方变量
MYSQL_HOST数据库地址
MYSQL_PORT数据库端口(3306)
MYSQL_USER数据库用户
MYSQL_PASS数据库密码
MYSQL_NAME数据库名称

Contributors