90 lines
4.3 KiB
Plaintext
90 lines
4.3 KiB
Plaintext
|
|
# =============================================================================
|
|||
|
|
# s-file 客户侧离线部署 —— 唯一需要现场修改的文件
|
|||
|
|
#
|
|||
|
|
# 用法:cp .env.example .env 然后按本机角色填写,两台服务器各填一份
|
|||
|
|
# 内网机:SFILE_ROLE=iw SFILE_TRANSFER_LOCATION=1 SFILE_SITE_ROOT=/usr/share/nginx/inside
|
|||
|
|
# 外网机:SFILE_ROLE=ow SFILE_TRANSFER_LOCATION=2 SFILE_SITE_ROOT=/usr/share/nginx/outside
|
|||
|
|
#
|
|||
|
|
# 凡是写着「必须改」的值,不改起不来或者起来即安全隐患
|
|||
|
|
# =============================================================================
|
|||
|
|
|
|||
|
|
# ---------- 本机角色(必须改) ----------
|
|||
|
|
# iw=内网机 / ow=外网机,只影响容器名前缀与 MQ 交换机命名,两侧不能填同一个
|
|||
|
|
SFILE_ROLE=iw
|
|||
|
|
# 传输方向标记:内网机 1,外网机 2。写反了跨网摆渡直接不工作
|
|||
|
|
SFILE_TRANSFER_LOCATION=1
|
|||
|
|
# 前端站点根:内网机 inside,外网机 outside(同一个 web 镜像内含两套前端包)
|
|||
|
|
SFILE_SITE_ROOT=/usr/share/nginx/inside
|
|||
|
|
|
|||
|
|
# ---------- 镜像(来自交付 tar,现场 docker load,不会联网拉取) ----------
|
|||
|
|
APP_IMAGE=sfile-app:1.0.0
|
|||
|
|
WEB_IMAGE=sfile-web:1.0.0
|
|||
|
|
PG_IMAGE=postgres:18
|
|||
|
|
REDIS_IMAGE=redis:8
|
|||
|
|
MQ_IMAGE=rabbitmq:3.13-management-alpine
|
|||
|
|
|
|||
|
|
# postgres 数据目录挂载点:18 及以后是 /var/lib/postgresql,15 及以前是 /var/lib/postgresql/data
|
|||
|
|
# 用交付的 PG_IMAGE 就不用动;自行换库版本时按上面规则改这一行
|
|||
|
|
PG_DATA_DIR=/var/lib/postgresql
|
|||
|
|
|
|||
|
|
# ---------- 对外访问 ----------
|
|||
|
|
# 只暴露前端一个端口;后端/数据库/Redis/MQ 全部只在容器网络内,不映射宿主机
|
|||
|
|
WEB_HOST=0.0.0.0
|
|||
|
|
WEB_PORT=80
|
|||
|
|
|
|||
|
|
# ---------- 口令与密钥(必须改) ----------
|
|||
|
|
POSTGRES_DB=s_file
|
|||
|
|
POSTGRES_USER=sfile
|
|||
|
|
POSTGRES_PASSWORD=CHANGE_ME_pg_password
|
|||
|
|
MQ_USER=sfile
|
|||
|
|
MQ_PASSWORD=CHANGE_ME_mq_password
|
|||
|
|
# JWT 签名密钥,至少 32 字符,两侧不要相同,丢失即所有登录态失效
|
|||
|
|
JWT_SECRET=CHANGE_ME_jwt_secret_at_least_32_chars
|
|||
|
|
# 新建用户的初始密码
|
|||
|
|
USER_DEFAULT_PASSWORD=CHANGE_ME_user_init_pwd
|
|||
|
|
|
|||
|
|
# ---------- 发号器(workerId)与容器网段 ----------
|
|||
|
|
# 后端雪花 ID 的 workerId 按「app 容器 IP」取键;取不到会回退 99,而 99 超过 5 位上限,
|
|||
|
|
# 应用会直接启动失败(worker Id can't be greater than 31)。所以这里必须锁 IP。
|
|||
|
|
# 下面三个值必须同一网段,一般不用改;只有和客户机器上已有 docker 网段冲突时才整段换掉
|
|||
|
|
APP_SUBNET=172.30.88.0/24
|
|||
|
|
APP_GATEWAY=172.30.88.1
|
|||
|
|
APP_NODE_IP=172.30.88.10
|
|||
|
|
# 发号器机器号,0-31。两台独立服务器各跑一套,取同一个值也没问题;
|
|||
|
|
# 若同一台机器上并跑内网+外网两套栈,必须给不同值,否则生成的 ID 会撞
|
|||
|
|
APP_WORK_ID=1
|
|||
|
|
|
|||
|
|
# ---------- 主机数据目录 ----------
|
|||
|
|
# 应用上传文件、日志、数据库/Redis/MQ 持久化的根目录,需独立数据盘且预留足够空间
|
|||
|
|
SFILE_DATA_ROOT=/data/sfile
|
|||
|
|
# 光闸摆渡目录:本机的「发出去」目录,由光闸设备单向搬运到对端
|
|||
|
|
GATE_SEND_DIR=/data/sfile/gate/out
|
|||
|
|
# 光闸摆渡目录:对端经光闸投递进来的目录
|
|||
|
|
GATE_RECV_DIR=/data/sfile/gate/in
|
|||
|
|
|
|||
|
|
# ---------- MeshSafe 文件安全检测 ----------
|
|||
|
|
# 没有部署 MeshSafe 时置 false,前端自动隐藏「安全检测」列,跨网摆渡不受影响
|
|||
|
|
MESHSAFE_ENABLED=true
|
|||
|
|
# 同机部署:http://host.docker.internal:44380(需 Docker >= 20.10)
|
|||
|
|
# 独立服务器/集群:http://<MeshSafe地址>:<端口>
|
|||
|
|
MESHSAFE_BASE_URL=http://host.docker.internal:44380
|
|||
|
|
# 必须与 MeshSafe 侧 MESHSAFE_API_CLIENTS 白名单里的凭证一致(必须改)
|
|||
|
|
MESHSAFE_CLIENT_ID=CHANGE_ME_client_id
|
|||
|
|
MESHSAFE_SECRET=CHANGE_ME_client_secret
|
|||
|
|
# 送检来源标识,两侧区分开便于审计追溯
|
|||
|
|
MESHSAFE_CHANNEL=sfile-iw
|
|||
|
|
# 检测服务不可用时:true=放行并记录,false=阻断(等保从严建议 false)
|
|||
|
|
MESHSAFE_FAIL_OPEN=true
|
|||
|
|
MESHSAFE_TIMEOUT_SECONDS=120
|
|||
|
|
MESHSAFE_POLL_TIMEOUT_MINUTES=60
|
|||
|
|
# 拉取检测结论的轮询周期,默认每 10 秒
|
|||
|
|
MESHSAFE_POLL_CRON=0/10 * * * * ?
|
|||
|
|
|
|||
|
|
# ---------- 资源与运行时 ----------
|
|||
|
|
TZ=Asia/Shanghai
|
|||
|
|
# 按机器内存调整,堆外还需预留 1G 左右
|
|||
|
|
APP_JAVA_OPTS=-Xms1g -Xmx3g -Dfile.encoding=UTF-8
|
|||
|
|
REDIS_MAXMEMORY=512mb
|
|||
|
|
# 跨网文件监听任务周期,默认每分钟扫一次摆渡目录
|
|||
|
|
FILE_TRANSFER_MONITOR_CRON=0 */1 * * * ?
|