• 简体中文
  • Octop 环境变量:完整配置参考

    每个 config.json 字段都有对应环境变量。设置后优先级高于文件值,文件本身不会被改写。这适合 Docker、CI,以及不想把密钥落盘的场景。

    变量列表

    环境变量类型默认值描述
    OCTOP_HOMEpath~/.octop安装根目录。数据库、密钥、专家工作区和插件都在这里。
    OCTOP_BIND_HOSTstring127.0.0.1监听网卡。局域网或容器访问请设为 0.0.0.0。
    OCTOP_PORTint8088绑定的 TCP 端口。
    OCTOP_LOG_LEVELstringinfo日志级别:debug、info、warning 或 error。
    OCTOP_LOG_RETENTION_DAYSint14保留轮转后的 octop.log.YYYY-MM-DD 天数。
    OCTOP_LOG_MAX_BYTESint104857600(100 MiB)活动日志超过该大小时轮转(同时仍按日轮转)。
    OCTOP_LOG_COMPRESSbooltrue类似 logrotate 的 compress + delaycompress:下一轮再 gzip 更早的明文轮转文件。
    OCTOP_ACCESS_TOKEN_TTLint(秒)86400JWT 访问令牌有效期,默认 24 小时。
    OCTOP_LOGIN_MAX_ATTEMPTSint5锁定前允许的失败登录次数。
    OCTOP_LOGIN_LOCKOUT_SECONDSint900锁定持续时间(秒)。
    OCTOP_CAPTCHA_PROVIDERslugslider登录验证码:slider、turnstile、hcaptcha、recaptcha-v3 或 tencent。已保存的 recaptcha(v2)仍可用,但不再出现在列表中。启动时快照,改完需重启。
    OCTOP_CAPTCHA_SITE_KEYstring(空)公钥(腾讯云为 CaptchaAppId)。环境快照为强校验提供方时必填。
    OCTOP_CAPTCHA_SECRETstring(空)校验密钥(腾讯云为 AppSecretKey)。不会记入日志;GET /api/envs 会打码。
    OCTOP_CAPTCHA_CAM_SECRET_IDstring(空)仅腾讯云:用于 DescribeCaptchaResult 的 CAM SecretId。环境快照为 tencent 时必填。
    OCTOP_CAPTCHA_CAM_SECRET_KEYstring(空)仅腾讯云:CAM SecretKey。不会记入日志;GET /api/envs 会打码。
    OCTOP_CAPTCHA_V3_MIN_SCOREfloat0.5recaptcha-v3 最低分数。管理页面此项只读。
    OCTOP_DEFAULT_TIMEZONEIANA tzAsia/Shanghai页面时间戳、定时任务和 harness 使用的时区。
    OCTOP_CORS_ORIGINS逗号分隔(空)允许跨域的来源列表。
    OCTOP_ENABLE_DASHBOARDbooltrue是否在 / 提供内置页面。
    OCTOP_ENABLE_API_DOCSboolfalse是否在 /api/docs 开放 Scalar。
    OCTOP_REQUIRE_SETUP_PASSWORDbooltrue首次向导是否需要密码门。无人值守请配合 OCTOP_ADMIN_USERNAME / OCTOP_ADMIN_PASSWORD。
    OCTOP_DATABASE_URLstring(空)完整 PostgreSQL DSN,会覆盖下面各 OCTOP_DATABASE_* 字段。
    OCTOP_DATABASE_DRIVERstringsqlite存储后端:sqlite 或 postgresql。
    OCTOP_DATABASE_SQLITE_PATHpathoctop.dbSQLite 路径。相对路径相对 OCTOP_HOME 解析。
    OCTOP_DATABASE_HOSTstring127.0.0.1PostgreSQL 主机。仅 OCTOP_DATABASE_DRIVER=postgresql 时使用。
    OCTOP_DATABASE_PORTint5432PostgreSQL 端口。
    OCTOP_DATABASE_NAMEstringoctopPostgreSQL 数据库名。
    OCTOP_DATABASE_USERstringoctopPostgreSQL 用户。
    OCTOP_DATABASE_PASSWORDstring(空)PostgreSQL 密码。生产环境请用环境变量,不要写进 config.json。
    OCTOP_ADMIN_USERNAMEstring(空)octop init 时预填的首个管理员用户名。Docker 首次启动未设置时默认为 admin。
    OCTOP_ADMIN_PASSWORDstring(空)octop init 时预填的首个管理员密码。
    OCTOP_DEFAULT_PASSWORDstring(空)Docker / 镜像首次启动的管理员密码,写入 /data/.octop/credential.txt。未设置时自动生成 16 位随机密码;弱密码或常见密码会回退为随机密码,首次初始化不会因此失败。不替代裸机设置向导。
    OCTOP_ADMIN_DISPLAY_NAMEstring(空)octop init 时预填的首个管理员显示名。
    OCTOP_HISTORY_V2_ENABLEDboolfalse为下一完整回合启用分段历史归档。
    OCTOP_BROWSER_IDLE_TIMEOUT_MINUTESint30工作台拉起的本地 Chrome 空闲多少分钟后回收。
    OCTOP_USERstring(空)CLI 子命令默认 --user。
    OCTOP_AGENTstring(空)CLI 子命令默认 --agent。
    OCTOP_SERVICE_MODEstring(自动)octop service 使用的后端:systemd 或 launchd。
    OCTOP_SERVICE_SCOPEstring(自动)Linux 上安装用户级还是系统级单元:user 或 system。
    OCTOP_MAX_UPLOAD_MBint100聊天附件、IM 入站与知识库文档的最大上传(MiB,范围 1–1024)。不适用于插件 ZIP、工作区上传或备份导入(备份导入上限 512 MB)。
    OCTOP_BACKUP_AUTO_ENABLEDboolfalse是否在运行中的 octop run 内启用自动备份。
    OCTOP_BACKUP_SCHEDULEstringcron:0 4 * * *自动备份计划。
    OCTOP_BACKUP_RETENTION_COUNTint7保留的自动备份份数。
    OCTOP_BACKUP_INCLUDE_CONFIGbooltrue新归档是否包含 config.json 与 env。
    OCTOP_BACKUP_INCLUDE_WORKSPACESbooltrue是否包含专家工作区。
    OCTOP_BACKUP_INCLUDE_SKILL_PACKAGESbooltrue是否包含全局技能包。
    OCTOP_BACKUP_INCLUDE_PLUGINSbooltrue是否包含已安装插件。
    OCTOP_BACKUP_INCLUDE_KNOWLEDGEbooltrue是否包含知识库文件。
    OCTOP_BACKUP_INCLUDE_CHATSboolfalse是否包含聊天记录和运行轨迹。

    Docker .env 示例

    在 docker-compose.yml 旁创建 .env:

    .env
    docker-compose.yml(片段)
    .env
    # 网络
    OCTOP_BIND_HOST=0.0.0.0
    OCTOP_PORT=8088
    
    # 数据库(PostgreSQL)
    OCTOP_DATABASE_DRIVER=postgresql
    OCTOP_DATABASE_HOST=postgres
    OCTOP_DATABASE_PORT=5432
    OCTOP_DATABASE_NAME=octop
    OCTOP_DATABASE_USER=octop
    OCTOP_DATABASE_PASSWORD=change-me-in-production
    
    # 首次管理员引导(Docker 入口脚本读取 OCTOP_DEFAULT_PASSWORD)
    OCTOP_ADMIN_USERNAME=admin
    OCTOP_DEFAULT_PASSWORD=change-me-in-production
    
    # 时区与日志
    OCTOP_DEFAULT_TIMEZONE=America/New_York
    OCTOP_LOG_LEVEL=info
    说明

    使用 Docker Compose 时,请把 OCTOP_DATABASE_* 写进 docker/.env,并在 docker-compose.yml 的 environment: 下列出这些键。Compose 的 .env 只用于插值,未列出的键不会进入容器;写入挂载卷内的 ~/.octop/env 同样生效。

    注意

    生产环境不要把 OCTOP_DATABASE_PASSWORD、OCTOP_ADMIN_PASSWORD 或 OCTOP_DEFAULT_PASSWORD 写进 config.json。把它们放在环境变量或密钥管理器中,并确保 .env 不进版本库。将 config.json 权限限制为服务账户(chmod 600 ~/.octop/config.json)。