You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
paopao-ce/docs/deploy/core/001-配置文件说明.md

7.7 KiB

配置文件说明

paopao-ce使用YAML格式的conf.yml作为配置文件。config.yaml.sample 是一份完整的配置文件模版paopao-ce启动时会读取./custom/config.yaml./config.yaml任意一份配置文件(优先读取最先找到的文件)。

cp config.yaml.sample config.yaml
vim config.yaml # 修改参数
paopao-ce

配置文件中的 Features 小节是声明paopao-ce运行时开启哪些功能项:

...

Features:
  Default: ["Base", "MySQL", "Option", "LocalOSS", "LoggerFile"]
  Develop: ["Base", "MySQL", "Option", "Sms", "AliOSS", "LoggerZinc"]
  Demo: ["Base", "MySQL", "Option", "Sms", "MinIO", "LoggerZinc"]
  Slim: ["Base", "Sqlite3", "LocalOSS", "LoggerFile"]
  Base: ["Zinc", "Redis", "Alipay",]
  Option: ["SimpleCacheIndex"]
  Sms: "SmsJuhe"

...

如上: Default/Develop/Demo/Slim 是不同 功能集套件(Features Suite) Base/Option 是子功能套件, Sms是关于短信验证码功能的参数选项。

这里 Default套件 代表的意思是: 使用Base/Option 中的功能,外加 MySQL/LocalOSS/LoggerFile功能,也就是说开启了Zinc/Redis/Alipay/SimpleCacheIndex/MySQL/LocalOSS/LoggerFile 7项功能 Develop套件依例类推。

使用Feautures:

release/paopao-ce --help
Usage of release/paopao-ce:
  -features value
        use special features
  -no-default-features
        whether use default features

# 默认使用 Default 功能套件
release/paopao-ce 

# 不包含 default 中的功能集,仅仅使用 develop 中声明的功能集
release/paopao-ce --no-default-features --features develop 

# 使用 default 中的功能集,外加 sms 功能
release/paopao-ce --features sms  

# 手动指定需要开启的功能集
release/paopao-ce --no-default-features --features sqlite3,localoss,loggerfile,redis 

目前支持的功能集合:

功能项 类别 状态 备注
Web 子服务 内测 开启Web服务
Admin 子服务 WIP 开启Admin后台运维服务
SpaceX 子服务 WIP 开启SpaceX服务
Bot 子服务 WIP 开启Bot服务
NativeOBS 子服务 WIP 开启NativeOBS服务
Docs 子服务 WIP 开启开发者文档服务
Frontend:Web 子服务 稳定 开启独立前端服务
Frontend:EmbedWeb 子服务 稳定 开启内嵌于后端Web API服务中的前端服务
Deprecated:Web 子服务 稳定 开启旧的Web服务
Gorm 数据库 稳定(默认) 使用gorm作为数据库的ORM默认使用 Gorm + MySQL组合
Sqlx 数据库 WIP 使用sqlx作为数据库的ORM
MySQL 数据库 稳定(默认) 使用MySQL作为数据库
Postgres 数据库 稳定 使用PostgreSQL作为数据库
Sqlite3 数据库 稳定 使用Sqlite3作为数据库
AliOSS 对象存储 稳定(推荐) 阿里云对象存储服务
COS 对象存储 内测 腾讯云对象存储服务
HuaweiOBS 对象存储 内测 华为云对象存储服务
MinIO 对象存储 稳定 MinIO对象存储服务
S3 对象存储 内测 AWS S3兼容的对象存储服务
LocalOSS 对象存储 内测 提供使用本地目录文件作为对象存储的功能,仅用于开发调试环境
OSS:Retention 对象存储 内测 基于对象存储系统的对象过期自动删除特性实现 先创建临时对象再持久化的功能
OSS:TempDir 对象存储 内测 基于对象存储系统的对象拷贝/移动特性实现 先创建临时对象再持久化的功能
Redis 缓存 稳定 Redis缓存功能
SimpleCacheIndex 缓存 Deprecated 提供简单的 广场推文列表 的缓存功能
BigCacheIndex 缓存 稳定(推荐) 使用BigCache缓存 广场推文列表,缓存每个用户每一页,简单做到千人千面
Zinc 搜索 稳定(推荐) 基于Zinc搜索引擎提供推文搜索服务
Meili 搜索 稳定(推荐) 基于Meilisearch搜索引擎提供推文搜索服务
Bleve 搜索 WIP 基于Bleve搜索引擎提供推文搜索服务
LoggerFile 日志 稳定 使用文件写日志
LoggerZinc 日志 稳定(推荐) 使用Zinc写日志
LoggerMeili 日志 内测 使用Meilisearch写日志
Friendship 关系模式 内测 弱关系好友模式,类似微信朋友圈
Followship 关系模式 WIP 关注者模式类似Twitter的Follow模式
Lightship 关系模式 内测(默认) 开放模式,所有推文都公开可见
Alipay 支付 稳定 开启基于支付宝开放平台的钱包功能
Sms 短信验证 稳定 开启短信验证码功能,用于手机绑定验证手机是否注册者的;功能如果没有开启,手机绑定时任意短信验证码都可以绑定手机
Docs:OpenAPI 开发文档 稳定 开启openapi文档功能提供web api文档说明(visit http://127.0.0.1:8008/docs/openapi)
PhoneBind 其他 稳定 手机绑定功能
Web:DisallowUserRegister 功能特性 稳定 不允许用户注册

功能项状态详情参考 features-status.

按需添加自定义配置

paopao-ce提供了按需添加配置的机制paopao-ce在internal/conf/config.yaml中内嵌了一份完整的默认配置内嵌的默认配置与自定义配置config.yaml在paopao-ce启动时自动进行了配置项合并自定义的配置(./config.yaml或者./custom/config.yaml)中只需要自定义 运行时 声明Features 的相应配置即可。比如只运行Web 子服务config.yaml可以只包含如下配置(其他配置使用默认值):

# file: config.yaml

Features:
  Default: ["Sqlite3", "Zinc", "LocalOSS",  "BigCacheIndex", "Web"]
WebServer: # Web服务
  HttpIp: 0.0.0.0
  HttpPort: 8010
  ReadTimeout: 60
  WriteTimeout: 60
LocalOSS: # 本地文件OSS存储配置
  SavePath: data/paopao-ce/oss
  Secure: True
  Bucket: paopao
  Domain: api.paopao.info
Zinc: # Zinc搜索配置
  Host: 127.0.0.1:4080
  Index: paopao-data
  User: admin
  Password: admin
  Secure: False

部署paopao-ce实例时可以按需自定义配置运行时所需的配置项 多个实例部署可以使用不同配置项组合,运行不同的子服务,再通过一个统一的 Proxy(Nginx或云端proxy) 将请求桥接到具体的paopao-ce部署实例。

多服务同端口运行

paopao-ce提供的机制是各个子服务(gRPC/RESTful API服务)可以在一个独立端口提供业务服务也可以多个同类型的子服务RESTful API服务 或者 gRPC 服务)共享同一个端口提供服务,比如 Web/Admin/Bot 三个子服务在8010端口提供服务, 只需要配置三个子服务的HttpIp/HttpPort为相同值即可:

# file: config.yaml

Features:
  Default: ["Sqlite3", "Zinc", "LocalOSS",  "BigCacheIndex", "Web", "Admin", "Bot"]
WebServer: # Web服务
  HttpIp: 0.0.0.0
  HttpPort: 8010
  ReadTimeout: 60
  WriteTimeout: 60
AdminServer: # Admin后台运维服务
  HttpIp: 0.0.0.0
  HttpPort: 8010
  ReadTimeout: 60
  WriteTimeout: 60
BotServer: # Bot服务
  HttpIp: 0.0.0.0
  HttpPort: 8010
  ReadTimeout: 60
  WriteTimeout: 60

...