proposal.md 1.4 KB

Why

当前所有 Trojan 服务器共用 group_vars/all.yml 中统一定义的 trojan_domain,无法为每台服务器配置独立的域名和 TLS 证书。在多服务器部署场景中,每台服务器通常拥有独立的公网 IP 和域名,需要各自申请独立的 Let's Encrypt 证书。

What Changes

  • BREAKINGtrojan_domaingroup_vars/all.yml 的全局变量改为 per-host inventory 变量
  • BREAKINGcertbot_email 同样改为 per-host inventory 变量(或保留全局默认值)
  • 更新 inventory/hosts.yml.example,展示每台主机独立配置域名的方式
  • 更新 trojan role,使用 hostvars[inventory_hostname] 或直接从 host facts 读取域名
  • 更新 README.md 中的配置说明

Capabilities

New Capabilities

  • 无新增能力

Modified Capabilities

  • trojan-multiuser: TLS 证书域名的配置方式从全局统一改为 per-host 独立配置。trojan_domaincertbot_email 变更为每台主机在 inventory 中单独定义。

Impact

  • group_vars/all.yml 中移除 trojan_domaincertbot_email
  • inventory/hosts.yml.example 增加 per-host 域名配置示例
  • roles/trojan/ 中引用 trojan_domaincertbot_email 的方式不变(Ansible 变量优先级会自动处理)
  • 现有使用全局 trojan_domain 的用户需要迁移到 inventory per-host 配置