Skip to content

Latest commit

 

History

History
204 lines (153 loc) · 4.79 KB

File metadata and controls

204 lines (153 loc) · 4.79 KB

1. 平台基础配置

如果使用 deploy/.env.example 对应的预构建镜像部署版 Compose,则只需要填写部署目录中保留的变量;像 ORA_HOSTORA_PORTORA_SERVICEORA_USERDB_PATH 这类容器内部固定值不需要再配置。

用于运行 SchemaForge 本身。

APP_PORT
APP_URL
APP_SECRET
APP_COOKIE_SECURE
INIT_ADMIN_ID
INIT_ADMIN_PASS

说明:

变量 用途
APP_PORT Web 服务端口
APP_URL 平台访问地址(生成链接)
APP_SECRET session / cookie 加密
APP_COOKIE_SECURE 是否强制给 session cookie 打 Secure
INIT_ADMIN_ID 首次启动管理员学号 / 账号
INIT_ADMIN_PASS 首次初始化管理员密码

说明:

  • 默认会根据 APP_URL 自动判断:https:// 时开启 Securehttp:// 时关闭
  • 局域网或内网 IP 通过 HTTP 访问时,应保持 APP_COOKIE_SECURE=false
  • APP_SECRETINIT_ADMIN_PASS 没有安全默认值,必须显式填写
  • INIT_ADMIN_PASS 仅在管理员账号不存在时使用一次,后续应通过页面修改管理员密码

2. Oracle 管理连接(SchemaForge 使用)

SchemaForge 后端操作数据库使用的连接

ORA_HOST
ORA_PORT
ORA_SERVICE
ORA_USER
ORA_PASS

示例:

ORA_HOST=oracle-xe-11g
ORA_PORT=1521
ORA_SERVICE=XE
ORA_USER=system
ORA_PASS=<required>

说明:

  • 这个连接用于:

    • CREATE USER
    • DROP USER
    • 查询用户
    • 修改 quota
  • ORA_PASS 没有默认值,必须显式填写

  • 使用 docker compose 时,ORA_PASS 也会作为 oracle-xe-11g 的初始化密码注入 ORACLE_PASSWORD


3. 用户连接信息(展示给用户)

用户连接数据库可能走 不同地址(Docker / NAT / 域名)。

所以必须单独配置:

ORA_PUB_HOST
ORA_PUB_PORT
ORA_PUB_SERVICE

示例:

ORA_PUB_HOST=db.example.com
ORA_PUB_PORT=1521
ORA_PUB_SERVICE=XE

用户看到的连接:

jdbc:oracle:thin:@//db.example.com:1521/XE

而 SchemaForge 内部连接:

//oracle-xe-11g:1521/XE

4. 环境规则配置

控制 schema 创建策略。

ENV_PREFIX
ENV_MAX_PER_USER
ENV_QUOTA_MB
ENV_PASS_LEN
ENV_SUFFIX_LEN
ORA_TABLESPACE
ORA_TEMP_TABLESPACE
ORA_CLIENT_LIB_DIR
AUTH_LOGIN_MAX_ATTEMPTS
AUTH_LOGIN_WINDOW_MS
CSV_IMPORT_MAX_BYTES
CSV_IMPORT_MAX_ROWS

示例:

ENV_PREFIX=S
ENV_MAX_PER_USER=4
ENV_QUOTA_MB=50
ENV_PASS_LEN=12
ENV_SUFFIX_LEN=4
ORA_TABLESPACE=USERS
ORA_TEMP_TABLESPACE=TEMP
ORA_CLIENT_LIB_DIR=/opt/oracle/instantclient
AUTH_LOGIN_MAX_ATTEMPTS=5
AUTH_LOGIN_WINDOW_MS=600000
CSV_IMPORT_MAX_BYTES=1048576
CSV_IMPORT_MAX_ROWS=2000

说明:

变量 作用
ENV_PREFIX schema 前缀
ENV_MAX_PER_USER 每人最大环境数
ENV_QUOTA_MB 单环境 quota 大小(MB)
ENV_PASS_LEN 自动生成 Oracle 密码长度
ENV_SUFFIX_LEN schema 随机后缀长度
ORA_TABLESPACE 业务 schema 默认表空间
ORA_TEMP_TABLESPACE 业务 schema 临时表空间
ORA_CLIENT_LIB_DIR thick mode Oracle Client 库路径
AUTH_LOGIN_MAX_ATTEMPTS 单个 IP + ID 登录窗口内最大失败次数
AUTH_LOGIN_WINDOW_MS 登录失败计数窗口(毫秒)
CSV_IMPORT_MAX_BYTES 单次上传 CSV 最大字节数
CSV_IMPORT_MAX_ROWS 单次上传 CSV 最大行数

Docker Compose 默认方案:

  • oracle-xe-11g 使用 Docker named volume oracle-data 持久化 Oracle 数据目录
  • 应用镜像会从 ghcr.io/oracle/oraclelinux9-instantclient:19 拷贝 Instant Client
  • 容器内默认路径为 /opt/oracle/instantclient
  • 如需改为自定义库目录,可覆盖 ORA_CLIENT_LIB_DIR

5. SQLite 配置

DB_PATH

示例:

DB_PATH=/data/schemaforge.db

说明:

  • 本地开发可使用相对路径,例如 ./data/schemaforge.db
  • Docker Compose 容器内应使用绝对路径 /data/schemaforge.db
  • 宿主机目录建议挂载到 ./data/app

6. CSV 导入

管理员页面上传 CSV 导入普通用户。

当前建议格式:

id,password
abc123,abc123
20230001,123456

规则:

  • 只允许导入普通用户
  • id 必须唯一,重复行报错
  • 已存在用户执行覆盖密码
  • 不在 CSV 中的用户不会被删除