7.4 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 |
其他 | 稳定 | 手机绑定功能 |
功能项状态详情参考 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
...