安装部署
内含华炎魔方环境变量及系统参数说明。
steedos.config.js 用于配置系统参数,位于项目的根目录。
建议不要直接修改此文件,其中的大部分参数可以通过环境变量设置。
2.2.52 之前的版本使用 steedos-config.yml 和 moleculer.config.js 配置系统参数,现已合并到统一的 steedos.config.js
# 平台
PORT=5000
ROOT_URL=http://localhost:5000
# 微服务通讯 [https://moleculer.services/docs/0.14/networking.html](https://moleculer.services/zh/docs/0.14/networking.html)
TRANSPORTER=redis://127.0.0.1:6379
# 缓存 https://moleculer.services/zh/docs/0.14/caching.html
CACHER=redis://127.0.0.1:6379/1
# 数据库
MONGO_URL=mongodb://127.0.0.1:27017/steedos
MONGO_OPLOG_URL=mongodb://127.0.0.1:27017/local
# 开发环境元数据同步
[metadata]
METADATA_SERVER=http://localhost:5000
METADATA_APIKEY=#会自动填充为初始界面中输入的环境变量值
## 平台初始化
华炎魔方新安装时,如果数据库中无用户记录,默认显示初始化向导界面。也可以通过以下环境变量自动初始化。
STEEDOS_INITIAL_USERNAME= # 用户名 STEEDOS_INITIAL_PASSWORD= # 密码 STEEDOS_INITIAL_NAME= # 可选,姓名,未配置时默认为用户名 STEEDOS_INITIAL_EMAIL= # 可选,邮箱 STEEDOS_INITIAL_MOBILE= # 可选,手机号 STEEDOS_INITIAL_TENANT_ID= # 可选,未配置时自动生成 STEEDOS_INITIAL_TENANT_NAME= # 可选,未配置时就是“我的公司” STEEDOS_INITIAL_API_KEY= # 可选,未配置时自动生成随机串
## 登录界面
配置登录界面相关参数,例如是否允许注册、是否允许修改密码、是否允许创建企业。
```bash
STEEDOS_TENANT_ENABLE_REGISTER=true # 允许创建账户,空库时默认true
STEEDOS_TENANT_ENABLE_FORGET_PASSWORD=true # 允许密码密码,设置为true时将显示找回密码链接用于找回密码,默认false。
STEEDOS_TENANT_ENABLE_CREATE_TENANT=false # 允许创建企业,默认只有空库时允许创建
STEEDOS_TENANT_ENABLE_PASSWORD_LOGIN=true # 允许使用密码登录,启用时,注册和登录都默认使用密码。默认true
STEEDOS_TENANT_ENABLE_BIND_EMAIL=false # 强制绑定邮箱,登录后必须输入和验证邮箱。默认false
STEEDOS_TENANT_ENABLE_BIND_MOBILE=false # 强制绑定手机号,登录后必须输入和验证手机号。默认false
STEEDOS_TENANT_ENABLE_EMAIL_CODE_LOGIN=false #允许使用邮箱验证码登录,启用时,注册和登录都默认使用验证码。
STEEDOS_TENANT_ENABLE_MOBILE_CODE_LOGIN=false # 允许使用手机验证码登录,启用时,注册和登录都默认使用验证码。
STEEDOS_TENANT_TOKEN_SECRET= # 默认值 43位字符串, 每次重启服务时生成新的值
STEEDOS_TENANT_ACCESS_TOKEN_EXPIRES_IN= # 默认值 90d
STEEDOS_TENANT_REFRESH_TOKEN_EXPIRES_IN= # 默认值 7d
配置附件存储的相关参数。
STEEDOS_CFS_STORE=local
STEEDOS_STORAGE_DIR=/app/storage
附件可以保存在 S3 协议的服务器中,包括AW、阿里云、腾讯云的云存储服务,或是私有部署的 minio 服务
STEEDOS_CFS_STORE=S3
STEEDOS_CFS_AWS_S3_ENDPOINT=http://minio:9000
STEEDOS_CFS_AWS_S3_FORCE_PATH_STYLE=true
STEEDOS_CFS_AWS_S3_BUCKET=steedos-prod
STEEDOS_CFS_AWS_S3_ACCESS_KEY_ID=${MINIO_ROOT_USER:-steedos}
STEEDOS_CFS_AWS_S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD:-steedos123}
默认系统中上传的头像、图片、附件需要登录之后才能下载。
配置以下变量可以设定免登录下载。
STEEDOS_CFS_DOWNLOAD_PUBLIC=avatars,images # 可选 avatars,images,files, 默认值为avatars
华炎魔方支持在线预览PDF及Office文件,只需要配置对应的文件预览服务地址即可。
如果配置了文件预览服务,点击附件标题还是会下载附件,可以点击对应的预览按钮来直接打开文件,目前以下界面支持在线预览功能:
需升级到2.4最新版,否则会报附件跨域问题;如果未配置文件预览服务,只能点击附件标题来下载文件,然后在本地查看文件内容。
修改配置文件steedos.config.js,修改为:
require('dotenv-flow').config({
path: process.cwd(),
silent: true
});
module.exports = {
......
started(broker) {
broker.createService(require("@steedos/service-enterprise"));
},
// 添加settings自定义配置
settings: {
public: {
webservices: {
pdfOnline: {
url: "https://unpkg.steedos.cn/@steedos/pdfjs-dist@1.0.0/web/viewer.html?rangeChunkSize=1024&file="
},
officeOnline: {
url: "https://view.officeapps.live.com/op/view.aspx?src="
}
}
}
}
};
PDF文件预览服务是支持IP地址访问的,Office文件预览服务则与之不同,如果使用上述配置的微软在线预览服务时,需采用域名及默认端口访问,不能使用IP地址及非默认端口。
配置SMTP服务的相关参数,用于系统发送推送邮件。
email:
from: ${STEEDOS_EMAIL_FROM}
url: ${STEEDOS_EMAIL_URL}
host: ${STEEDOS_EMAIL_HOST}
port: ${STEEDOS_EMAIL_PORT}
username: ${STEEDOS_EMAIL_USERNAME}
password: ${STEEDOS_EMAIL_PASSWORD}
secure: ${STEEDOS_EMAIL_SECURE}
signname: ${STEEDOS_EMAIL_SIGNNAME}
企业版:配置 OpenID Connnect 单点登录的参数,可以连接 Keycloak 服务器。
# OpenID Connect
STEEDOS_IDENTITY_OIDC_ENABLED=true
STEEDOS_IDENTITY_OIDC_CONFIG_URL=https://id.steedos.cn/realms/master/.well-known/openid-configuration
STEEDOS_IDENTITY_OIDC_CLIENT_ID=steedos-oidc-public
STEEDOS_IDENTITY_OIDC_CLIENT_SECRET=none
STEEDOS_IDENTITY_OIDC_NAME=Steedos ID
STEEDOS_IDENTITY_OIDC_LOGO=
STEEDOS_IDENTITY_OIDC_REQUIRE_LOCAL_ACCOUNT=false
密码的复杂度是通过password.policy 属性来控制的,值为正则表达式。
public:
password:
policy: ^[A-Za-z0-9]{8,}$
policyError: "密码不能少于8位"
policies:
- policy: 123
policyError: "密码必须包含123"
- policy: 456
policyError: "密码必须包含456"
policyFunction: !
function(password){
if(password === '12345678'){
throw new Error('密码不能是12345678');
}
}
配置定时任务的属性。
STEEDOS_CRON_BUILD_INDEX="0 0 * * * *"
STEEDOS_CRON_WORKFLOW_RULE='*/10 * * * * *'
STEEDOS_CRON_MAILQUEUE_INTERVAL=10000
STEEDOS_CRON_PUSH_INTERVAL=1000
STEEDOS_CRON_WEBHOOKQUEUE_INTERVAL=10000
STEEDOS_CRON_INSTANCERECORDQUEUE_INTERVAL=10000
STEEDOS_CRON_SMSQUEUE_INTERVAL=1000
STEEDOS_CRON_OBJECTWEBHOOKSQUEUE_INTERVAL=10000
配置账户相关参数。
accounts:
mobile_phone_locales: ['zh-CN']
mobile_regexp: '^[0-9]{11}$'
is_username_skip_minrequiredlength: true
UTF8_Names_Validation: '[A-Za-z0-9-_.\u00C0-\u017F\u4e00-\u9fa5]'
zh-CN
表示使用中国的11位手机号,要支持其他国家手机号请参考 validator。