无服务器oj部署

发布时间:2026/7/12 13:18:07

无服务器oj部署 何绑定域名至cloudflare可以参考官网的说明1.配置本地环境1.下载项目git clone https://github.com/wanwusangzhigit/eoj.gitcd eoj2.配置本地环境cd frontendnpm icd …cd backendnpm icd …3.全局安装cloudflare cli并登录npm i -g wranglerwrangler login2.部署前的准备1.创建 Cloudflare D1 数据库wrangler d1 create oj-database执行后会输出 database_id记录下来。2.创建 GitHub OAuth App(无需Github授权登录的无需配置)前往 GitHub Developer Settings 创建 OAuth App字段 值Application name OJ SystemHomepage URL https://你的域名Authorization callback URL https://你的域名/api/v1/auth/github/callback记录 Client ID 和 Client Secret。3.创建CPOAUTH APP(无需CPOAUTH授权登录的无需配置)前往cpoauthCALLBACK URLhttps://你的域名/api/v1/auth/cpoauth/callback4.前往cloudflare创建workers在构建下的workers和pages栏中创建workers命名oj-backend并在域中绑定域名5.前往github创建评测仓库在 GitHub 创建私有仓库如 your-username/oj-judge将judge-repo文件夹下的文件上传至仓库在仓库 Settings Secrets and variables Actions 中添加Secret 值WORKER_API Worker 完整 URL如 https://oj.your-domain.comCALLBACK_SECRET 随机生成并记录6.创建github token前往github创建tokens(classic)并记录至少需要代码读写github actions读写github workflow读写等权限7.配置wrangler.toml编辑 backend/wrangler.toml填入你的配置name “oj-backend”main “src/index.ts”compatibility_date “2024-01-01”account_id “你的 Cloudflare Account ID”[[d1_databases]]binding “DB”database_name “oj-database”database_id “上一步获取的 database_id”[assets]directory “./public”binding “ASSETS”not_found_handling “single-page-application”[vars]GITHUB_CLIENT_ID “你的 GitHub OAuth Client ID”GITHUB_CLIENT_SECRET “你的 GitHub OAuth Client Secret”CPOAUTH_CLIENT_ID “你的 CpOAuth Client ID”CPOAUTH_CLIENT_SECRET “你的 CpOAuth Client Secret”JWT_SECRET “用 openssl rand -base64 32 生成的密钥”CALLBACK_SECRET “你记录的CALLBACK_SECRET”GITHUB_TOKEN “你的 GitHub Token需 repo 权限用于触发评测”JUDGE_REPO “your-username/oj-judge”FRONTEND_URL “https://你的域名”REGISTRATION_OPEN “true”3.部署项目1.编译数据库cd backendnpx wrangler d1 migrations apply oj-database --remotecd …2.构建前端cd frontendnpm run build:sitecd …3.部署后端cd backendnpx wrangler deploy至此部署完成4.部署后的工作1.你需要前往你的oj创建账户2.访问https://你的域名/__seed初始化数据库并将第一位注册用户设置为超级管理员。站点设置管理页面部署后管理员可在后台 站点设置 标签页配置设置项 说明 默认值开启注册后端wrangler.toml配置 关闭后新用户无法注册 开启强制填写邮箱网站设置 注册时邮箱为必填项 关闭邮箱后缀限制网站设置 允许的邮箱后缀逗号分隔留空不限制 空站点自定义前端config.yaml设置编辑 frontend/config.yamlsite:name: “My OJ” # 站点名称short_name: “MyOJ” # 站点简称description: “My Online Judge”icon: “default” # “default” 使用内置图标或填入图标 URLfavicon: “/favicon.svg”footer:enabled: truetext: “” # 自定义页脚文本支持 HTML为空则显示 © 年份 站点名links: # 页脚链接- name: “GitHub”url: “https://github.com/your-org”login:hero_title: “” # 登录页大标题为空使用默认hero_subtitle: “” # 登录页副标题为空使用默认show_github: true # 是否显示 GitHub 登录按钮show_cpoauth: true # 是否显示 CpOAuth 登录按钮home:title: “” # 首页标题为空使用默认

相关新闻