SchemaForge 是一个面向 Oracle Database 11g Express Edition 的自助数据库实验环境管理平台。
每个实验环境对应一个 Oracle schema/user。平台用户使用学号登录,管理员导入用户并重置平台密码,普通用户管理自己的数据库环境。
node-oracledb thick modedocker composeS<学号>_<随机后缀>450MB详细设计见 docs/init.md 和 docs/env.md。
pnpm install
cp .env.example .env
请先手动填写 .env 中留空的敏感配置,至少包括 APP_SECRET、INIT_ADMIN_PASS 和 ORA_PASS。
使用 docker compose 时,ORA_PASS 会同时作为 Oracle 容器初始化密码和 SchemaForge 的管理员连接密码。
INIT_ADMIN_PASS 只用于首次创建管理员账号,后续管理员密码应在页面内修改。
pnpm dev
本地开发默认使用 DB_PATH=./data/schemaforge.db。
如果通过局域网 HTTP 地址访问,请保持 APP_URL 为 http://...,或显式设置 APP_COOKIE_SECURE=false,否则浏览器会拒绝带 Secure 的 session cookie。
项目提供 docker-compose.yml,用于同时启动:
oracle-xe-11gschemaforge其中:
oracle-xe-11g 使用 Docker named volume oracle-data 持久化 /u01/app/oracle/oradataschemaforge 以 uid 1000 运行schemaforge 容器内的 SQLite 固定写入 /data/schemaforge.db,对应宿主机 ./data/app/schemaforge.dbghcr.io/oracle/oraclelinux9-instantclient:19 拷贝 Oracle Instant Client,并在镜像内配置 ldconfig1MB / 2000 行,可通过环境变量调整首次部署前请先根据 docs/env.md 配置 .env。构建应用镜像时需要能拉取 ghcr.io/oracle/oraclelinux9-instantclient:19。
如果要使用预构建镜像部署版 Compose,请看 deploy/README.md。