服务端部署

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 项目资源限制,目前未实现,可直接照抄配置即可