Repository navigation
Environment.zh CN
简体中文 | English | Wiki 首页 | 配置总览
变量按读取它们的程序分组。旧前缀 LIBREOJ_、HYHOJ_ 和 OJ_ 仍在使用,不要改名。
在 shell 中设置变量不会影响正在运行的服务。要修改服务的环境变量,请添加 systemd drop-in,执行 systemctl daemon-reload 并重启服务(见安装后运维)。不要把密钥的值贴到问题报告或日志中。
| 变量 | 含义 |
|---|---|
LIBREOJ_CONFIG_FILE |
后端 YAML 文件的路径(必填);安装后为 <root>/config/backend.yaml
|
LIBREOJ_JUDGE_CONFIG_FILE |
评测机 YAML 文件的路径(必填);安装后为 <root>/config/judge.yaml
|
LIBREOJ_JUDGE_LOG_LEVEL |
评测机日志级别:error、warn、info(默认)或 debug
|
LIBREOJ_SCHEMA_SYNC |
后端启动时是否可以修改数据库结构。安装的服务只有在它恰好为 1 时才会这样做;0 在所有环境中都关闭。安装时用 deploy/initialize-schema.mjs 创建数据库,升级器执行经过检查的修改并把它设为 0。不要为了绕过升级器的检查而打开它 |
LIBREOJ_LOG_SQL |
记录每条 SQL 查询。任何非空值都会开启,包括 0 或 false;删除该变量即可关闭 |
NODE_ENV |
安装的服务中为 production,此时后端只记录警告和错误 |
NODE_OPTIONS |
安装的服务中为 --max-old-space-size=512,构建时为 2300:Node.js 堆内存大小(MiB),不是进程或其运行的程序的总内存 |
UV_THREADPOOL_SIZE |
评测机线程池,至少为评测槽数的两倍加二;由评测配置设置。见评测配置 |
TMPDIR |
后端为 <root>/data/tmp;libreoj 必须能写入 |
PATH |
服务优先使用安装目录自带的 Node.js(<root>/runtime/node/bin),可能与 shell 中的不同 |
LIBREOJ_MIGRATION_CONFIG_FILE |
让后端执行从旧版 LibreOJ 的一次性迁移,而不是提供网站服务;见下文 |
AI 相关变量 HYHOJ_AI_STATE_DIR、HYHOJ_AI_GENERATED_DIR、HYHOJ_AI_SAMPLE_INPUTS_DIR、HYHOJ_AI_RUNNER_SOCKET、HYHOJ_ARCHIVE_WORK_DIRECTORY 和 HYHOJ_AI_PRIVATE_HOSTS 见 AI 环境。
在 网站管理 中选择的注册模式保存在数据库中,而不是环境变量中;见注册审核。
以下变量由安装器和生成配置的脚本读取,它们不会修改已有的配置。
| 变量 | 含义 |
|---|---|
HYHOJ_ROOT |
配置脚本和备份使用的安装目录,默认 /opt/LLMOJ。设置它不会移动安装 |
NODE_BINARY |
脚本使用的 Node.js,默认 <root>/runtime/node/bin/node
|
HYHOJ_PORT |
站点端口,默认 80
|
HYHOJ_PUBLIC_ORIGIN |
站点的公开地址;安装器会传入你选择的地址 |
OJ_LISTEN_ADDRESS |
0.0.0.0(默认)或 127.0.0.1
|
OJ_INSTALL_ROLE |
all(默认)或 web。不能用它把已有安装切换为另一种模式 |
OJ_SITE_NAME |
新生成的 backend.yaml 和前端构建使用的站点名称,默认 LLMOJ
|
OJ_JUDGE_REMOTE |
设为 1 时配置远程评测机,默认 0
|
OJ_JUDGE_SERVER |
远程评测机连接的站点地址(必填) |
OJ_JUDGE_KEY_FILE |
远程评测机密钥文件的绝对路径,所有者为 root、权限为 0600(必填) |
OJ_JUDGE_SLOTS |
新生成的 judge.yaml 使用的评测槽数量。不设置时使用自动值(见安装);这里不接受 0。HYHOJ_JUDGE_SLOTS 是旧名称,仅在没有设置 OJ_JUDGE_SLOTS 时读取 |
LLMOJ_INSTALL_LANG |
安装器提示的语言:zh-CN 为中文,其他值为英文。由 install.sh 和 install.zh-CN.sh 设置 |
LLMOJ_LANG |
升级和扩缩容脚本提示的语言:zh-CN 为中文,其他值为英文。.zh-CN.sh 入口脚本设为 zh-CN,其他入口设为 en
|
OJ_SOURCE_REPOSITORY、OJ_SOURCE_COMMIT
|
下载脚本安装的仓库和提交,仅作记录 |
LIBREOJ_ROOT |
未给出 --root 时 bootstrap-admin.mjs 使用的安装目录,默认 /opt/LLMOJ
|
INVOCATION_ID、JOURNAL_STREAM
|
由 systemd 设置。管理员脚本用它们避免把密码写进服务日志;不要自行设置 |
| 变量 | 含义 |
|---|---|
HYHOJ_PUBLIC_DIR、HYHOJ_QUOTE_FILE、PNPM_BINARY
|
前端构建设置,见前端配置 |
CMAKE_BUILD_PARALLEL_LEVEL |
原生代码构建的并行数;安装器使用 2
|
npm_config_nodedir |
原生代码构建所用的 Node.js 头文件;安装器使用 <root>/runtime/node
|
pnpm_config_verify_deps_before_run |
安装器设为 false
|
RUNTIME_DIRECTORY |
沙箱镜像构建保存文件的目录,默认 <仓库>/runtime
|
OUTPUT_DIRECTORY |
沙箱镜像压缩包的输出目录,默认 <runtime>/sandbox-archives
|
LIBREOJ_X32_SUPPORTED |
1(默认)或 0。安装器使用 0 跳过在本机对沙箱镜像进行的 x32 测试,其他测试照常运行 |
ARCHIVE、CHECKSUM、DESTINATION_PARENT
|
安装沙箱镜像压缩包时使用的路径,通常由 deploy/sandbox/build.sh 设置 |
BUILDX_BUILDER |
Docker Buildx 的 builder,见 Docker 源 |
CLOUDFLARE_WORKER_NAME、CLOUDFLARE_ACCOUNT_ID
|
用于可选的 Cloudflare bootstrap 构建,安装器不使用 |
ALIYUN_ACCESS_KEY_ID、ALIYUN_ACCESS_KEY_SECRET、ALIYUN_OSS_BUCKET、ALIYUN_OSS_ENDPOINT
|
用于可选的阿里云 OSS bootstrap 构建,会上传到外部存储,安装器不使用 |
安装器会自己设置 NODE_OPTIONS、CMAKE_BUILD_PARALLEL_LEVEL、npm_config_nodedir 和 pnpm_config_verify_deps_before_run,事先设置它们没有作用。沙箱镜像 ID(ROOTFS_ID)由镜像配方计算得出,不能自行指定。
只在测试中使用的变量见开发说明。
LIBREOJ_MIGRATION_CONFIG_FILE 指向一个包含旧站点设置的文件:database.host(文本)、database.port(数字)、database.username、database.password 和 database.database(文本),以及 uploads(旧附件目录)。它们都没有默认值。迁移会写入数据库;完成后请删除该变量。它不是升级 LLMOJ 本身的方式:升级请使用升级器。
| 脚本 | 参数与作用 |
|---|---|
upgrade.sh、upgrade.zh-CN.sh
|
升级站点:--prefix、--plan、--ref、--source、--source-sha256、--apply --drained、--rollback BACKUP --drained。upgrade.sh 输出英文,upgrade.zh-CN.sh 输出中文。见升级
|
deploy/resize-judge.sh、deploy/resize-judge.zh-CN.sh
|
修改评测槽数量:--prefix(默认 /opt/LLMOJ)、--slots、--plan、--apply --drained、--rollback BACKUP --drained、--mode auto|all|remote。resize-judge.sh 输出英文,resize-judge.zh-CN.sh 输出中文。见评测配置
|
deploy/judge_capacity.py |
显示服务器能运行多少个评测槽,不做任何修改:--remote、--json、--slots N
|
deploy/rebuild-statistics.sh |
比较提交数和通过数与实际提交,加 --apply 时修正;--prefix。见安装后运维
|
deploy/sandbox/self-test.sh |
用已安装的评测机评测几份固定程序以检查沙箱:--prefix、--only cpp,java,…。评测机有变化时升级器会运行它 |
deploy/sandbox/verify-installed.mjs |
对安装(--root,默认 /opt/LLMOJ)运行真实的沙箱检查 |
deploy/backup.sh |
备份站点(--prefix),见安装后运维
|
deploy/bootstrap-admin.mjs |
创建第一个管理员:--root、--config、--email(默认 admin@localhost.invalid)、--show-credentials。它不能用来重置密码 |
deploy/bootstrap-services.mjs |
由安装器使用:--root 和 --phase storage|judge|verify-judge 分别创建存储桶、注册本机评测机或检查其连接 |
deploy/initialize-mariadb.py |
由安装器用于创建数据库(--root),见安装
|
deploy/install-support.py |
由安装器用于执行各个步骤;不用于升级 |
deploy/build-frontend-offline.mjs |
构建并发布前端:--build、--assets-only,见前端配置
|
deploy/docker-support.py |
检查 Docker 下载源(--source、--mirrors),加 --configure 时把镜像源写入 Docker 配置,但不重启 Docker |
deploy/sandbox/build.sh |
构建沙箱镜像:plan(默认)、build 或 stage ARCHIVE
|
deploy/export-wiki.py |
导出 Wiki:--repository OWNER/REPO --output DIR,见发布
|
deploy/prepare-github.py |
用 Git 跟踪的文件生成源码压缩包(--archive PATH);不会覆盖已有的压缩包 |
来源:configure-local.py、configure-judge.py、install.sh、main.ts、migration-config.schema.ts、评测机 config.ts。
简体中文
- LLMOJ Wiki
- AI 环境与固定限制
- AI
- 后端配置
- 功能升级与数据库修改
- 配置总览
- 比赛赛制
- 分布式评测
- Docker 源
- 环境变量与维护脚本
- 前端配置
- HTTPS 与反向代理
- Hack
- 安装与端口配置
- 评测配置与扩缩容
- 安装后运维
- 发布源码与 Wiki
- 新用户注册审核
- 远程评测机
- NOI / OI 比赛自测(Self Eval)
- 题解
- Fake 处罚
- 提交记录
- 团队
- 两步验证
- 升级
English
- LLMOJ Wiki
- AI
- AI environment and fixed limits
- Backend configuration
- Feature upgrades and database changes
- Configuration overview
- Contest rules
- Distributed judging
- Docker sources
- Environment variables and maintenance scripts
- Frontend configuration
- HTTPS and reverse proxies
- Hacks
- Installation and ports
- Judge configuration and resizing
- Operations
- Publishing source and the wiki
- Registration approval
- Remote judges
- Self Eval in NOI / OI contests
- Solutions
- Fake moderation
- Submissions
- Teams
- Two-factor sign-in
- Upgrading