emitter,mongodb,redis,elasticsearch可以使用云服务,或者安装官方教程安装。 其中需要注意的是:
- mongodb需要支持事务,我们的程序严重依赖事务。
- redis需要安装单价模式,目前我们不支持redis集群。
- elasticsearch版本只能是7.16.7,插件下载地址
使用docker-compose启动服务 #
docker-compose.yml #
version: "3.5"
services:
api:
image: linksaas/api-server:0.0.1
ports:
- "5000:5000"
- "2121:2121"
- "80:80"
volumes:
- "YOUR_PATH/api.yaml:/app/server.yaml"
- "YOUR_PATH/logs:/app/logs"
storage:
image: linksaas/tencent-storage:0.0.1
volumes:
- "YOUR_PATH/storage.yaml:/app/server.yaml"
# storage:
# image: linksaas/local-storage:0.0.1
# volumes:
# - "YOUR_PATH/data:/data"
mail:
image: linksaas/tencent-mail:0.0.1
volumes:
- "YOUR_PATH/mail.yaml:/app/server.yaml"
sms:
image: linksaas/tencent-sms:0.0.1
volumes:
- "YOUR_PATH/sms.yaml:/app/server.yaml"
adminTool:
image: linksaas/admin-cli:0.0.1
mail.yaml(使用linksaas/tencent-mail) #
使用了腾讯云的邮件发送服务。需要创建注册和重设密码的邮件模板。
使用管理工具管理账号的情况下,可以不部署这个服务。
listenAddr: "0.0.0.0:5003"
region: your_region
sendUser: your_send_user
secretId: your_secret_id
secretKey: your_secret_key
regMail:
templateId: mail_template_id
authCodeKey: authCode
title: reg_mail_title
resetMail:
templateId: mail_template_id
authCodeKey: authCode
title: reset_mail_title
sms.yaml(使用linksaas/tencent-sms) #
使用了腾讯云的短信推送服务。需要创建注册和重设密码的短信模板。
使用管理工具管理账号的情况下,可以不部署这个服务。
listenAddr: "0.0.0.0:5004"
region: your_region
appId: your_app_id
signName: your_sign_name
secretId: your_secret_id
secretKey: your_secret_key
regSms:
templateId: your_template_id
resetSms:
templateId: your_template_id
storage.yaml(使用linksaas/tencent-storage) #
不安装这个服务,会无法发送图片,文件,无法修改头像和无法上传电子书。
使用了腾讯云的对象存储服务。
listenAddr: "0.0.0.0:5002"
url: your_cos_url
secretId: your_secret_id
secretKey: your_secret_key
api.yaml #
grpcPort: 5000
httpPort: 80
metricPort: 2121
logging:
grpc: "logs/grpc.log"
task: "logs/task.log"
webhook: "logs/webhook.log"
search: "logs/search.log"
reg: "logs/reg.log"
mqtt: "logs/mqtt.log"
webAddr: "http://your_host:80"
dataBase:
mongo:
url: your_mongo_url
dataBase: your_mongo_db
emitter:
urls:
- "tcp://emitter_host:8080"
secretKey: your_emitter_key
fileStore:
remoteAddr: "storage:5002"
redis:
addr: your_redis_host:6379
passWord: your_redis_password
mail:
remoteAddr: "mail:5003"
sms:
remoteAddr: "sms:5004"
es:
addrs: []
userName: ""
password: ""
clientCfg:
brokerAddr: "tcp://your_server_host:8080"
serverAddr: "your_server_host:5000"
canInvite: false
admin:
enable: true
secret: your_admin_secret
restrict:
project:
maxOpenChannel: 200
maxMemberCount: 10
maxDocSpaceCount: 10
maxDocCount: 1000
projectFs:
hasTtl: false
maxFileSize: 1M
totalSize: 1G
autoRemoveOldFile: true
channelFs:
hasTtl: true
ttl: 3d
maxFileSize: 20M
totalSize: 1G
autoRemoveOldFile: true
snapShotFs:
hasTtl: true
ttl: 14d
maxFileSize: 5M
totalSize: 1G
autoRemoveOldFile: true
issueFs:
hasTtl: false
maxFileSize: 20M
totalSize: 1G
autoRemoveOldFile: true
docFs:
hasTtl: false
maxFileSize: 20M
totalSize: 1G
autoRemoveOldFile: true
配置 | 说明 |
---|---|
grpcPort | grpc监听端口 |
httpPort | webhook监听端口 |
metricPort | metric监听端口 |
logging | 日志相关配置 |
logging.grpc | grpc调用日志,只记录错误信息 |
logging.task | 任务执行日志,长时间处理的逻辑会作为任务执行 |
logging.webhook | webhook接收日志 |
logging.search | 搜索日志 |
logging.reg | 注册日志 |
logging.mqtt | 消息通知日志 |
webAddr | webhook访问的地址 |
dataBase | 数据库相关配置 |
dataBase.mongo | mongodb配置 |
dataBase.mongo.url | mongodb的访问url,包含验证信息 |
dataBase.mongo.dataBase | 使用的数据库名称 |
dataBase.emitter | emitter相关配置 |
dataBase.emitter.urls | emitter集群地址 |
dataBase.emitter.secretKey | emitter安装中产生的密钥 |
dataBase.fileStore | 文件存储配置 |
dataBase.fileStore.remoteAddr | 文件存储的服务地址 |
dataBase.redis | redis相关配置 |
dataBase.redis.addr | redis访问地址 |
dataBase.redis.passWord | redis访问密码 |
dataBase.mail | 邮件相关配置 |
dataBase.mail.remoteAddr | 邮件服务地址 |
dataBase.sms | 短信相关配置 |
dataBase.sms.remoteAddr | 短信服务地址 |
dataBase.es | elastic search配置 |
dataBase.es.addrs | elastic search访问地址 |
dataBase.es.userName | elastic search的账号 |
dataBase.es.password | elastic search的密码 |
clientCfg | 发送给客户端的配置信息 |
clientCfg.brokerAddr | 消息推送的订阅地址 |
clientCfg.serverAddr | 服务端访问地址 |
clientCfg.canInvite | 是否开启项目成员邀请 |
admin | 管理功能配置 |
admin.enable | 是否打开管理接口,关闭管理接口后管理工具讲不可用 |
admin.secret | 管理接口密钥,需要32位长度 |
restrict | 项目资源限制,目前未实现,可直接照抄配置即可 |