安装部署
我们推荐使用 Docker 运行华炎魔方,生产环境推荐使用 centos 或 ubuntu 操作系统。如果您只是安装测试环境,也可以使用 windows 或 mac 系统。
参考官网安装docker
确保本地已安装docker-compose
由于镜像存在国外,可配置阿里云官方镜像加速
参考以下内容,创建 docker-compose.yml。其中包含:
version: "3"
services:
steedos:
image: steedos/steedos-project-template:latest
restart: always
ports:
- "3000:3000"
volumes:
- "./docker-volumes/steedos/storage:/app/storage"
- "./docker-volumes/steedos/.steedos:/app/.steedos"
environment:
- STEEDOS_CLOUD_SPACE_ID=#在此填入私有部署记录中的魔方ID
- STEEDOS_CLOUD_API_KEY=#在此填入私有部署记录中的API Key
- ROOT_URL=#在此填入服务运行的正式网址,包含端口号3000。例如 http://192.168.0.200:3000
- MONGO_URL=mongodb://mongo:27017/steedos
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
- STEEDOS_CFS_STORE=local
- STEEDOS_STORAGE_DIR=/app/storage
- TRANSPORTER=redis://redis:6379
- CACHER=redis://redis/2
depends_on:
- mongo
- redis
redis:
image: redis:6.2.4
restart: always
volumes:
- "./docker-volumes/redis/data:/data"
command: ["/bin/sh","-c", "redis-server --save \"\" --appendonly no --client-output-buffer-limit replica 0 0 0 --client-output-buffer-limit pubsub 0 0 0 --client-output-buffer-limit slave 0 0 0"]
ports:
- "6389:6379"
mongo:
image: ecr.aws.steedos.cn/dockerhub/mongo:4.2
restart: always
volumes:
- "./docker-volumes/mongo/data/db:/data/db"
command: mongod --oplogSize 128 --profile=1 --slowms=500 --replSet rs0 --bind_ip_all
ports:
- "27018:27017"
# this container's job is just run the command to initialize the replica set.
# it will run the command and remove himself (it will not stay running)
mongo-init-replica:
image: mongo:4.2
command: >
bash -c
"for i in `seq 1 30`; do
mongo mongo/steedos --eval \"
rs.initiate({
_id: 'rs0',
version: 1,
members: [ { _id: 0, host: 'mongo:27017' } ]})\" &&
s=$$? && break || s=$$?;
echo \"Tried $$i times. Waiting 5 secs...\";
sleep 5;
done; (exit $$s)"
depends_on:
- mongo
yml 文件中运行的是 steedos-project-template 项目,可以参考docker hub选择合适的版本号,通常建议运行最新版的 steedos 。
编辑 environment 中的 ROOT_URL 以匹配您的域名或 IP 地址,其他地址默认配置就行
environment:
- STEEDOS_CLOUD_SPACE_ID=#在此填入私有部署记录中的魔方ID
- STEEDOS_CLOUD_API_KEY=#在此填入私有部署记录中的API Key
- PORT=3000
- ROOT_URL=#在此填入服务运行的正式网址,包含端口号3000。例如 http://192.168.0.200:3000
请先 开通华炎魔方云服务 然后 激活华炎魔方,环境变量STEEDOS_CLOUD_SPACE_ID
和STEEDOS_CLOUD_API_KEY
的值就是其中新建的私有部署记录中的”魔方ID”和”ApiKey”。
使用 docker 启动服务
docker-compose up -d
查看服务状态
docker ps
停止服务
docker-compose stop
停止并删除服务
docker-compose down
华炎魔方私有部署版完全免费,可以参考以下教程为私有部署的华炎魔方配置华炎云账户,通过华炎云激活后,可解锁所有功能限制,并支持从应用市场下载和安装软件包,或是开发、发布自己的软件包。
请注意,激活过程中会自动为本地华炎魔方项目创建管理员账户,管理员用户名为手机号,初始密码为华炎云管理控制台中配置的默认密码。
在购买并开通华炎云服务后,您的华炎魔方默认只包含一个叫“办公”的应用。在华炎魔方的应用商城,则提供了更多的企业应用,包括众多合作伙伴发布的各类应用。您可以选择购买并开通这些应用。
点这里进入华炎魔方应用商城。
选购好所有的应用后,可以一键开通所有的应用。
华炎魔方后台会定期更新升级版本,对于docker部署的服务,修改本地的docker-compose.yml文件,升级版本号
steedos:
image: steedos/steedos-project-template:2.1.90 # 修改版本号到最新版
修改后,执行docker-compose down,再执行docker-compose up -d启用服务。
需要先激活华炎魔方,激活时新建华炎魔方会要求设置初始密码,成功激活后,本地华炎魔方项目就自动创建好了管理员账户,管理员用户名为手机号,初始密码为华炎云管理控制台中配置的默认密码。
只有华炎魔方的安装和激活过程要求连网,后续可以断网运行,不过付费软件包到期后需要重新续费激活。
配置附件存储的相关参数,附件可以保存在本地,也可以保存在阿里云或AWS S3服务中。
public:
cfs:
store: "local"
local:
folder: "./storage"
cfs:
aliyun:
region:
internal:
bucket:
folder:
accessKeyId:
secretAccessKey:
aws:
endpoint:
bucket:
accessKeyId:
secretAccessKey:
s3ForcePathStyle:
signatureVersion:
public.cfs.store
: 配置附件存储在什么地方,目前支持三个选项,local
表示存储在本地,OSS
表示存到阿里云,S3
表示存到AWS,默认值为local
。public.cfs.local.folder
: 当配置附件存在本地时,需要配置文件夹路径。cfs.aliyun
: 当配置附件存在阿里云时,需要购买阿里云服务并配置相关参数。cfs.aws
: 当配置附件存在AWS时,需要购买AWS云服务并配置相关参数。docker-compose中默认是以非账户验证的方式起的mongo数据库,当然这是一种不安全的服务模式,添加账户验证需要修改配置文件
运行docker ps查看mongo服务的containerId
docker ps
连接mongo服务
# 假设containerID为"83981540efb4"
docker exec -it 83981540efb4 bash
mongo
创建管理员用户和普通用户
use admin;
db.createUser({user: "adminUsername", pwd: "adminPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } );
use steedos;
db.createUser({user: "userUsername", pwd: "userPassword", roles: [ { role: "readWrite", db: "yourdbname" }, { role: "read", db: "local"} ] } );
查看已创建的用户
use admin;
db.system.users.find().pretty();
数据库用户创建好后,需要修改docker-compose.yml文件
steedos:
image: steedos/steedos-project-template:latest
restart: always
ports:
- "3000:3000"
volumes:
- "./docker-volumes/steedos/storage:/app/storage"
environment:
- PORT=3000
- ROOT_URL=http://localhost:3000
- MONGO_URL=mongodb://userUsername:userPassword@mongo:27017/steedos?replicaSet=rs0 #添加普通用户和密码
- MONGO_OPLOG_URL=mongodb://userUsername:userPassword@mongo:27017/local?replicaSet=rs0&authSource=steedos #添加普通用户和密码
- STEEDOS_CFS_STORE=local
...
mongo:
image: mongo:4.2
restart: always
volumes:
- "./docker-volumes/mongo/data/db:/data/db"
command: mongod --auth --oplogSize 128 --profile=1 --slowms=500 --replSet rs0 --bind_ip_all #添加 --auth
ports:
- "27018:27017"
删掉服务并重启
docker-compose down
docker-compose up -d