Skip to content

配置和维护

配置文件和环境变量

Campux

Campux 的配置文件位于 Campux/docker/volumes/campux/campux.yaml。修改后请重启容器:

yaml
auth:
    jwt:
        # 用户登录的 JWT Token 有效期
        expire: 21600
        # 用户 JWT Token 的加密密钥
        secret: ce798888-ff21-4c47-8a7e-0bdf6af5231a
backend:
    # 后端监听的地址
    host: 0.0.0.0
    # 后端监听的端口
    port: "8081"
database:
    # MongoDB 配置
    mongo:
        # MongoDB 数据库名
        db: campux
        # MongoDB URI
        uri: mongodb://localhost:27017
    sqlite:
        # SQLite 数据库文件地址
        path: ./data/campux.db
    # 选择使用哪种数据库,目前支持 sqlite 和 mongo
    use: sqlite
mq:
    redis:
        # redis 地址和端口
        addr: campux-redis:6379
        # redis 使用的数据库
        db: 0
        # redis 密码
        password: campux123456
oauth2:
    # OAuth 2.0 Server 配置
    server:
        # Access Token 签发密钥
        access_secret: 16d79012-edfc-4125-8b0d-e5c13abd03c8
        # Access Token 过期时间
        ak_expire: 1209600
        # OAuth App 鉴权 Code 密钥
        code_secret: c2751e28-06b8-4510-939c-81edb4ddb563
oss:
    local:
        # 本地存储的目录
        dir: ./data/objects
    minio:
        # MinIO 的 Access Key
        access_key: minio
        # MinIO 的 Bucket
        bucket: campux
        # MinIO 的 API 地址
        endpoint: localhost:9000
        # MinIO 的 Secret Key
        secret_key: minio123
        # 是否使用 SSL,如果 Endpoint 签发了 SSL 证书,就改为 true
        use_ssl: false
    # 选择使用哪种文件存储服务,目前支持 local 和 minio
    use: local
service:
    # 系统中的 墙号QQ号,以数组形式提供
    bots:
        - 1099044697
    # 本系统的名称,不是广义上的域名,只与redis中的隔离有关,如果多个campux系统共用一个redis,才需要修改这个配置
    # 需要确保 campux 与其诸个 CampuxBot 的 domain 配置相同
    domain: campux
    # CampuxBot 访问 token
    token: campux123456

通过环境变量修改 Campux 配置

  • 使用__(两个下划线)表示配置文件中的.,例如OSS__USE代表oss.useOAUTH2__SERVER__AK_EXPIRE表示oauth2.server.ak_expire
  • 环境变量的名称必须为全部大写。
  • 数组使用,分割每个元素,例如设置 service.bots 时,可以使用SERVICE_BOTS=114514,1919810表示该系统内有1145141919810两个墙号
  • 环境变量会覆盖并写入配置文件中的值

CampuxBot

配置文件

CampuxBot 的配置文件位于 Campux/docker/campuxbot/config.json。修改后请重启容器:
注意,json不支持注释,请勿直接复制下方示例。

json
{
    // NoneBot2 的 OneBot 11 适配器监听的 反向WS 地址
    "host": "0.0.0.0",
    // OneBot 11 适配器监听的 反向WS 端口
    "port": 8283,
    // 命令前缀,支持多个,例如 ["#", "#"]
    "command_start": [
        "#",
        "#"
    ],
    // 命令分隔符,支持多个,例如 ["."]
    "command_sep": [
        "."
    ],
    // Campux 后端地址
    "campux_api": "http://campux:8081",
    // Campux 后端访问 Token
    "campux_token": "campux123456",
    // Redis 地址
    "campux_redis_host": "campux-redis",
    // Redis 端口
    "campux_redis_port": 6379,
    // Redis 密码
    "campux_redis_password": "campux123456",
    // 是否允许群内审核
    "campux_qq_group_review": true,
    // 稿件渲染服务 CampuxUtility API 地址
    "campux_text_to_image_api": "http://campux-utility:8999/text2img",
    // 每次稿件发表前的强制延迟,单位秒
    "campux_publish_post_time_delay": 0,
    // 私聊墙号时未触发命令时的回复消息
    "campux_help_message": "发送 #注册账号 以此QQ号注册一个新账号(前面需要加#号)\n发送 #重置密码 重置你的账号密码\n\n投稿地址 https://gz.idoknow.top (若打不开请更换浏览器尝试)",
    // 群内审核时消息不符合命令时的回复消息
    "campux_review_help_message": "审核命令:\n#通过 <稿件id>\n\n#拒绝 <理由> <稿件id>\n\n例如:\n#通过 10\n#拒绝 测试理由 10",
    // 管理员群群号
    "campux_review_qq_group_id": 422250630,
    // 见 Campux 配置文件中的 domain 字段
    "campux_domain": "campux",
    // 墙号 QQ 号
    "campux_qq_bot_uin": 1099044697,
    // 墙号 QQ 号的 Cookies 刷新策略,支持 qrcode 和 ob11_auto
    // qrcode 表示扫码登录,ob11_auto 表示自动获取(详细请查看`初始化和维护`页的 登录 QQ 空间 章节)
    "campux_qzone_cookies_refresh_strategy": "qrcode"
}
通过环境变量修改 CampuxBot 配置
  • 直接使用字段名代表字段,大小写均可,例如:CAMPUX_QQ_BOT_UINcampux_qq_bot_uin均代表配置文件中的此字段
  • 环境变量会覆盖并写入配置文件中的值

元数据文件

启动实例后,CampuxBot 会在 data(Campux/docker/volumes/campuxbot/) 目录下创建 metadata.json 文件,用于存储机器人的元数据。

  • post_publish_text 发表说说到空间时,附带的文字,使用 Python 语法描述

    • 默认为 '#' + str(post_id) 仅附带稿件 ID

    • 支持的变量: text 稿件文本, post_id 稿件ID, uin 发布者QQ号, post 稿件对象(可以在CampuxBot的代码 campux/common/entity.py 中看到其定义)

    • 支持的函数: at(uin) 在文本中插入@某人, links() 提取文本中的链接并返回列表

    • 示例:

      json
      {
          "post_publish_text": "'#' + str(post_id) + ' ' + (at(uin) if not post.anon else '') + '\\n' + '\\n'.join(links())"
      }
      
      效果:
      #<稿件 ID> <@发布者(如果是匿名则为空)>
      <链接1>
      <链接2>

缓存数据

存放 CampuxBot 实例的缓存信息,例如 QQ 空间的Cookies。位于 Campux/docker/volumes/campuxbot/cache.json